145                                 {
  146 
  147  
  149 
  150  try {
  151 
  152    
  153    moab::Core moab_core;
  154    moab::Interface &moab = moab_core;
  155 
  156    
  159 
  160    auto core_log = logging::core::get();
  161    core_log->add_sink(
  164 
  165    
  166    DMType dm_name = "DMMOFEM";
  168 
  169    
  172    {
  173      
  175      
  177 
  179        enum bases { AINSWORTH, DEMKOWICZ, LASTBASEOP };
  180        const char *list_bases[] = {"ainsworth", "demkowicz"};
  181        PetscBool flg;
  182        PetscInt choice_base_value = AINSWORTH;
  184                                    LASTBASEOP, &choice_base_value, &flg);
  185        if (flg == PETSC_TRUE) {
  187          if (choice_base_value == AINSWORTH)
  189          else if (choice_base_value == DEMKOWICZ)
  191          return base;
  192        }
  194      };
  195 
  196      
  197      auto base = get_base();
  200      
  202      
  204      
  205      auto dm = simple_interface->
getDM();
 
  206 
  207      
  209      boost::shared_ptr<EdgeEle> skeleton_fe =
  210          boost::shared_ptr<EdgeEle>(
new EdgeEle(m_field));
 
  211 
  213      skeleton_fe->getOpPtrVector().push_back(
  215 
  216      
  218                                      skeleton_fe);
  219    }
  220  }
  222 
  223  
  225 
  226  return 0;
  227}
MoFEM::EdgeElementForcesAndSourcesCore EdgeEle
#define CATCH_ERRORS
Catch errors.
FieldApproximationBase
approximation base
@ AINSWORTH_LEGENDRE_BASE
Ainsworth Cole (Legendre) approx. base .
@ HCURL
field with continuous tangents
#define CHKERR
Inline error check.
PetscErrorCode DMRegister_MoFEM(const char sname[])
Register MoFEM problem.
PetscErrorCode DMoFEMLoopFiniteElements(DM dm, const char fe_name[], MoFEM::FEMethod *method, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr())
Executes FEMethod for finite elements in DM.
static LoggerType & setLog(const std::string channel)
Set ans resset chanel logger.
PetscErrorCode PetscOptionsGetEList(PetscOptions *, const char pre[], const char name[], const char *const *list, PetscInt next, PetscInt *value, PetscBool *set)
Add operators pushing bases from local to physical configuration.
static MoFEMErrorCode Initialize(int *argc, char ***args, const char file[], const char help[])
Initializes the MoFEM database PETSc, MOAB and MPI.
static MoFEMErrorCode Finalize()
Checks for options to be called at the conclusion of the program.
Deprecated interface functions.
static boost::shared_ptr< SinkType > createSink(boost::shared_ptr< std::ostream > stream_ptr, std::string comm_filter)
Create a sink object.
static boost::shared_ptr< std::ostream > getStrmSelf()
Get the strm self object.
Simple interface for fast problem set-up.
MoFEMErrorCode addDomainField(const std::string name, const FieldSpace space, const FieldApproximationBase base, const FieldCoefficientsNumber nb_of_coefficients, const TagType tag_type=MB_TAG_SPARSE, const enum MoFEMTypes bh=MF_ZERO, int verb=-1)
Add field on domain.
MoFEMErrorCode loadFile(const std::string options, const std::string mesh_file_name, LoadFileFunc loadFunc=defaultLoadFileFunc)
Load mesh file.
const std::string getSkeletonFEName() const
Get the Skeleton FE Name.
MoFEMErrorCode getOptions()
get options
MoFEMErrorCode getDM(DM *dm)
Get DM.
MoFEMErrorCode setFieldOrder(const std::string field_name, const int order, const Range *ents=NULL)
Set field order.
MoFEMErrorCode setUp(const PetscBool is_partitioned=PETSC_TRUE)
Setup problem.
MoFEMErrorCode addSkeletonField(const std::string name, const FieldSpace space, const FieldApproximationBase base, const FieldCoefficientsNumber nb_of_coefficients, const TagType tag_type=MB_TAG_SPARSE, const enum MoFEMTypes bh=MF_ZERO, int verb=-1)
Add field on skeleton.
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.