|
| OpLoopThis (MoFEM::Interface &m_field, const std::string fe_name, const LogManager::SeverityLevel sev=Sev::noisy) |
| Construct a new OpThis object. More...
|
|
MoFEMErrorCode | doWork (int side, EntityType type, EntitiesFieldData::EntData &data) |
| Operator for linear form, usually to calculate values on right hand side. More...
|
|
boost::ptr_deque< UserDataOperator > & | getOpPtrVector () |
|
boost::shared_ptr< E > & | getThisFEPtr () |
|
Public Member Functions inherited from MoFEM::ForcesAndSourcesCore::UserDataOperator |
| UserDataOperator (const FieldSpace space, const char type=OPSPACE, const bool symm=true) |
|
| UserDataOperator (const std::string field_name, const char type, const bool symm=true) |
|
| UserDataOperator (const std::string row_field_name, const std::string col_field_name, const char type, const bool symm=true) |
|
boost::shared_ptr< const NumeredEntFiniteElement > | getNumeredEntFiniteElementPtr () const |
| Return raw pointer to NumeredEntFiniteElement. More...
|
|
EntityHandle | getFEEntityHandle () const |
| Return finite element entity handle. More...
|
|
int | getFEDim () const |
| Get dimension of finite element. More...
|
|
EntityType | getFEType () const |
| Get dimension of finite element. More...
|
|
boost::weak_ptr< SideNumber > | getSideNumberPtr (const int side_number, const EntityType type) |
| Get the side number pointer. More...
|
|
EntityHandle | getSideEntity (const int side_number, const EntityType type) |
| Get the side entity. More...
|
|
int | getNumberOfNodesOnElement () const |
| Get the number of nodes on finite element. More...
|
|
MoFEMErrorCode | getProblemRowIndices (const std::string filed_name, const EntityType type, const int side, VectorInt &indices) const |
| Get row indices. More...
|
|
MoFEMErrorCode | getProblemColIndices (const std::string filed_name, const EntityType type, const int side, VectorInt &indices) const |
| Get col indices. More...
|
|
const FEMethod * | getFEMethod () const |
| Return raw pointer to Finite Element Method object. More...
|
|
int | getOpType () const |
| Get operator types. More...
|
|
void | setOpType (const OpType type) |
| Set operator type. More...
|
|
void | addOpType (const OpType type) |
| Add operator type. More...
|
|
int | getNinTheLoop () const |
| get number of finite element in the loop More...
|
|
int | getLoopSize () const |
| get size of elements in the loop More...
|
|
std::string | getFEName () const |
| Get name of the element. More...
|
|
ForcesAndSourcesCore * | getPtrFE () const |
|
ForcesAndSourcesCore * | getSidePtrFE () const |
|
ForcesAndSourcesCore * | getRefinePtrFE () const |
|
const PetscData::Switches & | getDataCtx () const |
|
const KspMethod::KSPContext | getKSPCtx () const |
|
const SnesMethod::SNESContext | getSNESCtx () const |
|
const TSMethod::TSContext | getTSCtx () const |
|
Vec | getKSPf () const |
|
Mat | getKSPA () const |
|
Mat | getKSPB () const |
|
Vec | getSNESf () const |
|
Vec | getSNESx () const |
|
Mat | getSNESA () const |
|
Mat | getSNESB () const |
|
Vec | getTSu () const |
|
Vec | getTSu_t () const |
|
Vec | getTSu_tt () const |
|
Vec | getTSf () const |
|
Mat | getTSA () const |
|
Mat | getTSB () const |
|
int | getTSstep () const |
|
double | getTStime () const |
|
double | getTStimeStep () const |
|
double | getTSa () const |
|
double | getTSaa () const |
|
MatrixDouble & | getGaussPts () |
| matrix of integration (Gauss) points for Volume Element More...
|
|
auto | getFTensor0IntegrationWeight () |
| Get integration weights. More...
|
|
MatrixDouble & | getCoordsAtGaussPts () |
| Gauss points and weight, matrix (nb. of points x 3) More...
|
|
auto | getFTensor1CoordsAtGaussPts () |
| Get coordinates at integration points assuming linear geometry. More...
|
|
double | getMeasure () const |
| get measure of element More...
|
|
double & | getMeasure () |
| get measure of element More...
|
|
MoFEMErrorCode | loopSide (const string &fe_name, ForcesAndSourcesCore *side_fe, const size_t dim, const EntityHandle ent_for_side=0, const int verb=QUIET, const LogManager::SeverityLevel sev=Sev::noisy, AdjCache *adj_cache=nullptr) |
| User calls this function to loop over elements on the side of face. This function calls finite element with its operator to do calculations. More...
|
|
MoFEMErrorCode | loopThis (const string &fe_name, ForcesAndSourcesCore *this_fe, const int verb=QUIET, const LogManager::SeverityLevel sev=Sev::noisy) |
| User calls this function to loop over the same element using a different set of integration points. This function calls finite element with its operator to do calculations. More...
|
|
MoFEMErrorCode | loopParent (const string &fe_name, ForcesAndSourcesCore *parent_fe, const int verb=QUIET, const LogManager::SeverityLevel sev=Sev::noisy) |
| User calls this function to loop over parent elements. This function calls finite element with its operator to do calculations. More...
|
|
MoFEMErrorCode | loopChildren (const string &fe_name, ForcesAndSourcesCore *child_fe, const int verb=QUIET, const LogManager::SeverityLevel sev=Sev::noisy) |
| User calls this function to loop over parent elements. This function calls finite element with its operator to do calculations. More...
|
|
| DataOperator (const bool symm=true) |
|
virtual | ~DataOperator ()=default |
|
virtual MoFEMErrorCode | doWork (int row_side, int col_side, EntityType row_type, EntityType col_type, EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data) |
| Operator for bi-linear form, usually to calculate values on left hand side. More...
|
|
virtual MoFEMErrorCode | opLhs (EntitiesFieldData &row_data, EntitiesFieldData &col_data) |
|
virtual MoFEMErrorCode | opRhs (EntitiesFieldData &data, const bool error_if_no_base=false) |
|
bool | getSymm () const |
| Get if operator uses symmetry of DOFs or not. More...
|
|
void | setSymm () |
| set if operator is executed taking in account symmetry More...
|
|
void | unSetSymm () |
| unset if operator is executed for non symmetric problem More...
|
|
template<typename E>
struct MoFEM::OpLoopThis< E >
Execute "this" element in the operator.
An example of usage in post-processing
using InteriorElem = VolumeElementForcesAndSourcesCore;
using PostProcFe = PostProcBrokenMeshInMoab<InteriorElem>;
auto fe_post_proc = boost::make_shared<PostProcFe>(mField);
auto op_this = new OpLoopThis<InteriorElem>(m_field, "DomainFE", Sev::noisy);
fe_post_proc->getOpPtrVector()->push_back(op_this);
auto fe_physics = op_this->getThisFEPtr();
fe_physics->getRuleHook = [](
int,
int,
int o) {
return 2 * o; };
auto entity_data_l2 = boost::make_shared<EntitiesFieldData>(MBENTITYSET);
auto mass_ptr = boost::make_shared<MatrixDouble>();
auto coeffs_ptr = boost::make_shared<MatrixDouble>();
auto data_ptr = boost::make_shared<MatrixDouble>();
fe_physics->getOpPtrVector()->push_back(new
OpDGProjectionMassMatrix(
order, mass_ptr, entity_data_l2,
fe_physics->getOpPtrVector()->push_back(new
OpCalculateVectorFieldValues("V", data_ptr);
fe_physics->getOpPtrVector()->push_back( new
OpDGProjectionCoefficients(data_ptr, coeffs_ptr, mass_ptr, entity_data_l2,
fe_post_proc->getOpPtrVector()->push_back(new
OpDGProjectionEvaluation(data_ptr, coeffs_ptr,
- Template Parameters
-
E | template for "this" element type |
- Examples
- adolc_plasticity.cpp, and dg_projection.cpp.
Definition at line 68 of file DGProjection.hpp.