ug4
|
describes the ansatz spaces on a domain More...
#include <approximation_space.h>
Public Types | |
typedef MultiGrid | grid_type |
Type of Subset Handler. More... | |
typedef MGSubsetHandler | subset_handler_type |
Type of Subset Handler. More... | |
Public Member Functions | |
void | add (const char *name, const char *type) |
adds function using string to indicate finite element type More... | |
void | add (const char *name, const char *type, const char *subsets) |
adds function using string to indicate finite element type More... | |
void | add (const char *name, const char *type, int order) |
adds function using string to indicate finite element type More... | |
void | add (const char *name, const char *type, int order, const char *subsets) |
adds function using string to indicate finite element type More... | |
void | add (const std::vector< std::string > &vName, const char *type) |
adds function using string to indicate finite element type More... | |
void | add (const std::vector< std::string > &vName, const char *type, const std::vector< std::string > &vSubsets) |
adds function using string to indicate finite element type More... | |
void | add (const std::vector< std::string > &vName, const char *type, int order) |
adds function using string to indicate finite element type More... | |
void | add (const std::vector< std::string > &vName, const char *type, int order, const std::vector< std::string > &vSubsets) |
adds function using string to indicate finite element type More... | |
void | add (const std::vector< std::string > &vName, LFEID id) |
add single solutions of LocalShapeFunctionSetID to the entire domain More... | |
void | add (const std::vector< std::string > &vName, LFEID id, const std::vector< std::string > &vSubset) |
add single solutions of LocalShapeFunctionSetID to selected subsets More... | |
void | clear () |
clears functions More... | |
std::vector< SmartPtr< DoFDistribution > > | dof_distributions () const |
returns all currently created dof distributions More... | |
bool | grouped () const |
returns if dofs are grouped More... | |
IApproximationSpace (SmartPtr< subset_handler_type > spMGSH, SmartPtr< grid_type > spMG) | |
Constructor. More... | |
IApproximationSpace (SmartPtr< subset_handler_type > spMGSH, SmartPtr< grid_type >, const AlgebraType &algebraType) | |
Constructor setting the grouping flag. More... | |
void | init_levels () |
initializes all level dof distributions More... | |
void | init_surfaces () |
initializes all surface dof distributions More... | |
void | init_top_surface () |
initializes all top surface dof distributions More... | |
bool | might_contain_ghosts () const |
returns if ghosts might be present on any level More... | |
bool | might_contain_ghosts (int lvl) const |
returns if ghosts might be present on a level More... | |
size_t | num_levels () const |
returns the number of level More... | |
void | print_layout_statistic () const |
prints statistic on layouts More... | |
void | print_statistic () const |
prints statistic about DoF Distribution More... | |
void | print_statistic (std::string flags) const |
prints statistic about DoF Distribution More... | |
const RevisionCounter & | revision () const |
returns the current revision More... | |
ConstSmartPtr< MGSubsetHandler > | subset_handler () const |
get underlying subset handler More... | |
ConstSmartPtr< SurfaceView > | surface_view () const |
returns the approximation space More... | |
~IApproximationSpace () | |
Destructor. More... | |
SmartPtr< DoFDistribution > | dof_distribution (const GridLevel &gl, bool bCreate=true) |
SmartPtr< DoFDistribution > | dd (const GridLevel &gl, bool bCreate=true) |
ConstSmartPtr< DoFDistribution > | dof_distribution (const GridLevel &gl, bool bCreate=true) const |
ConstSmartPtr< DoFDistribution > | dd (const GridLevel &gl, bool bCreate=true) const |
ConstSmartPtr< DoFDistributionInfo > | ddinfo () const |
ConstSmartPtr< DoFDistributionInfo > | dof_distribution_info () const |
Public Member Functions inherited from ug::DoFDistributionInfoProvider | |
SubsetGroup | all_subsets_grp_except_for (const char *names) const |
returns subset group of all the subsets except for (by name) More... | |
int | dim (size_t fct) const |
returns the dimension in which solution lives More... | |
int | dim_subset (int si) const |
returns dimension of subset More... | |
ConstSmartPtr< DoFDistributionInfo > | dof_distribution_info () const |
returns underlying info More... | |
DoFDistributionInfoProvider () | |
constructor More... | |
DoFDistributionInfoProvider (ConstSmartPtr< DoFDistributionInfo > spDDI) | |
constructor More... | |
FunctionGroup | fct_grp_by_name (const char *names) const |
returns a function group to a string of functions More... | |
size_t | fct_id_by_name (const char *name) const |
returns fct id by name More... | |
ConstSmartPtr< FunctionPattern > | function_pattern () const |
returns the function pattern More... | |
bool | is_def_everywhere (size_t fct) const |
returns true if the discrete function nr_fct is defined everywhere More... | |
bool | is_def_in_subset (size_t fct, int si) const |
returns if a function is defined on a subset More... | |
size_t | max_dofs (const GridBaseObjectId gbo) const |
returns the maximum number of dofs on a grid base object type More... | |
size_t | max_dofs (const GridBaseObjectId gbo, const int si) const |
returns the maximum number of dofs on a grid base object on a subset More... | |
size_t | max_dofs (const int dim) const |
returns the maximum number of dofs on grid objects in a dimension More... | |
size_t | max_dofs (const int dim, const int si) const |
returns the maximum number of dofs in a dimension on a subset More... | |
size_t | max_dofs (const ReferenceObjectID roid) const |
returns the maximum number of dofs on reference object type More... | |
size_t | max_fct_dofs (const size_t fct, const GridBaseObjectId gbo) const |
returns the maximal number of dofs on a base object type for a function component More... | |
size_t | max_fct_dofs (const size_t fct, const GridBaseObjectId gbo, const int si) const |
returns the maximum number of dofs on a grid base object on a subset for a function component More... | |
size_t | max_fct_dofs (const size_t fct, const int dim, const int si) const |
returns the maximum number of dofs in a dimension on a subset for a function component More... | |
size_t | max_fct_dofs (const size_t fct, const ReferenceObjectID roid) const |
returns the number of dofs on a reference object for a function component More... | |
size_t | max_fct_dofs (const size_t fct, int dim) const |
returns the maximal number of dofs on a dimension for a function component More... | |
std::string | name (size_t fct) const |
returns the name of the discrete function nr_fct More... | |
std::vector< std::string > | names () const |
returns the names of the discrete functions More... | |
size_t | num_dofs (const ReferenceObjectID roid, const int si) const |
returns the number of dofs on a Reference Object on a subset More... | |
size_t | num_fct () const |
number of discrete functions on subset si More... | |
size_t | num_fct (int si) const |
number of discrete functions on subset si More... | |
size_t | num_fct_dofs (const size_t fct, const ReferenceObjectID roid, const int si) const |
returns the number of dofs on a Reference Object on a subset for a function component More... | |
int | num_subsets () const |
returns number of subsets More... | |
size_t | offset (const ReferenceObjectID roid, const int si, const size_t fct) const |
returns the offset for reference element, subset and function More... | |
void | print_local_dof_statistic () const |
prints statistic on local dof distribution More... | |
void | print_local_dof_statistic (int verboseLev) const |
prints informations More... | |
void | set_dof_distribution_info (ConstSmartPtr< DoFDistributionInfo > spDDI) |
sets the dd info More... | |
SubsetGroup | subset_grp_by_name (const char *names) const |
returns subset group by name More... | |
ConstSmartPtr< ISubsetHandler > | subset_handler () const |
returns the subset handler More... | |
int | subset_id_by_name (const char *name) const |
returns the subset id More... | |
std::string | subset_name (int si) const |
returns subset name More... | |
const LFEID & | local_finite_element_id (size_t fct) const |
const LFEID & | lfeid (size_t fct) const |
Protected Member Functions | |
void | create_dof_distribution (const GridLevel &gl) |
creates a dof distribution More... | |
void | dof_distribution_info_required () |
create dof distribution info More... | |
void | grid_changed_callback (const GridMessage_Adaption &msg) |
void | grid_distribution_callback (const GridMessage_Distribution &msg) |
called during parallel redistribution More... | |
void | init (SmartPtr< subset_handler_type > spMGSH, SmartPtr< grid_type > spMG, const AlgebraType &algebraType) |
initializing More... | |
void | register_at_adaption_msg_hub () |
registers at message hub for grid adaption More... | |
void | reinit () |
reinits all data after grid adaption More... | |
void | surface_view_required () |
creates surface SurfaceView if needed More... | |
describes the ansatz spaces on a domain
This class provides grid function spaces on a domain.
The Domain defines a partition of the Grid/Multigrid in terms of subsets. The user can add discrete functions on this subsets or unions of them.
Once finalized, this function pattern is fixed. Internally DoF indices are created. Using this Approximation Space the user can create GridFunctions of the following types:
Type of Subset Handler.
Type of Subset Handler.
ug::IApproximationSpace::IApproximationSpace | ( | SmartPtr< subset_handler_type > | spMGSH, |
SmartPtr< grid_type > | spMG | ||
) |
Constructor.
References boost::get(), and init().
ug::IApproximationSpace::IApproximationSpace | ( | SmartPtr< subset_handler_type > | spMGSH, |
SmartPtr< grid_type > | spMG, | ||
const AlgebraType & | algebraType | ||
) |
Constructor setting the grouping flag.
References init().
ug::IApproximationSpace::~IApproximationSpace | ( | ) |
Destructor.
void ug::IApproximationSpace::add | ( | const char * | name, |
const char * | type | ||
) |
adds function using string to indicate finite element type
References name, and ug::TokenizeTrimString().
void ug::IApproximationSpace::add | ( | const char * | name, |
const char * | type, | ||
const char * | subsets | ||
) |
adds function using string to indicate finite element type
[in] | name | name(s) of single solution (comma separated) |
[in] | type | type of local finite element space |
[in] | subsets | Subsets separated by ',' |
References name, and ug::TokenizeTrimString().
void ug::IApproximationSpace::add | ( | const char * | name, |
const char * | type, | ||
int | order | ||
) |
adds function using string to indicate finite element type
References name, and ug::TokenizeTrimString().
void ug::IApproximationSpace::add | ( | const char * | name, |
const char * | type, | ||
int | order, | ||
const char * | subsets | ||
) |
adds function using string to indicate finite element type
[in] | name | name(s) of single solution (comma separated) |
[in] | type | type of local finite element space |
[in] | order | order of local finite element space |
[in] | subsets | Subsets separated by ',' |
References name, and ug::TokenizeTrimString().
void ug::IApproximationSpace::add | ( | const std::vector< std::string > & | vName, |
const char * | type | ||
) |
adds function using string to indicate finite element type
References ug::ConvertStringToLFEID(), dim, ug::DIM_SUBSET_EMPTY_GRID, ug::DimensionOfSubsets(), and UG_THROW.
void ug::IApproximationSpace::add | ( | const std::vector< std::string > & | vName, |
const char * | type, | ||
const std::vector< std::string > & | vSubsets | ||
) |
adds function using string to indicate finite element type
References ug::ConvertStringToLFEID(), dim, ug::DIM_SUBSET_EMPTY_GRID, ug::SubsetGroup::get_highest_subset_dimension(), and UG_THROW.
void ug::IApproximationSpace::add | ( | const std::vector< std::string > & | vName, |
const char * | type, | ||
int | order | ||
) |
adds function using string to indicate finite element type
References ug::ConvertStringToLFEID(), dim, ug::DIM_SUBSET_EMPTY_GRID, ug::DimensionOfSubsets(), and UG_THROW.
void ug::IApproximationSpace::add | ( | const std::vector< std::string > & | vName, |
const char * | type, | ||
int | order, | ||
const std::vector< std::string > & | vSubsets | ||
) |
adds function using string to indicate finite element type
References ug::ConvertStringToLFEID(), dim, ug::DIM_SUBSET_EMPTY_GRID, ug::SubsetGroup::get_highest_subset_dimension(), and UG_THROW.
|
inline |
add single solutions of LocalShapeFunctionSetID to the entire domain
[in] | name | name(s) of single solution (comma separated) |
[in] | id | Shape Function set id |
References m_spDoFDistributionInfo.
|
inline |
add single solutions of LocalShapeFunctionSetID to selected subsets
[in] | name | name(s) of single solution (comma separated) |
[in] | id | Shape Function set id |
[in] | subsets | Subsets separated by ',' |
References m_spDoFDistributionInfo.
|
inline |
clears functions
References m_spDoFDistributionInfo.
|
protected |
creates a dof distribution
References ug::GridLevel::ghosts(), ug::GridLevel::is_level(), and ug::SortDD().
SmartPtr< DoFDistribution > ug::IApproximationSpace::dd | ( | const GridLevel & | gl, |
bool | bCreate = true |
||
) |
returns dof distribution for a grid level
ConstSmartPtr< DoFDistribution > ug::IApproximationSpace::dd | ( | const GridLevel & | gl, |
bool | bCreate = true |
||
) | const |
returns dof distribution for a grid level
|
inline |
returns dof distribution info
References m_spDoFDistributionInfo.
Referenced by dof_distribution_info().
SmartPtr< DoFDistribution > ug::IApproximationSpace::dof_distribution | ( | const GridLevel & | gl, |
bool | bCreate = true |
||
) |
returns dof distribution for a grid level
References UG_THROW.
ConstSmartPtr< DoFDistribution > ug::IApproximationSpace::dof_distribution | ( | const GridLevel & | gl, |
bool | bCreate = true |
||
) | const |
returns dof distribution for a grid level
|
inline |
returns dof distribution info
References ddinfo().
|
protected |
create dof distribution info
References ug::NUM_REFERENCE_OBJECTS, and UG_THROW.
std::vector< SmartPtr< DoFDistribution > > ug::IApproximationSpace::dof_distributions | ( | ) | const |
returns all currently created dof distributions
Referenced by ug::OrderCuthillMcKee(), ug::OrderDownwind(), and ug::OrderLex().
|
protected |
this callback is called by the message hub, when a grid change has been performed. It will call all necessary actions in order to keep the grid correct for computations.
References ug::GridMessage_Adaption::adaption_begins(), ug::GridMessage_Adaption::adaption_ends(), pcl::ProcRank(), ug::SaveParallelGridLayout(), ug::SaveSurfaceViewTransformed(), UG_LOG, and UG_THROW.
Referenced by register_at_adaption_msg_hub().
|
protected |
called during parallel redistribution
References ug::GMDT_DISTRIBUTION_STARTS, ug::GMDT_DISTRIBUTION_STOPS, ug::GridMessage_Distribution::msg(), pcl::ProcRank(), PROFILE_FUNC, ug::SaveParallelGridLayout(), ug::SaveSurfaceViewTransformed(), and UG_LOG.
Referenced by register_at_adaption_msg_hub().
|
inline |
returns if dofs are grouped
References m_bGrouped.
|
protected |
initializing
References UG_THROW.
void ug::IApproximationSpace::init_levels | ( | ) |
initializes all level dof distributions
References PROFILE_FUNC.
void ug::IApproximationSpace::init_surfaces | ( | ) |
initializes all surface dof distributions
References PROFILE_FUNC.
void ug::IApproximationSpace::init_top_surface | ( | ) |
initializes all top surface dof distributions
References PROFILE_FUNC.
bool ug::IApproximationSpace::might_contain_ghosts | ( | ) | const |
returns if ghosts might be present on any level
bool ug::IApproximationSpace::might_contain_ghosts | ( | int | lvl | ) | const |
returns if ghosts might be present on a level
References ug::EDGE, ug::FACE, ug::DistributedGridManager::grid_layout_map(), UG_THROW, ug::VERTEX, and ug::VOLUME.
|
inline |
returns the number of level
References m_spMGSH.
void ug::IApproximationSpace::print_layout_statistic | ( | ) | const |
prints statistic on layouts
References ug::LogAssistant::get_output_process(), ug::GetLogAssistant(), ug::NumIndices(), pcl::NumProcs(), ug::repeat(), and UG_LOG.
void ug::IApproximationSpace::print_statistic | ( | ) | const |
prints statistic about DoF Distribution
void ug::IApproximationSpace::print_statistic | ( | std::string | flags | ) | const |
prints statistic about DoF Distribution
References boost::get(), ug::GetLogAssistant(), pcl::NumProcs(), ug::PrintDoFCount(), pcl::ProcRank(), PROFILE_BEGIN, PROFILE_END, PROFILE_FUNC, ug::repeat(), ug::ToLower(), and UG_LOG.
|
protected |
registers at message hub for grid adaption
References grid_changed_callback(), and grid_distribution_callback().
|
protected |
reinits all data after grid adaption
References PROFILE_FUNC.
|
inline |
returns the current revision
References m_RevCnt.
|
inline |
get underlying subset handler
References m_spMGSH.
|
inline |
returns the approximation space
References m_spSurfaceView.
|
protected |
creates surface SurfaceView if needed
|
protected |
suitable algebra type for the index distribution pattern
|
protected |
|
protected |
flag if DoFs should be grouped
Referenced by grouped().
|
protected |
revision counter
Referenced by revision().
|
protected |
|
protected |
Index Storage for Level (ghost / noghost)
|
protected |
Index Storage for Level (ghost / noghost)
|
protected |
message hub id
|
protected |
|
protected |
subsethandler, where elements are stored
Referenced by ug::ApproximationSpace< TDomain >::ApproximationSpace(), num_levels(), and subset_handler().
|
protected |
Surface View.
Referenced by surface_view().
|
protected |
MG Level DoF Distribution.