Calculate trace of vector (Hdiv/Hcurl) space.
More...
#include <src/finite_elements/UserDataOperators.hpp>
template<int Tensor_Dim, typename OpBase>
struct MoFEM::OpCalculateHVecTensorTrace< Tensor_Dim, OpBase >
Calculate trace of vector (Hdiv/Hcurl) space.
- Template Parameters
-
- Examples
- EshelbianPlasticity.cpp, and tensor_divergence_operator.cpp.
Definition at line 3184 of file UserDataOperators.hpp.
◆ OpCalculateHVecTensorTrace() [1/2]
template<int Tensor_Dim, typename OpBase >
◆ OpCalculateHVecTensorTrace() [2/2]
template<int Tensor_Dim, typename OpBase >
◆ doWork()
template<int Tensor_Dim, typename OpBase >
Definition at line 3204 of file UserDataOperators.hpp.
3207 const size_t nb_integration_points = OpBase::getGaussPts().size2();
3209 dataPtr->resize(Tensor_Dim, nb_integration_points,
false);
3212 const size_t nb_dofs = data.getFieldData().size();
3215 auto t_normal = OpBase::getFTensor1NormalsAtGaussPts();
3216 const size_t nb_base_functions = data.getN().size2() / 3;
3217 auto t_base = data.getFTensor1N<3>();
3218 auto t_data = getFTensor1FromMat<Tensor_Dim>(*
dataPtr);
3219 for (
size_t gg = 0; gg != nb_integration_points; ++gg) {
3221 t_normalized_normal(
j) = t_normal(
j);
3223 auto t_dof = data.getFTensor1FieldData<Tensor_Dim>();
3225 for (; bb != nb_dofs / Tensor_Dim; ++bb) {
3227 (scale_val * t_dof(
i)) * (t_base(
j) * t_normalized_normal(
j));
3231 for (; bb < nb_base_functions; ++bb) {
◆ dataPtr
template<int Tensor_Dim, typename OpBase >
template<int Tensor_Dim, typename OpBase >
template<int Tensor_Dim, typename OpBase >
◆ scalePtr
template<int Tensor_Dim, typename OpBase >
◆ zeroSide
template<int Tensor_Dim, typename OpBase >
◆ zeroType
template<int Tensor_Dim, typename OpBase >
The documentation for this struct was generated from the following file: