Skip to content

[SMApp] Reimplementing the thick shell element of 4 nodes#14284

Open
AlejandroCornejo wants to merge 108 commits intomasterfrom
CLApp/adding-new-4N-shell
Open

[SMApp] Reimplementing the thick shell element of 4 nodes#14284
AlejandroCornejo wants to merge 108 commits intomasterfrom
CLApp/adding-new-4N-shell

Conversation

@AlejandroCornejo
Copy link
Copy Markdown
Member

@AlejandroCornejo AlejandroCornejo commented Mar 12, 2026

📝 Description

This PR adds a new reimplementation of the old "ShellThickElement3D4N", now named:

  • MITCThickShellElement3D4N and MITCThickShellCorotationalElement3D4N.

These new shells substitute the older ones -> @rickyaristio @rolandwuechner @RiccardoRossi @matekelemen so it WILL break the old cases. These new shells are fully compatible with all the constitutive laws present in the ConstitutiveLawsApp.

In order to update the cases:

For elasticity you may use the ReissnerMindlinShellElasticConstitutiveLaw or the ThicknessIntegratedIsotropicConstitutiveLaw for nonlinear ones (e.g. damage, plasticity).

I have updated a few tests but I am working on it right now. Since a few changes/improvements have been done to the old shell, we may expect noticeable differences of the results. IMO all changes have been done to improve its performance, especially in the nonlinear cases with plasticity (the result was horrible before).

Beside the developments described above:

I have added a new composite stacking shell constitutive law for modelling laminate composites together with the new thick shells.

These can be used by:

{
"properties" : [{
	"model_part_name" : "Structure.shell",
	"properties_id"   : 1,
	"Material"        : {
		"constitutive_law" : {
			"name" : "ThicknessIntegratedCompositeConstitutiveLaw",
			"z_layer_coordinate_vector" : [-0.045, 0.0, 0.045], // z of thecentroid w.r.t middle of the section
			"Euler_angle_layer_vector"  : [0.0, 0.0, 0.0], // rotation along the local Z axis (positive counter clock)
			"thickness_layer_vector"    : [0.01, 0.08, 0.01] //  thickness of each layer
		},
		"Variables"        : {
			"THICKNESS"     : 0.1, // good for verification
			"DENSITY"       : 7850.0 // TODO we can compute this internally
		}
	},
	"sub_properties" : [ // subprop start
	{
		"properties_id"   : 11,
			"Material"        : {
				"constitutive_law" : {
					"name" : "GenericAnisotropicPlaneStress2DLaw"
				},
				"Variables"        : {
					"ORTHOTROPIC_ELASTIC_CONSTANTS" : [3.4156e9, 1.7931e9, 3.4156e9, 0.44, 0.0, 0.0],
					"SHEAR_MODULUS_XY" : 1.0e9,
					"SHEAR_MODULUS_YZ" : 1.015e9,
					"SHEAR_MODULUS_XZ" : 0.608e9,
					"EULER_ANGLES"     : [0.0,0.0,0.0],
					"ISOTROPIC_ANISOTROPIC_YIELD_RATIO"  : [1,1,1,1,1,1]
				},
				"Tables"           : {}
			},
			"sub_properties" : [{
				"properties_id"   : 111,
				"Material"        : {
					"constitutive_law" : {
						"name" : "LinearElasticPlaneStress2DLaw"
					},
					"Variables"        : {
						"DENSITY"         : 2400.0,
						"YOUNG_MODULUS"   : 1e6,
						"POISSON_RATIO"   : 0.3
					}
				}
			}]
	} //
	,
	{
		"properties_id"   : 12,
			"Material"        : {
				"constitutive_law" : {
					"name" : "GenericAnisotropicPlaneStress2DLaw"
				},
				"Variables"        : {
					"ORTHOTROPIC_ELASTIC_CONSTANTS" : [3.4156e8, 1.7931e8, 3.4156e8, 0.44, 0.0, 0.0],
					"SHEAR_MODULUS_XY" : 1.0e8,
					"SHEAR_MODULUS_YZ" : 1.015e8,
					"SHEAR_MODULUS_XZ" : 0.608e8,
					"EULER_ANGLES"     : [0.0,0.0,0.0],
					"ISOTROPIC_ANISOTROPIC_YIELD_RATIO"  : [1,1,1,1,1,1]
				}
			},
			"sub_properties" : [{
				"properties_id"   : 121,
				"Material"        : {
					"constitutive_law" : {
						"name" : "LinearElasticPlaneStress2DLaw"
					},
					"Variables"        : {
						"DENSITY"         : 2400.0,
						"YOUNG_MODULUS"   : 1e6,
						"POISSON_RATIO"   : 0.0
					}
				}
			}]
	} //
	,
	{
		"properties_id"   : 13,
			"Material"        : {
				"constitutive_law" : {
					"name" : "GenericAnisotropicPlaneStress2DLaw"
				},
				"Variables"        : {
					"ORTHOTROPIC_ELASTIC_CONSTANTS" : [3.4156e9, 1.7931e9, 3.4156e9, 0.44, 0.0, 0.0],
					"SHEAR_MODULUS_XY" : 1.0e9,
					"SHEAR_MODULUS_YZ" : 1.015e9,
					"SHEAR_MODULUS_XZ" : 0.608e9,
					"EULER_ANGLES"     : [0.0,0.0,0.0],
					"ISOTROPIC_ANISOTROPIC_YIELD_RATIO"  : [1,1,1,1,1,1]
				}
			},
			"sub_properties" : [{
				"properties_id"   : 131,
				"Material"        : {
					"constitutive_law" : {
						"name" : "LinearElasticPlaneStress2DLaw"
					},
					"Variables"        : {
						"DENSITY"         : 2400.0,
						"YOUNG_MODULUS"   : 1e6,
						"POISSON_RATIO"   : 0.3
					}
				}
			}]
	} //
	] // end subprops
}]
}
~~

@AlejandroCornejo
Copy link
Copy Markdown
Member Author

@RiccardoRossi @rickyaristio @singerTUM I have finished the implementation and validation of the 4 noded MITC thick shell and the laminate composite CL for shells. An old test of the shell has been updated and another one has been added to test the composite thickness integration CL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants