v0.16.3
Loading...
Searching...
No Matches
MatUmat.hpp
Go to the documentation of this file.
1/**
2 * @file MatUmat.hpp
3 * @brief
4 * @version 0.1
5 * @date 2026-04-02
6 *
7 * @copyright Copyright (c) 2026
8 *
9 */
10
11#ifndef MAT_OPS_UMAT_HPP
12#define MAT_OPS_UMAT_HPP
13
14#include "MatOps.hpp"
15
16namespace MatOps {
17
18struct UMAT {
19 UMAT() = delete;
20};
26
27template <int DIM, int MODEL_TYPE = (DIM == 3) ? MODEL_3D : MODEL_2D_PLANE_STRAIN>
28struct MatUmatImpl;
29
30template <int DIM, int MODEL_TYPE = (DIM == 3) ? MODEL_3D : MODEL_2D_PLANE_STRAIN>
33 EntityHandle entity, int gg) = 0;
34 virtual MoFEMErrorCode
36 boost::shared_ptr<MatOpsData> mat_ops_data_ptr) = 0;
37 virtual MoFEMErrorCode
39 boost::shared_ptr<MatOpsData> mat_ops_data_ptr) = 0;
40 virtual ~StrainHandler() = default;
41};
42
43template <>
44boost::shared_ptr<PhysicalEquations>
46 boost::shared_ptr<MatOpsData> mat_ops_data_ptr, int tag);
47
48template <>
49boost::shared_ptr<PhysicalEquations>
51 boost::shared_ptr<MatOpsData> mat_ops_data_ptr, int tag);
52
53template <>
54boost::shared_ptr<PhysicalEquations>
56 boost::shared_ptr<MatOpsData> mat_ops_data_ptr, int tag);
57
58template <>
59boost::shared_ptr<PhysicalEquations>
61 boost::shared_ptr<MatOpsData> mat_ops_data_ptr, int tag);
62
63} // namespace MatOps
64
65#endif // MAT_OPS_UMAT_HPP
boost::shared_ptr< PhysicalEquations > createMatOpsPhysicalEquationsPtr< UMAT, MODEL_2D_PLANE_STRESS >(boost::shared_ptr< MatOpsData > mat_ops_data_ptr, int tag)
Definition MatUmat.cpp:46
boost::shared_ptr< PhysicalEquations > createMatOpsPhysicalEquationsPtr< UMAT, MODEL_AXISYMMETRIC >(boost::shared_ptr< MatOpsData > mat_ops_data_ptr, int tag)
Definition MatUmat.cpp:54
boost::shared_ptr< PhysicalEquations > createMatOpsPhysicalEquationsPtr< UMAT, MODEL_3D >(boost::shared_ptr< MatOpsData > mat_ops_data_ptr, int tag)
Definition MatUmat.cpp:31
boost::shared_ptr< PhysicalEquations > createMatOpsPhysicalEquationsPtr< UMAT, MODEL_2D_PLANE_STRAIN >(boost::shared_ptr< MatOpsData > mat_ops_data_ptr, int tag)
Definition MatUmat.cpp:38
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Base for user-defined material data, supporting dynamic_pointer_cast.
Definition MatOps.hpp:44
virtual MoFEMErrorCode convertStress(MatUmatImpl< DIM, MODEL_TYPE > &matUmatImpl, boost::shared_ptr< MatOpsData > mat_ops_data_ptr)=0
virtual ~StrainHandler()=default
virtual MoFEMErrorCode runUmat(MatUmatImpl< DIM, MODEL_TYPE > &matUmatImpl, EntityHandle entity, int gg)=0
virtual MoFEMErrorCode convertTangent(MatUmatImpl< DIM, MODEL_TYPE > &matUmatImpl, boost::shared_ptr< MatOpsData > mat_ops_data_ptr)=0
UMAT()=delete
ForcesAndSourcesCore::UserDataOperator * rawOpPtr
Definition MatUmat.hpp:24
UMatOpData(ForcesAndSourcesCore::UserDataOperator *raw_op_ptr)
Definition MatUmat.hpp:22