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

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

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

Public Types

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

Public Member Functions

 OpBrokenBaseBrokenBase (boost::shared_ptr< std::vector< BrokenBaseSideData > > broken_base_side_data, ScalarFun beta, boost::shared_ptr< Range > ents_ptr=nullptr)
 
MoFEMErrorCode doWork (int row_side, EntityType row_type, EntitiesFieldData::EntData &row_data)
 
- Public Member Functions inherited from OpStabBrokenBaseImpl< OpMassVectorFace >
MoFEMErrorCode doWork (int row_side, EntityType row_type, EntitiesFieldData::EntData &row_data)
 

Additional Inherited Members

- Protected Attributes inherited from OpStabBrokenBaseImpl< OpMassVectorFace >
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 1235 of file EshelbianOperators.hpp.

Member Typedef Documentation

◆ OP

Definition at line 1237 of file EshelbianOperators.hpp.

Constructor & Destructor Documentation

◆ OpBrokenBaseBrokenBase()

OpBrokenBaseBrokenBase::OpBrokenBaseBrokenBase ( boost::shared_ptr< std::vector< BrokenBaseSideData > >  broken_base_side_data,
ScalarFun  beta,
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 4702 of file EshelbianOperators.cpp.

4705 : OP(broken_base_side_data, ents_ptr) {
4706 this->sYmm = false;
4707 this->betaCoeff = beta;
4708 OP::assembleTranspose = false;
4709 OP::onlyTranspose = false;
4710}
OpStabBrokenBaseImpl< OpMassVectorFace > OP

Member Function Documentation

◆ doWork()

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

Definition at line 4713 of file EshelbianOperators.cpp.

4714 {
4716
4717 if (OP::entsPtr) {
4718 if (OP::entsPtr->find(this->getFEEntityHandle()) == OP::entsPtr->end())
4720 }
4721
4722#ifndef NDEBUG
4723 if (!brokenBaseSideData) {
4724 SETERRQ(PETSC_COMM_SELF, MOFEM_IMPOSSIBLE_CASE, "space not set");
4725 }
4726#endif // NDEBUG
4727
4728 auto do_work_lhs = [this](int row_side, int col_side, EntityType row_type,
4729 EntityType col_type,
4731 EntitiesFieldData::EntData &col_data) {
4733
4734 auto check_if_assemble_transpose = [&] {
4735 if (this->sYmm) {
4736 if (OP::rowSide != OP::colSide || OP::rowType != OP::colType)
4737 return true;
4738 else
4739 return false;
4740 } else if (OP::assembleTranspose) {
4741 return true;
4742 }
4743 return false;
4744 };
4745
4746 OP::rowSide = row_side;
4747 OP::rowType = row_type;
4748 OP::colSide = col_side;
4749 OP::colType = col_type;
4750 OP::nbCols = col_data.getIndices().size();
4751 OP::locMat.resize(OP::nbRows, OP::nbCols, false);
4752 OP::locMat.clear();
4753 CHKERR this->iNtegrate(row_data, col_data);
4754 CHKERR this->aSsemble(row_data, col_data, check_if_assemble_transpose());
4756 };
4757
4758 switch (OP::opType) {
4759 case OP::OPSPACE:
4760
4761 for (auto &bd : *brokenBaseSideData) {
4762
4763#ifndef NDEBUG
4764 if (!bd.getData().getNSharedPtr(bd.getData().getBase())) {
4765 SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
4766 "base functions not set");
4767 }
4768#endif
4769
4770 OP::nbRows = bd.getData().getIndices().size();
4771 if (!OP::nbRows)
4773 OP::nbIntegrationPts = OP::getGaussPts().size2();
4774 OP::nbRowBaseFunctions = OP::getNbOfBaseFunctions(bd.getData());
4775
4776 if (!OP::nbRows)
4778
4779 CHKERR do_work_lhs(
4780
4781 // side
4782 bd.getSide(), bd.getSide(),
4783
4784 // type
4785 bd.getType(), bd.getType(),
4786
4787 // row_data
4788 bd.getData(), bd.getData()
4789
4790 );
4791 }
4792
4793 break;
4794
4795 default:
4797 (std::string("wrong op type ") +
4798 OpBaseDerivativesBase::OpTypeNames[OP::opType])
4799 .c_str());
4800 }
4801
4803}
#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
@ MOFEM_DATA_INCONSISTENCY
Definition definitions.h:31
#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)

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