17 #include <type_traits>
23 #include "custom_utilities/shellt3_corotational_coordinate_transformation.hpp"
24 #include "custom_utilities/shellt3_local_coordinate_system.hpp"
69 template <ShellKinematics TKinematics>
71 BaseShellElement<typename std::conditional<TKinematics==ShellKinematics::NONLINEAR_COROTATIONAL,
72 ShellT3_CorotationalCoordinateTransformation,
73 ShellT3_CoordinateTransformation>::type>
119 GeometryType::Pointer pGeometry);
122 GeometryType::Pointer pGeometry,
123 PropertiesType::Pointer pProperties);
143 GeometryType::Pointer pGeom,
144 PropertiesType::Pointer pProperties
157 PropertiesType::Pointer pProperties
165 std::vector<double>& rOutput,
const ProcessInfo& rCurrentProcessInfo)
override;
168 std::vector<Matrix>& rOutput,
const ProcessInfo& rCurrentProcessInfo)
override;
179 int Check(
const ProcessInfo& rCurrentProcessInfo)
const override;
207 class CalculationData
225 std::vector< array_1d<double, 3> > gpLocations;
236 const bool parabolic_composite_transverse_shear_strains =
false;
244 const bool basicTriCST =
false;
248 const bool ignore_shear_stabilization =
false;
252 const bool smoothedDSG =
false;
256 const bool specialDSGc3 =
false;
281 double shearStabilisation;
291 std::vector<VectorType> rlaminateStrains;
293 std::vector<VectorType> rlaminateStresses;
301 CalculationData(
const CoordinateTransformationPointerType& pCoordinateTransformation,
310 void CalculateStressesFromForceResultants
312 const double& rthickness);
314 void CalculateLaminaStrains(CalculationData&
data);
316 void CalculateLaminaStresses(CalculationData&
data);
318 double CalculateTsaiWuPlaneStress(
const CalculationData&
data,
const Matrix& rLamina_Strengths,
const unsigned int& rCurrent_Ply);
320 void CalculateVonMisesStress(
const CalculationData&
data,
const Variable<double>& rVariable,
double& rVon_Mises_Result);
322 void CalculateShellElementEnergy(
const CalculationData&
data,
const Variable<double>& rVariable,
double& rEnergy_Result);
324 void CheckGeneralizedStressOrStrainOutput(
const Variable<Matrix>& rVariable,
int& iJob,
bool& bGlobal);
326 void CalculateSectionResponse(CalculationData&
data);
328 void InitializeCalculationData(CalculationData&
data);
330 void CalculateDSGc3Contribution(CalculationData&
data,
MatrixType& rLeftHandSideMatrix);
332 void CalculateSmoothedDSGBMatrix(CalculationData&
data);
334 void CalculateDSGShearBMatrix(
Matrix& shearBMatrix,
const double&
a,
const double&
b,
const double&
c,
const double&
d,
const double&
A);
336 void AddBodyForces(CalculationData&
data,
VectorType& rRightHandSideVector);
338 void CalculateAll(
MatrixType& rLeftHandSideMatrix,
340 const ProcessInfo& rCurrentProcessInfo,
341 const bool CalculateStiffnessMatrixFlag,
342 const bool CalculateResidualVectorFlag)
override;
344 bool TryCalculateOnIntegrationPoints_GeneralizedStrainsOrStresses(
const Variable<Matrix>& rVariable,
345 std::vector<Matrix>& rValues,
346 const ProcessInfo& rCurrentProcessInfo);
370 void save(
Serializer& rSerializer)
const override;
Definition: base_shell_element.h:54
PropertiesType & GetProperties()
Definition: element.h:1024
Vector VectorType
Definition: element.h:88
std::size_t SizeType
Definition: element.h:94
Properties PropertiesType
Definition: element.h:80
Geometry< NodeType >::PointsArrayType NodesArrayType
definition of nodes container type, redefined from GeometryType
Definition: element.h:86
Matrix MatrixType
Definition: element.h:90
Geometry< NodeType > GeometryType
definition of the geometry type with given NodeType
Definition: element.h:83
std::size_t IndexType
Definition: flags.h:74
This defines the geometrical object, base definition of the element and condition entities.
Definition: geometrical_object.h:58
GeometryType & GetGeometry()
Returns the reference of the geometry.
Definition: geometrical_object.h:158
Geometry base class.
Definition: geometry.h:71
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
SectionParameters.
Definition: shell_cross_section.hpp:101
SectionBehaviorType
Definition: shell_cross_section.hpp:68
ShellT3_LocalCoordinateSystem.
Definition: shellt3_local_coordinate_system.hpp:24
ShellThickElement3D3N.
Definition: shell_thick_element_3D3N.hpp:74
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(ShellThickElement3D3N)
Quaternion< double > QuaternionType
Definition: shell_thick_element_3D3N.hpp:86
typename BaseType::Vector3Type Vector3Type
Definition: shell_thick_element_3D3N.hpp:104
ShellThickElement3D3N()
Definition: shell_thick_element_3D3N.hpp:196
typename BaseType::CoordinateTransformationPointerType CoordinateTransformationPointerType
Definition: shell_thick_element_3D3N.hpp:106
~ShellThickElement3D3N() override=default
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
pybind11::list CalculateOnIntegrationPoints(TObject &dummy, const Variable< TDataType > &rVariable, const ProcessInfo &rProcessInfo)
Definition: add_mesh_to_python.cpp:142
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KratosZeroVector< double > ZeroVector
Definition: amatrix_interface.h:561
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
Internals::Matrix< double, AMatrix::dynamic, AMatrix::dynamic > Matrix
Definition: amatrix_interface.h:470
array_1d< double, 3 > VectorType
Definition: solid_mechanics_application_variables.cpp:19
std::size_t SizeType
The definition of the size type.
Definition: mortar_classes.h:43
alpha
Definition: generate_convection_diffusion_explicit_element.py:113
type
Definition: generate_gid_list_file.py:35
a
Definition: generate_stokes_twofluid_element.py:77
b
Definition: generate_total_lagrangian_mixed_volumetric_strain_element.py:31
c
Definition: generate_weakly_compressible_navier_stokes_element.py:108
data
Definition: mesh_to_mdpa_converter.py:59
def load(f)
Definition: ode_solve.py:307
int d
Definition: ode_solve.py:397
A
Definition: sensitivityMatrix.py:70
N
Definition: sensitivityMatrix.py:29
B
Definition: sensitivityMatrix.py:76