properties.SetValue(KratosMaterialModels.C10, C10) #allocate a geometry #a = PointerVector() #a.append(node1) #geom = Geometry(a) #geom = Geometry() geom = Triangle2D3(node1, node2, node3) print(geom) N = Vector(3) DN_DX = Matrix(3, 2) ######################################## here we choose the constitutive law ######################### #construct a constitutive law elasticity_model = KratosMaterialModels.SaintVenantKirchhoffModel() cl = KratosMaterialModels.LargeStrain3DLaw(elasticity_model) #plasticity_model = KratosMaterialModels.VonMisesNeoHookeanPlasticityModel() #cl = KratosMaterialModels.LargeStrain3DLaw(plasticity_model) cl.Check(properties, geom, model_part.ProcessInfo) if (cl.WorkingSpaceDimension() != dim): raise Exception( "mismatch between the WorkingSpaceDimension of the Constitutive Law and the dimension of the space in which the test is performed" ) ##set the parameters to be employed #note that here i am adding them all to check that this does not fail cl_options = Flags()
def __init__(self): #print(" python: elastic law ") self.constitutive_law = KratosMaterial.Linear3DLaw()
def AssignMaterial(Properties): prop_id = 1 prop = Properties[prop_id] mat = KratosMaterial.SmallStrainPlaneStrain2DLaw( KratosMaterial.LinearElasticModel()) prop.SetValue(KratosMultiphysics.CONSTITUTIVE_LAW, mat.Clone()) prop_id = 2 prop = Properties[prop_id] mat = KratosMaterial.SmallStrain3DLaw(KratosMaterial.LinearElasticModel()) prop.SetValue(KratosMultiphysics.CONSTITUTIVE_LAW, mat.Clone()) prop_id = 3 prop = Properties[prop_id] mat = KratosMaterial.SmallStrainPlaneStress2DLaw( KratosMaterial.SimoJuExponentialDamageModel()) prop.SetValue(KratosMultiphysics.CONSTITUTIVE_LAW, mat.Clone()) prop_id = 4 prop = Properties[prop_id] mat = KratosMaterial.SmallStrainPlaneStress2DLaw( KratosMaterial.LinearElasticModel()) prop.SetValue(KratosMultiphysics.CONSTITUTIVE_LAW, mat.Clone()) prop_id = 5 prop = Properties[prop_id] mat = KratosMaterial.LargeStrainPlaneStrain2DLaw( KratosMaterial.SaintVenantKirchhoffModel()) prop.SetValue(KratosMultiphysics.CONSTITUTIVE_LAW, mat.Clone()) prop_id = 6 prop = Properties[prop_id] mat = KratosMaterial.LargeStrain3DLaw( KratosMaterial.SaintVenantKirchhoffModel()) prop.SetValue(KratosMultiphysics.CONSTITUTIVE_LAW, mat.Clone())