v0.14.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MoFEM::OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase > Struct Template Reference

#include <src/finite_elements/BiLinearFormsIntegratorsImpl.hpp>

Inheritance diagram for MoFEM::OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase >:
[legend]
Collaboration diagram for MoFEM::OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase >:
[legend]

Public Member Functions

 OpMixDivTimesScalarImpl (const std::string row_field_name, const std::string col_field_name, ConstantFun alpha_fun, const bool assemble_transpose=false, const bool only_transpose=false)
 

Protected Member Functions

MoFEMErrorCode iNtegrate (EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
 

Protected Attributes

FTensor::Index< 'i', SPACE_DIMi
 summit Index More...
 
ConstantFun alphaConstant
 

Detailed Description

template<int SPACE_DIM, typename OpBase>
struct MoFEM::OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase >

Definition at line 257 of file BiLinearFormsIntegratorsImpl.hpp.

Constructor & Destructor Documentation

◆ OpMixDivTimesScalarImpl()

template<int SPACE_DIM, typename OpBase >
MoFEM::OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase >::OpMixDivTimesScalarImpl ( const std::string  row_field_name,
const std::string  col_field_name,
ConstantFun  alpha_fun,
const bool  assemble_transpose = false,
const bool  only_transpose = false 
)
inline

Definition at line 258 of file BiLinearFormsIntegratorsImpl.hpp.

263  : OpBase(row_field_name, col_field_name, OpBase::OPROWCOL),
264  alphaConstant(alpha_fun) {
265  this->assembleTranspose = assemble_transpose;
266  this->onlyTranspose = only_transpose;
267  }

Member Function Documentation

◆ iNtegrate()

template<int SPACE_DIM, typename OpBase >
MoFEMErrorCode MoFEM::OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase >::iNtegrate ( EntitiesFieldData::EntData row_data,
EntitiesFieldData::EntData col_data 
)
protected

Definition at line 1129 of file BiLinearFormsIntegratorsImpl.hpp.

1131  {
1133 
1134  auto t_w = this->getFTensor0IntegrationWeight();
1135 
1136  size_t nb_base_functions = row_data.getN().size2() / 3;
1137  auto t_row_diff_base = row_data.getFTensor2DiffN<3, SPACE_DIM>();
1138 
1139  const double alpha_constant = alphaConstant();
1140 
1141  for (size_t gg = 0; gg != OpBase::nbIntegrationPts; ++gg) {
1142  const double alpha = alpha_constant * this->getMeasure() * t_w;
1143 
1144  size_t rr = 0;
1145  for (; rr != OpBase::nbRows; ++rr) {
1146  const double t_row_div_base = t_row_diff_base(i, i);
1147  auto t_col_base = col_data.getFTensor0N(gg, 0);
1148  for (size_t cc = 0; cc != OpBase::nbCols; ++cc) {
1149  this->locMat(rr, cc) += alpha * t_row_div_base * t_col_base;
1150  ++t_col_base;
1151  }
1152  ++t_row_diff_base;
1153  }
1154  for (; rr < nb_base_functions; ++rr)
1155  ++t_row_diff_base;
1156 
1157  ++t_w;
1158  }
1159 
1161 }

Member Data Documentation

◆ alphaConstant

template<int SPACE_DIM, typename OpBase >
ConstantFun MoFEM::OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase >::alphaConstant
protected

Definition at line 271 of file BiLinearFormsIntegratorsImpl.hpp.

◆ i

template<int SPACE_DIM, typename OpBase >
FTensor::Index<'i', SPACE_DIM> MoFEM::OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase >::i
protected

summit Index

Definition at line 270 of file BiLinearFormsIntegratorsImpl.hpp.


The documentation for this struct was generated from the following file:
MoFEM::OpBaseImpl::nbIntegrationPts
int nbIntegrationPts
number of integration points
Definition: FormsIntegrators.hpp:238
MoFEM::OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase >::i
FTensor::Index< 'i', SPACE_DIM > i
summit Index
Definition: BiLinearFormsIntegratorsImpl.hpp:270
OpBase
OpBaseImpl< PETSC, EdgeEleOp > OpBase
Definition: radiation.cpp:29
SPACE_DIM
constexpr int SPACE_DIM
Definition: child_and_parent.cpp:16
MoFEM::OpBaseImpl::nbCols
int nbCols
number if dof on column
Definition: FormsIntegrators.hpp:237
MoFEM::OpBaseImpl::nbRows
int nbRows
number of dofs on rows
Definition: FormsIntegrators.hpp:236
MoFEM::OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase >::alphaConstant
ConstantFun alphaConstant
Definition: BiLinearFormsIntegratorsImpl.hpp:271
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:429
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:359