[Kratos] Fwd: New proposed auxiliar file for constitutive laws

maireni en cimne.upc.edu maireni en cimne.upc.edu
Mie Jun 2 18:30:15 CEST 2010



Hello all, 

I attach the file where I propose
the modality for the
constitutive laws. 

It is not completed, we need to verify wich
constitutive laws WORKS. 

Regard 

Nelson 

 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listas.cimne.upc.edu/pipermail/kratos/attachments/20100602/50a54d83/attachment.htm 
------------ próxima parte ------------
mport os, sys

#importing the Kratos Library
from Kratos import *
from KratosStructuralApplication import *

def AssignMaterial(Properties):
    # materiales con leyes elasticas. Faltaria Ortotrpic y anisotropic en 2D y 3D
    prop_id = 1;
    prop = Properties(prop_id)
    prop.SetValue(DENSITY,       0.000);
    prop.SetValue(POISSON_RATIO, 0.000);
    prop.SetValue(YOUNG_MODULUS, 0.000); 
    prop.SetValue(THICKNESS,     0.000);   
    mat = Isotropic2D();
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());

    #******************************************************************************************************************* 
    #*******************************************************************************************************************     
    prop_id = 2;
    prop = Properties(prop_id)
    prop.SetValue(DENSITY,       0.000);
    prop.SetValue(POISSON_RATIO, 0.000);
    prop.SetValue(YOUNG_MODULUS, 0.000);
    prop.SetValue(THICKNESS,     1.000);   
    mat = PlaneStrain();
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());

    #******************************************************************************************************************* 
    #*******************************************************************************************************************     
    prop_id = 3;
    prop = Properties(prop_id)
    prop.SetValue(DENSITY,       0.000);
    prop.SetValue(POISSON_RATIO, 0.000);
    prop.SetValue(YOUNG_MODULUS, 0.000);
    mat = Isotropic3D();
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());

    #******************************************************************************************************************* 
    #*******************************************************************************************************************    

    # materiales no lineales Isotropos
    # Criterios de fluencia disponibles:
    # a) Von Mises------ VM  (VonMissesYieldFunction)
    # b) Druker Prager---DP  (DruckerPragerYieldFunction)
    # c) Rankine---------RN  (RankineYieldFunction )
    # d) Energia---------EN  (EnergyYieldFunction)
    # e) Morh-Colulomb---MC  (ModifiedMorhCoulombYieldFunction)

    # Ablandamiemtos Disponibles:
    # a) Linear------LN  (LinearSoftening)
    # b) Exponencial-EP  (ExponentialSoftening)


    # Estados Disponibles:
    # a) Plane_Stress----- PSS
    # b) Plane_Strain----- PSN
    # c) Tri_D------------ TRD
    # d) Axisimetrico----- AXI

    # Tipo de Fujo Disponibles:
    # a) Asociado AS
    # b) Asociado NS

    # Combinaciones disponibles en Kratos de criterios de fluencia
    # VM  (PSN,  AS)
    # VM  (TRD,  AS)
    #*********************
    # DP  (PSN)
    # DP  (TRD)
    #*********************
    # MC  (PSN, AS) 
    # MC  (PSN, NS)
    # MC  (TRD, AS)
    # MC  (TRD, NA)
    #*********************       
    #EN (PSS) 
    #EN (PSN) 
    #EN (TRD) 
    #********************* 
    #RN(PSS)
    #RN(PSN)
    #RN(TRD)

    # Ejemplos
    # Parametros de los criterios de fluencia
    #fluency  =  EnergyYieldFunction(myState.Plane_Stress);
    #fluency  =  VonMissesYieldFunction(myState.Plane_Stress, myPotencialPlastic.Associated);  
    #fluency  =  DruckerPragerYieldFunction(myState.Plane_Stress); 
    #fluency  =  ModifiedMorhCoulombYieldFunction(myState.Plane_Strain, myPotencialPlastic.Not_Associated)
    #fluency  =  RankineYieldFunction(myState.Tri_D)
    #fluency  =  DruckerPragerYieldFunction(myState.Plane_Stress)


    #Funcion de Ablandamiento a usar
    #behavior_1 = LinealSoftening() 
    #behavior_1 = ExponentialSoftening()  


    # Modelo de Daño Isotropo.

    prop_id = 4;
    prop = Properties(prop_id)
    fluency  =  EnergyYieldFunction(myState.Plane_Stress); 
    behavior =  ExponentialSoftening() 
    mat      = Isotropic_Damage(fluency, behavior, prop) 
    prop.SetValue(FRACTURE_ENERGY,0.000);
    prop.SetValue(CRUSHING_ENERGY,0.000);
    prop.SetValue(DENSITY,        0.000;
    prop.SetValue(POISSON_RATIO,  0.000);
    prop.SetValue(FC,             0.000);
    prop.SetValue(FT,             0.000);
    prop.SetValue(YOUNG_MODULUS,  0.000);
    prop.SetValue(THICKNESS,      0.000);
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());
                    


    #******************************************************************************************************************* 
    #******************************************************************************************************************* 

    prop_id = 5;
    prop = Properties(prop_1d)
    fluency  =  EnergyYieldFunction(myState.Tri_D); 
    behavior =  ExponentialSoftening()   
    mat      =  Isotropic_Damage_3D(fluency, behavior, prop) 
    prop.SetValue(FRACTURE_ENERGY,0.000);
    prop.SetValue(CRUSHING_ENERGY,0.000);
    prop.SetValue(DENSITY,        0.000;
    prop.SetValue(POISSON_RATIO,  0.000);
    prop.SetValue(FC,             0.000);
    prop.SetValue(FT,             0.000);
    prop.SetValue(YOUNG_MODULUS,  0.000);
    prop.SetValue(THICKNESS,      0.000);
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());


    #******************************************************************************************************************* 
    #******************************************************************************************************************* 

    prop_id = 6;
    fluency  =  EnergyYieldFunction(myState.Plane_Stress); 
    behavior =  LinearSoftening() 
    mat     = Isotropic_Damage(fluency, behavior, prop) 
    prop = Properties(prop_1d)
    prop.SetValue(FRACTURE_ENERGY,0.000);
    prop.SetValue(CRUSHING_ENERGY,0.000);
    prop.SetValue(DENSITY,        0.000;
    prop.SetValue(POISSON_RATIO,  0.000);
    prop.SetValue(FC,             0.000);
    prop.SetValue(FT,             0.000);
    prop.SetValue(YOUNG_MODULUS,  0.000);
    prop.SetValue(THICKNESS,      0.000);
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());


    #******************************************************************************************************************* 
    #******************************************************************************************************************* 

    prop_id = 7;
    fluency  =  EnergyYieldFunction(myState.Tri_D); 
    behavior =  LinearSoftening()   
    mat      =  Isotropic_Damage_3D(fluency, behavior, prop) 
    prop = Properties(prop_1d)
    prop.SetValue(FRACTURE_ENERGY,0.000);
    prop.SetValue(CRUSHING_ENERGY,0.000);
    prop.SetValue(DENSITY,        0.000;
    prop.SetValue(POISSON_RATIO,  0.000);
    prop.SetValue(FC,             0.000);
    prop.SetValue(FT,             0.000);
    prop.SetValue(YOUNG_MODULUS,  0.000);
    prop.SetValue(THICKNESS,      0.000);
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());


    #******************************************************************************************************************* 
    #******************************************************************************************************************* 


    # Metal Plasticity
    
    prop_id  = 8;
    fluency  =   VonMissesYieldFunction(myState.Plane_Strain, myPotencialPlastic.Associated);
    behavior =   LinearSoftening()   
    mat      =   Plasticity2D(fluency, behavior, prop) 
    prop = Properties(prop_1d)
    prop.SetValue(DENSITY,                     0.000;
    prop.SetValue(POISSON_RATIO,               0.000);
    prop.SetValue(YOUNG_MODULUS,               0.000);
    prop.SetValue(THICKNESS,                   0.000);
    prop.SetValue(YIELD_STRESS,                0.000);
    prop.SetValue(ISOTROPIC_HARDENING_MODULUS, 0.000);
    prop.SetValue(KINEMATIC_HARDENING_MODULUS, 0.000); 
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());



    prop_id  = 9;
    fluency  =   VonMissesYieldFunction(myState.Tri_D, myPotencialPlastic.Associated);
    behavior =   LinearSoftening()   
    mat      =   Plasticity2D(fluency, behavior, prop) 
    prop = Properties(prop_1d)
    prop.SetValue(DENSITY,                     0.000;
    prop.SetValue(POISSON_RATIO,               0.000);
    prop.SetValue(YOUNG_MODULUS,               0.000);
    prop.SetValue(THICKNESS,                   0.000);
    prop.SetValue(YIELD_STRESS,                0.000);
    prop.SetValue(ISOTROPIC_HARDENING_MODULUS, 0.000);
    prop.SetValue(KINEMATIC_HARDENING_MODULUS, 0.000); 
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());


    #### Es mejor programarlo como multisurface plasticity. Pendiente en hacerlo
    # in testing 
    prop_id  = 10;
    fluency  =   TrescaYieldFunction(myState.Plane_Strain, myPotencialPlastic.Associated);
    behavior =   LinearSoftening()   
    mat      =   Plasticity2D(fluency, behavior, prop) 
    prop = Properties(prop_1d)
    prop.SetValue(DENSITY,                     0.000;
    prop.SetValue(POISSON_RATIO,               0.000);
    prop.SetValue(YOUNG_MODULUS,               0.000);
    prop.SetValue(THICKNESS,                   0.000);
    prop.SetValue(YIELD_STRESS,                0.000);
    prop.SetValue(ISOTROPIC_HARDENING_MODULUS, 0.000);
    prop.SetValue(KINEMATIC_HARDENING_MODULUS, 0.000); 
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());



    prop_id  = 11;
    fluency  =   TrescaYieldFunction(myState.Tri_D, myPotencialPlastic.Associated);
    behavior =   LinearSoftening()   
    mat      =   Plasticity2D(fluency, behavior, prop) 
    prop = Properties(prop_1d)
    prop.SetValue(DENSITY,                     0.000;
    prop.SetValue(POISSON_RATIO,               0.000);
    prop.SetValue(YOUNG_MODULUS,               0.000);
    prop.SetValue(THICKNESS,                   0.000);
    prop.SetValue(YIELD_STRESS,                0.000);
    prop.SetValue(ISOTROPIC_HARDENING_MODULUS, 0.000);
    prop.SetValue(KINEMATIC_HARDENING_MODULUS, 0.000); 
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());

    # Cohesive Model plasticity 
    #In testing 




More information about the Kratos mailing list