![]() |
v0.10.0 |
default operator for TET element More...
#include <src/finite_elements/VolumeElementForcesAndSourcesCore.hpp>
Public Member Functions | |
int | getNumNodes () |
get element number of nodes More... | |
const EntityHandle * | getConn () |
get element connectivity More... | |
double | getVolume () const |
element volume (linear geometry) More... | |
double & | getVolume () |
element volume (linear geometry) More... | |
FTensor::Tensor2< double *, 3, 3 > & | getJac () |
get element Jacobian More... | |
FTensor::Tensor2< double *, 3, 3 > & | getInvJac () |
get element inverse Jacobian More... | |
double | getMeasure () const |
get measure of element More... | |
double & | getMeasure () |
get measure of element More... | |
VectorDouble & | getCoords () |
nodal coordinates More... | |
MatrixDouble & | getCoordsAtGaussPts () |
Gauss points and weight, matrix (nb. of points x 3) More... | |
MatrixDouble & | getHoCoordsAtGaussPts () |
coordinate at Gauss points (if hierarchical approximation of element geometry) More... | |
MatrixDouble & | getHoGaussPtsJac () |
MatrixDouble & | getHoGaussPtsInvJac () |
VectorDouble & | getHoGaussPtsDetJac () |
auto | getFTenosr0HoMeasure () |
auto | getFTensor1CoordsAtGaussPts () |
Get coordinates at integration points assuming linear geometry. More... | |
auto | getFTensor1HoCoordsAtGaussPts () |
Get coordinates at integration points taking geometry from field. More... | |
auto | getFTensor2HoGaussPtsJac () |
auto | getFTensor2HoGaussPtsInvJac () |
VolumeElementForcesAndSourcesCoreBase * | getVolumeFE () const |
return pointer to Generic Volume Finite Element object More... | |
MoFEMErrorCode | getDivergenceOfHDivBaseFunctions (int side, EntityType type, DataForcesAndSourcesCore::EntData &data, int gg, VectorDouble &div) |
Get divergence of base functions at integration point. More... | |
MoFEMErrorCode | getCurlOfHCurlBaseFunctions (int side, EntityType type, DataForcesAndSourcesCore::EntData &data, int gg, MatrixDouble &curl) |
Get curl of base functions at integration point. More... | |
![]() | |
UserDataOperator (const FieldSpace space, const char type=OPLAST, 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... | |
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 () |
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... | |
const std::string & | getFEName () const |
Get name of the element. More... | |
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 |
DEPRECATED Vec | getSnesF () const |
DEPRECATED Vec | getSnesX () const |
DEPRECATED Mat | getSnesA () const |
DEPRECATED 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 | getTSa () const |
double | getTSaa () const |
MatrixDouble & | getGaussPts () |
matrix of integration (Gauss) points for Volume Element More... | |
auto | getFTensor0IntegrationWeight () |
Get integration weights. More... | |
DEPRECATED MoFEMErrorCode | getPorblemRowIndices (const std::string filed_name, const EntityType type, const int side, VectorInt &indices) const |
![]() | |
DataOperator (const bool symm=true) | |
virtual | ~DataOperator ()=default |
virtual MoFEMErrorCode | doWork (int row_side, int col_side, EntityType row_type, EntityType col_type, DataForcesAndSourcesCore::EntData &row_data, DataForcesAndSourcesCore::EntData &col_data) |
Operator for bi-linear form, usually to calculate values on left hand side. More... | |
virtual MoFEMErrorCode | opLhs (DataForcesAndSourcesCore &row_data, DataForcesAndSourcesCore &col_data) |
virtual MoFEMErrorCode | doWork (int side, EntityType type, DataForcesAndSourcesCore::EntData &data) |
Operator for linear form, usually to calculate values on right hand side. More... | |
virtual MoFEMErrorCode | opRhs (DataForcesAndSourcesCore &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... | |
Protected Member Functions | |
MoFEMErrorCode | setPtrFE (ForcesAndSourcesCore *ptr) |
![]() | |
ForcesAndSourcesCore * | getPtrFE () const |
ForcesAndSourcesCore * | getSidePtrFE () const |
Additional Inherited Members | |
![]() | |
enum | OpType { OPROW = 1 << 0 , OPCOL = 1 << 1 , OPROWCOL = 1 << 2 , OPLAST = 1 << 3 } |
Controls loop over entities on element. More... | |
![]() | |
char | opType |
std::string | rowFieldName |
std::string | colFieldName |
FieldSpace | sPace |
![]() | |
bool | sYmm |
If true assume that matrix is symmetric structure. More... | |
std::array< bool, MBMAXTYPE > | doEntities |
If true operator is executed for entity. More... | |
bool & | doVertices |
\deprectaed If false skip vertices More... | |
bool & | doEdges |
\deprectaed If false skip edges More... | |
bool & | doQuads |
\deprectaed More... | |
bool & | doTris |
\deprectaed More... | |
bool & | doTets |
\deprectaed More... | |
bool & | doPrisms |
\deprectaed More... | |
![]() | |
ForcesAndSourcesCore * | ptrFE |
default operator for TET element
Definition at line 45 of file VolumeElementForcesAndSourcesCore.hpp.
const EntityHandle * MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getConn | ( | ) |
get element connectivity
Definition at line 398 of file VolumeElementForcesAndSourcesCore.hpp.
VectorDouble & MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getCoords | ( | ) |
nodal coordinates
Definition at line 431 of file VolumeElementForcesAndSourcesCore.hpp.
MatrixDouble & MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getCoordsAtGaussPts | ( | ) |
Gauss points and weight, matrix (nb. of points x 3)
Column 0-2 integration points coordinate x, y and z, respectively. At rows are integration points.
Definition at line 436 of file VolumeElementForcesAndSourcesCore.hpp.
MoFEMErrorCode MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getCurlOfHCurlBaseFunctions | ( | int | side, |
EntityType | type, | ||
DataForcesAndSourcesCore::EntData & | data, | ||
int | gg, | ||
MatrixDouble & | curl | ||
) |
Get curl of base functions at integration point.
\[ \nabla \times \mathbf{\phi} \]
Works only for H-curl and H-div space.
How to use it:
where curl_mat is matrix which number of rows is equal to nb. of base functions. Number of columns is 3, since we work in 3d here. Rows represents curl of base functions.
side | side (local) number of entity on element |
type | type of entity |
data | data structure |
gg | gauss pts |
curl | curl matrix, nb. of rows is equal to number of base functions, columns are curl of base vector |
Definition at line 379 of file VolumeElementForcesAndSourcesCore.cpp.
MoFEMErrorCode MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getDivergenceOfHDivBaseFunctions | ( | int | side, |
EntityType | type, | ||
DataForcesAndSourcesCore::EntData & | data, | ||
int | gg, | ||
VectorDouble & | div | ||
) |
Get divergence of base functions at integration point.
Works only for H-div space.
How to use it:
where vec_div has size of nb. of dofs, at each element represents divergence of base functions.
side | side (local) number of entity on element |
type | type of entity |
data | data structure |
gg | gauss pts |
div | divergence vector, size of vector is equal to number of base functions |
Definition at line 340 of file VolumeElementForcesAndSourcesCore.cpp.
auto MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getFTenosr0HoMeasure | ( | ) |
Definition at line 465 of file VolumeElementForcesAndSourcesCore.hpp.
auto MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getFTensor1CoordsAtGaussPts | ( | ) |
Get coordinates at integration points assuming linear geometry.
Definition at line 471 of file VolumeElementForcesAndSourcesCore.hpp.
auto MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getFTensor1HoCoordsAtGaussPts | ( | ) |
Get coordinates at integration points taking geometry from field.
This is HO geometry given by arbitrary order polynomial
Definition at line 478 of file VolumeElementForcesAndSourcesCore.hpp.
auto MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getFTensor2HoGaussPtsInvJac | ( | ) |
Definition at line 493 of file VolumeElementForcesAndSourcesCore.hpp.
auto MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getFTensor2HoGaussPtsJac | ( | ) |
Definition at line 485 of file VolumeElementForcesAndSourcesCore.hpp.
MatrixDouble & MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getHoCoordsAtGaussPts | ( | ) |
coordinate at Gauss points (if hierarchical approximation of element geometry)
Definition at line 441 of file VolumeElementForcesAndSourcesCore.hpp.
VectorDouble & MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getHoGaussPtsDetJac | ( | ) |
Definition at line 460 of file VolumeElementForcesAndSourcesCore.hpp.
MatrixDouble & MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getHoGaussPtsInvJac | ( | ) |
Definition at line 454 of file VolumeElementForcesAndSourcesCore.hpp.
MatrixDouble & MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getHoGaussPtsJac | ( | ) |
Definition at line 448 of file VolumeElementForcesAndSourcesCore.hpp.
FTensor::Tensor2< double *, 3, 3 > & MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getInvJac | ( | ) |
get element inverse Jacobian
Definition at line 417 of file VolumeElementForcesAndSourcesCore.hpp.
FTensor::Tensor2< double *, 3, 3 > & MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getJac | ( | ) |
get element Jacobian
Definition at line 412 of file VolumeElementForcesAndSourcesCore.hpp.
double & MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getMeasure | ( | ) |
get measure of element
Definition at line 426 of file VolumeElementForcesAndSourcesCore.hpp.
double MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getMeasure | ( | ) | const |
get measure of element
Definition at line 422 of file VolumeElementForcesAndSourcesCore.hpp.
int MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getNumNodes | ( | ) |
get element number of nodes
Definition at line 393 of file VolumeElementForcesAndSourcesCore.hpp.
double & MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getVolume | ( | ) |
element volume (linear geometry)
Definition at line 407 of file VolumeElementForcesAndSourcesCore.hpp.
double MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getVolume | ( | ) | const |
element volume (linear geometry)
Definition at line 403 of file VolumeElementForcesAndSourcesCore.hpp.
VolumeElementForcesAndSourcesCoreBase * MoFEM::VolumeElementForcesAndSourcesCoreBase::UserDataOperator::getVolumeFE | ( | ) | const |
return pointer to Generic Volume Finite Element object
Definition at line 502 of file VolumeElementForcesAndSourcesCore.hpp.
|
protectedvirtual |
Reimplemented from MoFEM::ForcesAndSourcesCore::UserDataOperator.
Reimplemented in MoFEM::VolumeElementForcesAndSourcesCoreOnSideBase::UserDataOperator.
Definition at line 425 of file VolumeElementForcesAndSourcesCore.cpp.