[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