v0.8.15
Classes | Public Member Functions | Public Attributes | List of all members
MoFEM::NormElement Struct Reference

finite element to appeximate analytical solution on surface More...

#include <users_modules/helmholtz/src/NormElementObsolete.hpp>

Collaboration diagram for MoFEM::NormElement:
[legend]

Classes

struct  BlockData
 
struct  CommonData
 
struct  MyTriFE
 
struct  MyVolumeFE
 
struct  OpGetFieldAtGaussPts
 opearator to caulate field value and rate of field value at Gauss points mofem_thermal_elem More...
 
struct  OpGetGradField1AtGaussPts
 
struct  OpGetGradField2AtGaussPts
 operator to calculate field gradient at Gauss points More...
 
struct  OpGetTetField1AtGaussPts
 operator to calculate field at Gauss pts mofem_thermal_elem More...
 
struct  OpGetTetField2AtGaussPts
 
struct  OpGetTetFieldRateAtGaussPts
 operator to calculate field rate at Gauss pts mofem_thermal_elem More...
 
struct  OpGetTriFieldAtGaussPts
 operator to calculate field at Gauss ptss mofem_thermal_elem More...
 
struct  OpLhs
 Lhs operaetar for tetrahedral used to build matrix. More...
 
struct  OpRhs
 Rhs operaetar used loop differences between two fields. More...
 

Public Member Functions

MyVolumeFEgetLoopFeRhs ()
 get rhs volume element More...
 
MyVolumeFEgetLoopFeLhs ()
 get lhs volume element More...
 
 NormElement (MoFEM::Interface &mField)
 
PetscErrorCode addNormElements (const string problem, string fe, const string norm_field_name, const string field1_name, const string field2_name, const string mesh_nodals_positions="MESH_NODE_POSITIONS")
 
PetscErrorCode setNormFiniteElementRhsOperator (string norm_field_name, string field1_name, string field2_name, Mat A, Vec &F, bool usel2, bool userela, string nodals_positions="MESH_NODE_POSITIONS")
 

Public Attributes

MyVolumeFE feRhs
 cauclate right hand side for tetrahedral elements More...
 
MyVolumeFE feLhs
 
MoFEM::Interfacem_field
 
CommonData commonData
 
map< int, BlockDatasetOfBlocks
 maps block set id with appropiate BlockData More...
 

Detailed Description

finite element to appeximate analytical solution on surface

Definition at line 35 of file NormElementObsolete.hpp.

Constructor & Destructor Documentation

◆ NormElement()

MoFEM::NormElement::NormElement ( MoFEM::Interface mField)

Definition at line 69 of file NormElementObsolete.hpp.

70  :
71  feRhs(mField),feLhs(mField),m_field(mField) {}
MyVolumeFE feRhs
cauclate right hand side for tetrahedral elements
MoFEM::Interface & m_field

Member Function Documentation

◆ addNormElements()

PetscErrorCode MoFEM::NormElement::addNormElements ( const string  problem,
string  fe,
const string  norm_field_name,
const string  field1_name,
const string  field2_name,
const string  mesh_nodals_positions = "MESH_NODE_POSITIONS" 
)

Definition at line 491 of file NormElementObsolete.hpp.

495  {
496  PetscFunctionBegin;
497  PetscErrorCode ierr;
498  ErrorCode rval;
503 
506 
507 
508 
509  if(m_field.check_field(mesh_nodals_positions)) {
510  ierr = m_field.modify_finite_element_add_field_data(fe,mesh_nodals_positions); CHKERRQ(ierr);
511  }
513 
514 
515  //Range tEts;
516  for(_IT_CUBITMESHSETS_BY_NAME_FOR_LOOP_(m_field,"MAT_NORM",it)) {
517  //rval = m_Field.get_moab().get_entities_by_type(it->get_meshset(),MBTET,tEts,true); CHKERR_PETSC(rval);
518  rval = m_field.get_moab().get_entities_by_type(it->get_meshset(),MBTET,setOfBlocks[it->get_msId()].tEts,true); CHKERR_PETSC(rval);
519 
521  }
522 
523 
524  PetscFunctionReturn(0);
525 
526  }
virtual MoFEMErrorCode modify_finite_element_add_field_col(const std::string &fe_name, const std::string &name_row)=0
set field col which finite element use
virtual moab::Interface & get_moab()=0
#define _IT_CUBITMESHSETS_BY_NAME_FOR_LOOP_(MESHSET_MANAGER, NAME, IT)
Iterator that loops over Cubit BlockSet having a particular name.
virtual MoFEMErrorCode modify_problem_add_finite_element(const std::string &name_problem, const std::string &fe_name)=0
add finite element to problem, this add entities assigned to finite element to a particular problem ...
map< int, BlockData > setOfBlocks
maps block set id with appropiate BlockData
static MoFEMErrorCodeGeneric< PetscErrorCode > ierr
Definition: Common.hpp:80
static MoFEMErrorCodeGeneric< moab::ErrorCode > rval
Definition: Common.hpp:78
CHKERRQ(ierr)
virtual MoFEMErrorCode add_finite_element(const std::string &fe_name, enum MoFEMTypes bh=MF_EXCL, int verb=DEFAULT_VERBOSITY)=0
add finite element
MoFEM::Interface & m_field
virtual MoFEMErrorCode modify_finite_element_add_field_data(const std::string &fe_name, const std::string &name_filed)=0
set finite element field data
virtual DEPRECATED MoFEMErrorCode add_ents_to_finite_element_by_TETs(const Range &tets, const std::string &name)=0
add TET entities from range to finite element database given by name
virtual bool check_field(const std::string &name) const =0
check if field is in database
virtual MoFEMErrorCode modify_finite_element_add_field_row(const std::string &fe_name, const std::string &name_row)=0
set field row which finite element use

◆ getLoopFeLhs()

MyVolumeFE& MoFEM::NormElement::getLoopFeLhs ( )

get lhs volume element

Definition at line 60 of file NormElementObsolete.hpp.

◆ getLoopFeRhs()

MyVolumeFE& MoFEM::NormElement::getLoopFeRhs ( )

get rhs volume element

Definition at line 58 of file NormElementObsolete.hpp.

◆ setNormFiniteElementRhsOperator()

PetscErrorCode MoFEM::NormElement::setNormFiniteElementRhsOperator ( string  norm_field_name,
string  field1_name,
string  field2_name,
Mat  A,
Vec &  F,
bool  usel2,
bool  userela,
string  nodals_positions = "MESH_NODE_POSITIONS" 
)

Definition at line 531 of file NormElementObsolete.hpp.

533  {
534  PetscFunctionBegin;
535 
536  map<int,BlockData>::iterator sit = setOfBlocks.begin();
537 
538  for(;sit!=setOfBlocks.end();sit++) {
539 
540  //Calculate field values at gaussian points for field1 and field2;
541  feRhs.get_op_to_do_Rhs().push_back(new OpGetTetField1AtGaussPts(field1_name,commonData));
542  feRhs.get_op_to_do_Rhs().push_back(new OpGetTetField2AtGaussPts(field2_name,commonData));
543  feRhs.get_op_to_do_Rhs().push_back(new OpGetGradField1AtGaussPts(field1_name,commonData));
544  feRhs.get_op_to_do_Rhs().push_back(new OpGetGradField2AtGaussPts(field2_name,commonData));
545 
546  feLhs.get_op_to_do_Lhs().push_back(new OpLhs(norm_field_name,A));
547 
548  feRhs.get_op_to_do_Rhs().push_back(new OpRhs(norm_field_name,norm_field_name,F,commonData,usel2,userela));
549  }
550 
551  PetscFunctionReturn(0);
552 }
map< int, BlockData > setOfBlocks
maps block set id with appropiate BlockData
MyVolumeFE feRhs
cauclate right hand side for tetrahedral elements

Member Data Documentation

◆ commonData

CommonData MoFEM::NormElement::commonData

Definition at line 92 of file NormElementObsolete.hpp.

◆ feLhs

MyVolumeFE MoFEM::NormElement::feLhs

Definition at line 59 of file NormElementObsolete.hpp.

◆ feRhs

MyVolumeFE MoFEM::NormElement::feRhs

cauclate right hand side for tetrahedral elements

Definition at line 57 of file NormElementObsolete.hpp.

◆ m_field

MoFEM::Interface& MoFEM::NormElement::m_field

Definition at line 68 of file NormElementObsolete.hpp.

◆ setOfBlocks

map<int,BlockData> MoFEM::NormElement::setOfBlocks

maps block set id with appropiate BlockData

Definition at line 97 of file NormElementObsolete.hpp.


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