v0.16.3
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | List of all members
OpBrokenBaseTimesBrokenDisp Struct Reference

#include "users_modules/eshelbian_plasticity/src/EshelbianOperators.hpp"

Inheritance diagram for OpBrokenBaseTimesBrokenDisp:
[legend]
Collaboration diagram for OpBrokenBaseTimesBrokenDisp:
[legend]

Public Types

using OP = OpStabBrokenBaseImpl< OpBaseTimesVectorFace >
 
- Public Types inherited from OpStabBrokenBaseImpl< OpBaseTimesVectorFace >
using BASE = OpBrokenBaseImpl< OpBaseTimesVectorFace >
 

Public Member Functions

 OpBrokenBaseTimesBrokenDisp (boost::shared_ptr< std::vector< BrokenBaseSideData > > broken_base_side_data, ScalarFun beta_coeff=[](double, double, double) constexpr { return 1;}, boost::shared_ptr< Range > ents_ptr=nullptr)
 
- Public Member Functions inherited from OpStabBrokenBaseImpl< OpBaseTimesVectorFace >
MoFEMErrorCode doWork (int row_side, EntityType row_type, EntitiesFieldData::EntData &row_data)
 

Protected Member Functions

MoFEMErrorCode doWork (int row_side, EntityType row_type, EntitiesFieldData::EntData &row_data)
 

Additional Inherited Members

- Protected Attributes inherited from OpStabBrokenBaseImpl< OpBaseTimesVectorFace >
boost::weak_ptr< MatrixDouble > fluxMatPtr
 

Detailed Description

Examples
/home/lk58p/mofem_install/vanilla_dev_release/mofem-cephas/mofem/users_modules/eshelbian_plasticity/src/impl/EshelbianPlasticity.cpp.

Definition at line 1212 of file EshelbianOperators.hpp.

Member Typedef Documentation

◆ OP

Definition at line 1215 of file EshelbianOperators.hpp.

Constructor & Destructor Documentation

◆ OpBrokenBaseTimesBrokenDisp()

OpBrokenBaseTimesBrokenDisp::OpBrokenBaseTimesBrokenDisp ( boost::shared_ptr< std::vector< BrokenBaseSideData > >  broken_base_side_data,
ScalarFun  beta_coeff = [](double, double, double) constexpr { return 1; },
boost::shared_ptr< Range >  ents_ptr = nullptr 
)
Examples
/home/lk58p/mofem_install/vanilla_dev_release/mofem-cephas/mofem/users_modules/eshelbian_plasticity/src/impl/EshelbianOperators.cpp.

Definition at line 4650 of file EshelbianOperators.cpp.

4653 : OP(broken_base_side_data, ents_ptr) {
4654 this->sourceVec = boost::shared_ptr<MatrixDouble>();
4655 this->betaCoeff = beta_coeff;
4656}
OpStabBrokenBaseImpl< OpBaseTimesVectorFace > OP

Member Function Documentation

◆ doWork()

MoFEMErrorCode OpBrokenBaseTimesBrokenDisp::doWork ( int  row_side,
EntityType  row_type,
EntitiesFieldData::EntData &  row_data 
)
protected
Examples
/home/lk58p/mofem_install/vanilla_dev_release/mofem-cephas/mofem/users_modules/eshelbian_plasticity/src/impl/EshelbianOperators.cpp.

Definition at line 4659 of file EshelbianOperators.cpp.

4660 {
4662
4663 if (OP::entsPtr) {
4664 if (OP::entsPtr->find(this->getFEEntityHandle()) == OP::entsPtr->end())
4666 }
4667
4668#ifndef NDEBUG
4669 if (!brokenBaseSideData) {
4670 SETERRQ(PETSC_COMM_SELF, MOFEM_IMPOSSIBLE_CASE, "space not set");
4671 }
4672#endif // NDEBUG
4673
4674 auto do_work_rhs = [this](int row_side, EntityType row_type,
4675 EntitiesFieldData::EntData &row_data) {
4677 // get number of dofs on row
4678 OP::nbRows = row_data.getIndices().size();
4679 if (!OP::nbRows)
4681 // get number of integration points
4682 OP::nbIntegrationPts = OP::getGaussPts().size2();
4683 // get row base functions
4684 OP::nbRowBaseFunctions = OP::getNbOfBaseFunctions(row_data);
4685 // resize and clear the right hand side vector
4686 OP::locF.resize(OP::nbRows, false);
4687 OP::locF.clear();
4688 // integrate local vector
4689 CHKERR this->iNtegrate(row_data);
4690 // assemble local vector
4691 CHKERR this->aSsemble(row_data);
4693 };
4694
4695 switch (OP::opType) {
4696 case OP::OPSPACE:
4697 for (auto &bd : *brokenBaseSideData) {
4698 this->sourceVec =
4699 boost::shared_ptr<MatrixDouble>(brokenBaseSideData, &bd.getFlux());
4700 CHKERR do_work_rhs(bd.getSide(), bd.getType(), bd.getData());
4701 this->sourceVec.reset();
4702 }
4703 break;
4704 default:
4706 (std::string("wrong op type ") +
4707 OpBaseDerivativesBase::OpTypeNames[OP::opType])
4708 .c_str());
4709 }
4710
4712}
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define CHK_MOAB_THROW(err, msg)
Check error code of MoAB function and throw MoFEM exception.
@ MOFEM_IMPOSSIBLE_CASE
Definition definitions.h:35
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
Data on single entity (This is passed as argument to DataOperator::doWork)
const VectorInt & getIndices() const
Get global indices of degrees of freedom on entity.

The documentation for this struct was generated from the following files: