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 2760 of file UserDataOperators.hpp.
◆ OpCalculateHVecTensorTrace()
template<int Tensor_Dim, typename OpBase >
◆ doWork()
template<int Tensor_Dim, typename OpBase >
Definition at line 2772 of file UserDataOperators.hpp.
2775 const size_t nb_integration_points = OpBase::getGaussPts().size2();
2777 dataPtr->resize(Tensor_Dim, nb_integration_points,
false);
2780 const size_t nb_dofs = data.getFieldData().size();
2782 auto t_normal = OpBase::getFTensor1NormalsAtGaussPts();
2783 const size_t nb_base_functions = data.getN().size2() / 3;
2784 auto t_base = data.getFTensor1N<3>();
2785 auto t_data = getFTensor1FromMat<Tensor_Dim>(*
dataPtr);
2786 for (
size_t gg = 0; gg != nb_integration_points; ++gg) {
2788 t_normalized_normal(
j) = t_normal(
j);
2790 auto t_dof = data.getFTensor1FieldData<Tensor_Dim>();
2792 for (; bb != nb_dofs / Tensor_Dim; ++bb) {
2793 t_data(
i) += t_dof(
i) * (t_base(
j) * t_normalized_normal(
j));
2797 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 >
◆ 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: