16 #include <type_traits>
23 #include "custom_utilities/shellq4_corotational_coordinate_transformation.hpp"
24 #include "custom_utilities/shellq4_local_coordinate_system.hpp"
83 template <ShellKinematics TKinematics>
85 BaseShellElement<typename std::conditional<TKinematics==ShellKinematics::NONLINEAR_COROTATIONAL,
86 ShellQ4_CorotationalCoordinateTransformation,
87 ShellQ4_CoordinateTransformation>::type>
124 GeometryType::Pointer pGeometry);
127 GeometryType::Pointer pGeometry,
128 PropertiesType::Pointer pProperties);
147 GeometryType::Pointer pGeom,
148 PropertiesType::Pointer pProperties
161 PropertiesType::Pointer pProperties
170 std::vector<double>& rOutput,
const ProcessInfo& rCurrentProcessInfo)
override;
173 std::vector<Matrix>& rOutput,
const ProcessInfo& rCurrentProcessInfo)
override;
184 int Check(
const ProcessInfo& rCurrentProcessInfo)
const override;
209 class CalculationData
244 const bool basicQuad =
false;
266 const double alpha = 1.5;
297 std::vector<VectorType> rlaminateStrains;
298 std::vector<VectorType> rlaminateStresses;
318 void CalculateStressesFromForceResultants
320 const double& rthickness);
322 void CalculateLaminaStrains(CalculationData&
data);
324 void CalculateLaminaStresses(CalculationData&
data);
326 double CalculateTsaiWuPlaneStress(
const CalculationData&
data,
const Matrix& rLamina_Strengths,
const unsigned int& rCurrent_Ply);
328 void CalculateVonMisesStress(
const CalculationData&
data,
const Variable<double>& rVariable,
double& rVon_Mises_Result);
330 void CalculateShellElementEnergy(
const CalculationData&
data,
const Variable<double>& rVariable,
double& rEnergy_Result);
332 void CheckGeneralizedStressOrStrainOutput(
const Variable<Matrix>& rVariable,
int& iJob,
bool& bGlobal);
334 void InitializeCalculationData(CalculationData&
data);
336 void CalculateBMatrix(CalculationData&
data);
338 void CalculateSectionResponse(CalculationData&
data);
340 void CalculateGaussPointContribution(CalculationData&
data,
343 void AddBodyForces(CalculationData&
data,
346 void CalculateAll(
MatrixType& rLeftHandSideMatrix,
348 const ProcessInfo& rCurrentProcessInfo,
349 const bool CalculateStiffnessMatrixFlag,
350 const bool CalculateResidualVectorFlag)
override;
352 bool TryCalculateOnIntegrationPoints_GeneralizedStrainsOrStresses(
const Variable<Matrix>& rVariable,
353 std::vector<Matrix>& rValues,
354 const ProcessInfo& rCurrentProcessInfo);
377 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
ShellQ4_LocalCoordinateSystem.
Definition: shellq4_local_coordinate_system.hpp:23
ShellThinElement3D4N.
Definition: shell_thin_element_3D4N.hpp:88
~ShellThinElement3D4N() override=default
ShellThinElement3D4N()
Definition: shell_thin_element_3D4N.hpp:199
typename BaseType::Vector3Type Vector3Type
Definition: shell_thin_element_3D4N.hpp:117
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(ShellThinElement3D4N)
Quaternion< double > QuaternionType
Definition: shell_thin_element_3D4N.hpp:99
JacobianOperator.
Definition: shell_utilities.h:41
Short class definition.
Definition: array_1d.h:61
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
data
Definition: mesh_to_mdpa_converter.py:59
def load(f)
Definition: ode_solve.py:307
N
Definition: sensitivityMatrix.py:29
B
Definition: sensitivityMatrix.py:76