![]() |
v0.15.0 |
Adding and managing problems. More...
Files | |
| file | ProblemsManager.cpp |
| Managing complexities for problem. | |
| file | ProblemsManager.hpp |
| Interface for building, partitioning, and managing finite element problems. | |
Classes | |
| struct | MoFEM::ProblemsManager |
| Problem manager is used to build and partition problems. More... | |
Functions | |
| MoFEMErrorCode | MoFEM::ProblemsManager::getOptions () |
| Get command line options for ProblemsManager. | |
| DEPRECATED MoFEMErrorCode | MoFEM::ProblemsManager::partitionMesh (const Range &ents, const int dim, const int adj_dim, const int n_parts, Tag *th_vertex_weights=nullptr, Tag *th_edge_weights=nullptr, Tag *th_part_weights=nullptr, int verb=VERBOSE, const bool debug=false) |
| Set partition tag to each finite element in the problem. | |
| MoFEMErrorCode | MoFEM::ProblemsManager::buildProblem (const std::string name, const bool square_matrix, int verb=VERBOSE) |
| build problem data structures | |
| MoFEMErrorCode | MoFEM::ProblemsManager::buildProblem (Problem *problem_ptr, const bool square_matrix, int verb=VERBOSE) |
| build problem data structures | |
| MoFEMErrorCode | MoFEM::ProblemsManager::buildProblemOnDistributedMesh (const std::string name, const bool square_matrix, int verb=VERBOSE) |
| build problem data structures, assuming that mesh is distributed (collective) | |
| MoFEMErrorCode | MoFEM::ProblemsManager::buildProblemOnDistributedMesh (Problem *problem_ptr, const bool square_matrix=true, int verb=VERBOSE) |
| build problem data structures, assuming that mesh is distributed (collective) | |
| MoFEMErrorCode | MoFEM::ProblemsManager::buildSubProblem (const std::string out_name, const std::vector< std::string > &fields_row, const std::vector< std::string > &fields_col, const std::string main_problem, const bool square_matrix=true, const map< std::string, boost::shared_ptr< Range > > *entityMapRow=nullptr, const map< std::string, boost::shared_ptr< Range > > *entityMapCol=nullptr, int verb=VERBOSE) |
| build sub problem | |
| MoFEMErrorCode | MoFEM::ProblemsManager::buildComposedProblem (const std::string out_name, const std::vector< std::string > add_row_problems, const std::vector< std::string > add_col_problems, const bool square_matrix=true, int verb=1) |
| build composite problem | |
| MoFEMErrorCode | MoFEM::ProblemsManager::inheritPartition (const std::string name, const std::string problem_for_rows, bool copy_rows, const std::string problem_for_cols, bool copy_cols, int verb=VERBOSE) |
| build indexing and partition problem inheriting indexing and partitioning from two other problems | |
| MoFEMErrorCode | MoFEM::ProblemsManager::partitionSimpleProblem (const std::string name, int verb=VERBOSE) |
| partition problem dofs | |
| MoFEMErrorCode | MoFEM::ProblemsManager::partitionProblem (const std::string name, int verb=VERBOSE) |
| partition problem dofs (collective) | |
| MoFEMErrorCode | MoFEM::ProblemsManager::printPartitionedProblem (const Problem *problem_ptr, int verb=VERBOSE) |
| Print partition information for debugging. | |
| MoFEMErrorCode | MoFEM::ProblemsManager::debugPartitionedProblem (const Problem *problem_ptr, int verb=VERBOSE) |
| Debug partition information. | |
| MoFEMErrorCode | MoFEM::ProblemsManager::partitionFiniteElements (const std::string name, bool part_from_moab=false, int low_proc=-1, int hi_proc=-1, int verb=VERBOSE) |
| partition finite elements | |
| MoFEMErrorCode | MoFEM::ProblemsManager::partitionGhostDofs (const std::string name, int verb=VERBOSE) |
| determine ghost nodes | |
| MoFEMErrorCode | MoFEM::ProblemsManager::partitionGhostDofsOnDistributedMesh (const std::string name, int verb=VERBOSE) |
| determine ghost nodes on distributed meshes | |
| MoFEMErrorCode | MoFEM::ProblemsManager::getFEMeshset (const std::string prb_name, const std::string &fe_name, EntityHandle *meshset) const |
| Create finite element meshset for the problem. | |
| MoFEMErrorCode | MoFEM::ProblemsManager::getProblemElementsLayout (const std::string name, const std::string &fe_name, PetscLayout *layout) const |
| Get layout of elements in the problem. | |
| MoFEMErrorCode | MoFEM::ProblemsManager::removeDofsOnEntities (const std::string problem_name, const std::string field_name, const Range ents, const int lo_coeff=0, const int hi_coeff=MAX_DOFS_ON_ENTITY, const int lo_order=0, const int hi_order=100, int verb=VERBOSE, const bool debug=false) |
| Remove DOFs from problem. | |
| MoFEMErrorCode | MoFEM::ProblemsManager::removeDofsOnEntities (const std::string problem_name, const std::string field_name, const BitRefLevel bit_ref_level, const BitRefLevel bit_ref_mask, Range *ents_ptr=nullptr, const int lo_coeff=0, const int hi_coeff=MAX_DOFS_ON_ENTITY, const int lo_order=0, const int hi_order=100, int verb=VERBOSE, const bool debug=false) |
| Remove DOFs from problem by bit ref level. | |
| MoFEMErrorCode | MoFEM::ProblemsManager::removeDofs (const std::string problem_name, RowColData rc, std::vector< boost::weak_ptr< NumeredDofEntity > > &vec_dof_view, int verb=VERBOSE, const bool debug=false) |
| Remove DOFs from problem on broken space. | |
| MoFEMErrorCode | MoFEM::ProblemsManager::getSideDofsOnBrokenSpaceEntities (std::vector< boost::weak_ptr< NumeredDofEntity > > &vec_dof_view, const std::string problem_name, RowColData rc, const std::string field_name, const Range ents, int bridge_dim, const int lo_coeff=0, const int hi_coeff=MAX_DOFS_ON_ENTITY, const int lo_order=0, const int hi_order=100, int verb=VERBOSE, const bool debug=false) const |
| Get DOFs on side entities for broken space. | |
| MoFEMErrorCode | MoFEM::ProblemsManager::modifyMarkDofs (const std::string problem_name, RowColData rc, const std::string field_name, const int lo, const int hi, const enum MarkOP op, const unsigned char c, std::vector< unsigned char > &marker) const |
| Modify DOF markers for specific field and coefficient range. | |
| MoFEMErrorCode | MoFEM::ProblemsManager::markDofs (const std::string problem_name, RowColData rc, std::vector< boost::weak_ptr< NumeredDofEntity > > &vec_dof_view, const enum MarkOP op, std::vector< unsigned char > &marker) const |
| Create vector with marked DOF indices based on DOF view. | |
| MoFEMErrorCode | MoFEM::ProblemsManager::addFieldToEmptyFieldBlocks (const std::string problem_name, const std::string row_field, const std::string col_field) const |
| Add empty field blocks to optimize matrix storage. | |
Read, load and broadcast | |
@ | |
| MoFEMErrorCode | MoFEM::CommInterface::partitionMesh (const Range &ents, const int dim, const int adj_dim, const int n_parts, Tag *th_vertex_weights=nullptr, Tag *th_edge_weights=nullptr, Tag *th_part_weights=nullptr, int verb=VERBOSE, const bool debug=false) |
| Set partition tag to each finite element in the problem. | |
Adding and managing problems.
| MoFEMErrorCode MoFEM::ProblemsManager::addFieldToEmptyFieldBlocks | ( | const std::string | problem_name, |
| const std::string | row_field, | ||
| const std::string | col_field | ||
| ) | const |
#include <src/interfaces/ProblemsManager.hpp>
Add empty field blocks to optimize matrix storage.
Marks field combinations as empty blocks in the matrix structure to optimize memory usage and computational efficiency. The MatrixManager assumes all field combinations result in non-zero blocks, but this allows specification of blocks that will remain zero for the entire problem duration.
| problem_name | name of the problem to modify |
| row_field | name of the field for matrix row blocks |
| col_field | name of the field for matrix column blocks |
Definition at line 3696 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::buildComposedProblem | ( | const std::string | out_name, |
| const std::vector< std::string > | add_row_problems, | ||
| const std::vector< std::string > | add_col_problems, | ||
| const bool | square_matrix = true, |
||
| int | verb = 1 |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
build composite problem
Creates a composite problem by combining multiple existing problems. The resulting problem contains DOFs from all constituent problems, arranged in block matrix structure.
| out_name | name of the composite problem to create |
| add_row_problems | vector of problem names contributing to rows |
| add_col_problems | vector of problem names contributing to columns |
| square_matrix | true if the composite matrix is structurally symmetric |
| verb | verbosity level |
Definition at line 1246 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::buildProblem | ( | const std::string | name, |
| const bool | square_matrix, | ||
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
build problem data structures
| name | problem name |
| square_matrix | structurally symmetric problem |
| verb | verbosity level |
Definition at line 86 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::buildProblem | ( | Problem * | problem_ptr, |
| const bool | square_matrix, | ||
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
build problem data structures
| problem | pointer |
| square_matrix | structurally symmetric problem |
| verb | verbosity level |
Definition at line 106 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::buildProblemOnDistributedMesh | ( | const std::string | name, |
| const bool | square_matrix, | ||
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
build problem data structures, assuming that mesh is distributed (collective)
Mesh is distributed, that means that each processor keeps only own part of the mesh and shared entities.
Collective - need to be run on all processors in communicator, i.e. each function has to call this function.
| name | problem name to build |
| square_matrix | true if problem has structurally symmetric matrix |
| verb | verbosity level |
Definition at line 289 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::buildProblemOnDistributedMesh | ( | Problem * | problem_ptr, |
| const bool | square_matrix = true, |
||
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
build problem data structures, assuming that mesh is distributed (collective)
Mesh is distributed, that means that each processor keeps only own part of the mesh and shared entities.
Collective - need to be run on all processors in communicator, i.e. each function has to call this function.
| problem_ptr | pointer to problem structure |
| square_matrix | true if problem has structurally symmetric matrix |
| verb | verbosity level |
Definition at line 312 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::buildSubProblem | ( | const std::string | out_name, |
| const std::vector< std::string > & | fields_row, | ||
| const std::vector< std::string > & | fields_col, | ||
| const std::string | main_problem, | ||
| const bool | square_matrix = true, |
||
| const map< std::string, boost::shared_ptr< Range > > * | entityMapRow = nullptr, |
||
| const map< std::string, boost::shared_ptr< Range > > * | entityMapCol = nullptr, |
||
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
build sub problem
Creates a sub-problem from a main problem by selecting specific fields for rows and columns. This is useful for creating focused problems that operate on subsets of the full problem's fields.
| out_name | name of the output sub-problem to create |
| fields_row | vector of field names for problem rows |
| fields_col | vector of field names for problem columns |
| main_problem | name of the main problem to extract from |
| square_matrix | true if the sub-problem matrix is structurally symmetric |
| entityMapRow | optional map restricting row fields to specific entities |
| entityMapCol | optional map restricting column fields to specific entities |
| verb | verbosity level |
Definition at line 977 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::debugPartitionedProblem | ( | const Problem * | problem_ptr, |
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
Debug partition information.
Performs detailed analysis and validation of problem partitioning, checking for inconsistencies and reporting partition quality metrics.
| problem_ptr | pointer to the problem structure |
| verb | verbosity level |
Definition at line 2080 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::getFEMeshset | ( | const std::string | prb_name, |
| const std::string & | fe_name, | ||
| EntityHandle * | meshset | ||
| ) | const |
#include <src/interfaces/ProblemsManager.hpp>
Create finite element meshset for the problem.
Creates or retrieves the meshset entity that contains all finite elements of a specific type within a problem. The meshset entity must be created before calling this function.
| prb_name | name of the problem |
| fe_name | name of the finite element type |
| meshset | pointer to store the meshset handle |
Definition at line 2564 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::getOptions | ( | ) |
#include <src/interfaces/ProblemsManager.hpp>
Get command line options for ProblemsManager.
Retrieves configuration options from command line arguments that control problem building behavior, such as buildProblemFromFields and synchroniseProblemEntities flags.
Definition at line 62 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::getProblemElementsLayout | ( | const std::string | name, |
| const std::string & | fe_name, | ||
| PetscLayout * | layout | ||
| ) | const |
#include <src/interfaces/ProblemsManager.hpp>
Get layout of elements in the problem.
In layout is stored information how many elements is on each processor, for more information look int petsc documentation http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/IS/PetscLayoutCreate.html#PetscLayoutCreate
| name | problem name |
| fe_name | finite elements |
| layout | layout |
| verb | verbosity level |
Definition at line 2598 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::getSideDofsOnBrokenSpaceEntities | ( | std::vector< boost::weak_ptr< NumeredDofEntity > > & | vec_dof_view, |
| const std::string | problem_name, | ||
| RowColData | rc, | ||
| const std::string | field_name, | ||
| const Range | ents, | ||
| int | bridge_dim, | ||
| const int | lo_coeff = 0, |
||
| const int | hi_coeff = MAX_DOFS_ON_ENTITY, |
||
| const int | lo_order = 0, |
||
| const int | hi_order = 100, |
||
| int | verb = VERBOSE, |
||
| const bool | debug = false |
||
| ) | const |
#include <src/interfaces/ProblemsManager.hpp>
Get DOFs on side entities for broken space.
Retrieves DOFs associated with side entities in broken (discontinuous) spaces. The DOFs are connected through a bridge entity of specified dimension. This is useful for implementing interface conditions in discontinuous Galerkin methods.
| vec_dof_view | output vector to store the DOF entities |
| problem_name | name of the problem |
| rc | row or column data specification |
| field_name | name of the field |
| ents | range of side entities to process |
| bridge_dim | dimension of bridge entity connecting DOFs to side entities |
| lo_coeff | lowest coefficient (rank) to include |
| hi_coeff | highest coefficient (rank) to include |
| lo_order | lowest polynomial order to include |
| hi_order | highest polynomial order to include |
| verb | verbosity level |
| debug | enable debug output for inconsistency checking |
Definition at line 2610 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::inheritPartition | ( | const std::string | name, |
| const std::string | problem_for_rows, | ||
| bool | copy_rows, | ||
| const std::string | problem_for_cols, | ||
| bool | copy_cols, | ||
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
build indexing and partition problem inheriting indexing and partitioning from two other problems
Transfers DOF indexing and partitioning information from existing problems to a new problem. This is useful for maintaining consistent partitioning across related problems in multi-physics simulations.
| name | name of the target problem to inherit partitioning |
| problem_for_rows | source problem for row DOF indexing and partitioning |
| copy_rows | if true, copy row DOF indices; if false, only copy partition info |
| problem_for_cols | source problem for column DOF indexing and partitioning |
| copy_cols | if true, copy column DOF indices; if false, only copy partition info |
| verb | verbosity level |
If copy_rows/copy_cols is set to false only partition is copied between problems.
Definition at line 1892 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::markDofs | ( | const std::string | problem_name, |
| RowColData | rc, | ||
| std::vector< boost::weak_ptr< NumeredDofEntity > > & | vec_dof_view, | ||
| const enum MarkOP | op, | ||
| std::vector< unsigned char > & | marker | ||
| ) | const |
#include <src/interfaces/ProblemsManager.hpp>
Create vector with marked DOF indices based on DOF view.
Creates or modifies a marker vector based on a DOF view, allowing selective marking of DOFs that are present in the view. This is useful for creating masks or index sets for specific DOF collections in matrix/vector operations.
| problem_name | name of the problem |
| rc | row or column data specification |
| vec_dof_view | vector of DOF entities to process for marking |
| op | marking operation (OR, AND, XOR) to apply |
| marker | reference to marker vector to create/modify |
Definition at line 3656 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::modifyMarkDofs | ( | const std::string | problem_name, |
| RowColData | rc, | ||
| const std::string | field_name, | ||
| const int | lo, | ||
| const int | hi, | ||
| const enum MarkOP | op, | ||
| const unsigned char | c, | ||
| std::vector< unsigned char > & | marker | ||
| ) | const |
#include <src/interfaces/ProblemsManager.hpp>
Modify DOF markers for specific field and coefficient range.
Modifies the marker flags for DOFs associated with a specific field within a defined coefficient range. This allows selective marking/unmarking of DOFs based on field and polynomial order criteria using bitwise operations.
| problem_name | name of the problem |
| rc | row or column data specification |
| field_name | name of the field to process |
| lo | lowest coefficient (rank) to include |
| hi | highest coefficient (rank) to include |
| op | marking operation (OR, AND, XOR) to apply |
| c | marker value to apply with the operation |
| marker | reference to marker vector to modify |
Definition at line 3606 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::partitionFiniteElements | ( | const std::string | name, |
| bool | part_from_moab = false, |
||
| int | low_proc = -1, |
||
| int | hi_proc = -1, |
||
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
partition finite elements
Function which partition finite elements based on dofs partitioning. In addition it sets information about local row and cols dofs at given element on partition. Can optionally use MOAB's partitioning information or restrict partitioning to specific processor ranges.
| name | problem name to partition finite elements for |
| part_from_moab | if true, use MOAB's existing partition information |
| low_proc | lowest processor rank to include (-1 for all) |
| hi_proc | highest processor rank to include (-1 for all) |
| verb | verbosity level |
Definition at line 2163 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::partitionGhostDofs | ( | const std::string | name, |
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
determine ghost nodes
Identifies and marks DOFs as ghost DOFs for parallel computations. DOFs are ghost dofs if they are used by elements on a given partition but not owned by that partition.
| name | problem name to determine ghost DOFs for |
| verb | verbosity level |
Definition at line 2344 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::partitionGhostDofsOnDistributedMesh | ( | const std::string | name, |
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
determine ghost nodes on distributed meshes
Identifies and marks DOFs as ghost DOFs specifically for distributed meshes. This function is similar to partitionGhostDofs but exploits the fact that the mesh is distributed across processors. DOFs are ghosted if they are shared but not owned by the current partition.
| name | problem name to determine ghost DOFs for |
| verb | verbosity level |
Definition at line 2478 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::CommInterface::partitionMesh | ( | const Range & | ents, |
| const int | dim, | ||
| const int | adj_dim, | ||
| const int | n_parts, | ||
| Tag * | th_vertex_weights = nullptr, |
||
| Tag * | th_edge_weights = nullptr, |
||
| Tag * | th_part_weights = nullptr, |
||
| int | verb = VERBOSE, |
||
| const bool | debug = false |
||
| ) |
#include <src/interfaces/CommInterface.hpp>
Set partition tag to each finite element in the problem.
This will use one of the mesh partitioning programs available from PETSc See http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatPartitioningType.html
| ents | Entities to partition |
| dim | Dimension of entities to partition |
| adj_dim | Adjacency dimension |
| n_parts | Number of partitions |
| verb | Verbosity level |
Definition at line 868 of file CommInterface.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::partitionMesh | ( | const Range & | ents, |
| const int | dim, | ||
| const int | adj_dim, | ||
| const int | n_parts, | ||
| Tag * | th_vertex_weights = nullptr, |
||
| Tag * | th_edge_weights = nullptr, |
||
| Tag * | th_part_weights = nullptr, |
||
| int | verb = VERBOSE, |
||
| const bool | debug = false |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
Set partition tag to each finite element in the problem.
This will use one of the mesh partitioning programs available from PETSc See http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatPartitioningType.html
| ents | Entities to partition |
| dim | Dimension of entities to partition |
| adj_dim | Adjacency dimension |
| n_parts | Number of partitions |
| verb | Verbosity level |
Definition at line 76 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::partitionProblem | ( | const std::string | name, |
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
partition problem dofs (collective)
Partitions DOFs for distributed problems where the mesh is already distributed across processors. Must be called collectively on all processors in the communicator.
| name | problem name to partition |
| verb | verbosity level |
Definition at line 1679 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::partitionSimpleProblem | ( | const std::string | name, |
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
partition problem dofs
Partitions DOFs for sequential/simple problems where the mesh is not distributed across processors. Creates local DOF numbering and assigns ownership to processors.
| name | problem name to partition |
| verb | verbosity level |
Definition at line 1533 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::printPartitionedProblem | ( | const Problem * | problem_ptr, |
| int | verb = VERBOSE |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
Print partition information for debugging.
Outputs detailed information about how DOFs and finite elements are distributed across processors for the given problem.
| problem_ptr | pointer to the problem structure |
| verb | verbosity level |
Definition at line 2061 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::removeDofs | ( | const std::string | problem_name, |
| RowColData | rc, | ||
| std::vector< boost::weak_ptr< NumeredDofEntity > > & | vec_dof_view, | ||
| int | verb = VERBOSE, |
||
| const bool | debug = false |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
Remove DOFs from problem on broken space.
Removes specified DOFs from the problem for broken (discontinuous) spaces. The DOFs are marked as inactive by setting their indices to -1, which causes them to be skipped during assembly operations.
| problem_name | name of the problem |
| rc | row or column data specification |
| vec_dof_view | vector of DOF entities to remove |
| verb | verbosity level |
| debug | enable debug output for inconsistency checking |
Definition at line 2719 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::removeDofsOnEntities | ( | const std::string | problem_name, |
| const std::string | field_name, | ||
| const BitRefLevel | bit_ref_level, | ||
| const BitRefLevel | bit_ref_mask, | ||
| Range * | ents_ptr = nullptr, |
||
| const int | lo_coeff = 0, |
||
| const int | hi_coeff = MAX_DOFS_ON_ENTITY, |
||
| const int | lo_order = 0, |
||
| const int | hi_order = 100, |
||
| int | verb = VERBOSE, |
||
| const bool | debug = false |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
Remove DOFs from problem by bit ref level.
See for more detail other implementation for removeDofsOnEntities.
| problem_name | name of the problem |
| field_name | name of the field |
| bit_ref_level | bit ref level on which DOFs are removed |
| bit_ref_mask | bit ref mask on which DOFs are removed |
| ents_ptr | filter entities with given bit and mask |
| lo_coeff | low dof coefficient (rank) |
| hi_coeff | high dof coefficient (rank) |
| verb | verbosity level |
| debug | to debug and seek for inconsistencies set to true |
Definition at line 3499 of file ProblemsManager.cpp.
| MoFEMErrorCode MoFEM::ProblemsManager::removeDofsOnEntities | ( | const std::string | problem_name, |
| const std::string | field_name, | ||
| const Range | ents, | ||
| const int | lo_coeff = 0, |
||
| const int | hi_coeff = MAX_DOFS_ON_ENTITY, |
||
| const int | lo_order = 0, |
||
| const int | hi_order = 100, |
||
| int | verb = VERBOSE, |
||
| const bool | debug = false |
||
| ) |
#include <src/interfaces/ProblemsManager.hpp>
Remove DOFs from problem.
Remove DOFs from problem which are on entities on the given range and given field name. On the finite element level, DOFs can be still accessed however local PETSc indices and global PETSc indices are marked with the index -1.
| problem_name | name of the problem |
| field_name | name of the field |
| ents | entities on which DOFs are removed |
| lo_coeff | low dof coefficient (rank) |
| hi_coeff | high dof coefficient (rank) |
| verb | verbosity level |
| debug | to debug and seek for inconsistencies set to true |
Definition at line 2959 of file ProblemsManager.cpp.