|
Plugins
|
Level-set extrapolation for the ghost-fluid method based on piecewise linear LS functions. More...
#include <levset_lin_extrapol.h>
Classes | |
| struct | GLData |
| Class for the level-set function on the coarser levels. More... | |
| struct | ICData |
| Class for the specification of the boundary conditions at the interface (for one component/function) More... | |
| struct | SumUpNearIfOuterValues |
| helper class for the loop over all the element types More... | |
Public Types | |
| typedef TAlgebra | algebra_type |
| algebra type for the functions to extrapolate | |
| typedef ApproximationSpace< domain_type > | approx_space_type |
| type of approximation space | |
| typedef TDomain | domain_type |
| domain type | |
| typedef TDomain::grid_type | grid_type |
| grid type for the domain | |
| typedef GridFunction< domain_type, lsf_algebra_type > | ls_grid_func_type |
| grid function type for the LSF | |
| typedef CPUAlgebra | lsf_algebra_type |
| algebra type for the LSF | |
| typedef algebra_type::matrix_type | matrix_type |
| matrix type | |
| typedef domain_type::position_accessor_type | position_accessor_type |
| type of the position attachment accessor | |
| typedef StdInjection< domain_type, lsf_algebra_type > | projection_type |
| type of the projection of the LSF to the coarser grid levels | |
| typedef algebra_type::vector_type | vector_type |
| vector type (for the functions to extrapolate) | |
Public Member Functions | |
| void | check_dd (ConstSmartPtr< DoFDistribution > dd) const |
| checks the dof distribution of the solution | |
| int | check_elem_lsf (size_t n_co, GridObject *pElem, int si, int g_level, bool use_hanging, const MathVector< dim > vCornerCoords[], number time) |
| checks whether the element is intersected by the interface, or what, and prepares the data | |
| void | clear_outer_values (vector_type &d, const DoFDistribution *dd) const |
| sets the values at the outer vertices to 0 | |
| template<typename TElem > | |
| void | clear_outer_vectors (LocalVector &locD, size_t base_co) |
| sets the values of the vector at the non-base vertices to 0 | |
| bool | corner_inside (size_t co) const |
| returns true if the corner is "inside" (use after check_elem_lsf) | |
| template<typename TElem > | |
| void | eliminate_extrapolated (LocalMatrix &locM, LocalVector &locB) |
| eliminates the matrix connections to the vertices behind the interface and the corresponding rhs | |
| template<typename TElem > | |
| void | eliminate_extrapolated (LocalMatrix &locM, LocalVector &locB, size_t base_co) |
| eliminates the matrix connections to the vertices behind the interface and the corresponding rhs | |
| template<typename TElem > | |
| void | eliminate_extrapolated (LocalMatrix &locM, size_t base_co) |
| eliminates the matrix connections to the vertices behind the interface | |
| void | exclude_subsets (SmartPtr< approx_space_type > spApproxSpace, const char *subset_names) |
| excludes a (boundary) subsets from the extrapolation; note that this resets the old excluded subsets | |
| void | extrapolate_by_lsf (size_t num_co, number *u, size_t fct) const |
| extrapolates a component of the solution to the vertices behind the interface (by averaging) | |
| void | extrapolate_by_lsf (size_t num_co, size_t base_co, number *u, size_t fct) const |
| extrapolates a component of the solution to the vertices behind the interface (w.r.t. a base corner) | |
| template<typename TElem > | |
| void | extrapolate_sol_by_lsf (LocalVector &locU, size_t base_co) const |
| extrapolates all the components of the solution to the vertices behind the interface (w.r.t. a base corner) | |
| LevSetGFlinearExtrapolation () | |
| class constructor | |
| number | lsf_at (size_t co) const |
| returns the effective value of the LSF at a corner (use after check_elem_lsf) | |
| void | prepare_interface_bc (SmartPtr< approx_space_type > spApproxSpace) |
| prepares the boundary conditions at the interface: sets all them to Dirichlet-0 | |
| void | project_LSF () |
| projects the values of the LSF to the coarser levels | |
| void | set_Dirichlet_for (SmartPtr< approx_space_type > spApproxSpace, const char *fct_name, number value) |
| adds a Dirichlet BC with a given value | |
| void | set_Dirichlet_for (SmartPtr< approx_space_type > spApproxSpace, const char *fct_name, SmartPtr< CplUserData< number, dim > > func) |
| adds a Dirichlet BC with a given value | |
| void | set_LSF (SmartPtr< ls_grid_func_type > spLSF) |
| set the level-set function and check it | |
| void | set_Neumann0_for (SmartPtr< approx_space_type > spApproxSpace, const char *fct_name) |
| adds a Neumann-0 | |
| void | set_outer_matrices (matrix_type &A, const DoFDistribution *dd) const |
| sets the matrices at outer vertices to identity | |
| void | set_outer_values (vector_type &u, const DoFDistribution *dd, number time) |
| sets the values at the outer vertices to given values | |
Static Public Member Functions | |
| static bool | lsf_inside (number lsf_val) |
| returns true if the given value should correspond to the 'inside' subdomain | |
Static Public Attributes | |
| static const int | dim = domain_type::dim |
| dimensionality (the World dimension) | |
| static constexpr number | small_lsf_value = 1e-8 |
| the threshold for the level-set function | |
Private Types | |
| typedef LevSetGFlinearExtrapolation< TDomain, TAlgebra > | this_type |
Private Member Functions | |
| number | boundary_value (size_t fct) const |
| gets the BC value | |
| bool | corner_excluded (size_t co) const |
| checks if the corner is excluded | |
| template<int refDim> | |
| void | extrapolate_by_lsf_in_ (size_t num_co, number *u, size_t fct) const |
| extrapolates a component of the solution to the vertices behind the interface (by averaging) | |
| template<int refDim> | |
| void | extrapolate_by_lsf_in_ (size_t num_co, size_t base_co, number *u, size_t fct) const |
| extrapolates a component of the solution to the vertices behind the interface (w.r.t. a base corner) | |
| void | prepare_grid_levels () |
| projects the level-set functions to the coarser grid levels | |
| template<typename TElem > | |
| void | sum_up_near_if_outer_values_for_ (vector_type &u, size_t fct, const DoFDistribution *dd, number time, Grid::VertexAttachmentAccessor< ANumber > &aaBC, Grid::VertexAttachmentAccessor< AUInt > &aaNumElem) |
| sets the values at the outer vertices near the interface (for one type of the elements) | |
Private Attributes | |
| bool | m_co_excluded [max_num_corners] |
| if corners are excluded by subsets (only for cut elements) | |
| MathVector< dim > | m_elemCenter |
| center of the element | |
| SubsetGroup | m_excl_ssg |
| subsets to exclude | |
| LocalIndices | m_indLSF |
| indices of the LSF dof's | |
| LocalVector | m_locLSF |
| corner values of the LFS (if initialized) | |
| GridObject * | m_pElem |
| the current grid element | |
| int | m_si |
| subset index of the element | |
| SmartPtr< ls_grid_func_type > | m_spLSF |
| original Level-Set function | |
| number | m_time |
| the physical time from the current initialization | |
| const MathVector< dim > * | m_vCornerCoords |
| array of coordinates of the corners | |
| std::vector< GLData > | m_vGLData |
| data on the grid levels | |
| std::vector< ICData > | m_vICData |
| the boundary conditions at the interface | |
Static Private Attributes | |
| static const size_t | max_num_corners = grid_dim_traits<dim>::MaxNumVerticesOfElem |
| max. number of corners of an grid element | |
Level-set extrapolation for the ghost-fluid method based on piecewise linear LS functions.
This class implements the extrapolation of the vertex-centered solution over the interface given by the zero isoline of a piecewise linear vertex-centered grid function.
| TDomain | domain type |
| TAlgebra | algebra type for the functions to extrapolate |
| typedef TAlgebra ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::algebra_type |
algebra type for the functions to extrapolate
| typedef ApproximationSpace<domain_type> ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::approx_space_type |
type of approximation space
| typedef TDomain ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::domain_type |
domain type
| typedef TDomain::grid_type ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::grid_type |
grid type for the domain
| typedef GridFunction<domain_type, lsf_algebra_type> ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::ls_grid_func_type |
grid function type for the LSF
| typedef CPUAlgebra ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::lsf_algebra_type |
algebra type for the LSF
| typedef algebra_type::matrix_type ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::matrix_type |
matrix type
| typedef domain_type::position_accessor_type ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::position_accessor_type |
type of the position attachment accessor
| typedef StdInjection<domain_type, lsf_algebra_type> ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::projection_type |
type of the projection of the LSF to the coarser grid levels
|
private |
| typedef algebra_type::vector_type ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::vector_type |
vector type (for the functions to extrapolate)
|
inline |
class constructor
References SPNULL.
|
private |
gets the BC value
Gets the boundary condition value at the embedded interface.
| fct | the function |
References ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::ICData::func, SmartPtr< typename T, template< class TT > class FreePolicy >::invalid(), and ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::ICData::value.
|
inline |
checks the dof distribution of the solution
| dd | the dof distribution to check |
References ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::dim, ug::LFEID::LAGRANGE, ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::m_spLSF, ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::m_vICData, and UG_THROW.
| int ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::check_elem_lsf | ( | size_t | n_co, |
| GridObject * | pElem, | ||
| int | si, | ||
| int | g_level, | ||
| bool | use_hanging, | ||
| const MathVector< dim > | vCornerCoords[], | ||
| number | time | ||
| ) |
checks whether the element is intersected by the interface, or what, and prepares the data
Gets the level-set function at corners of an element and corrects it to avoid small "inside" values. The function returns a positive value if the level-set function is not specified or the element is completely 'inside'. If the element is intersected by the interface, the function returns 0. If the element is completely outside, the function returns a negative value.
| n_co | number of the corners of the element |
| pElem | the element to process |
| si | subset of the element |
| g_level | grid level of the element |
| use_hanging | if there can be hanging nodes |
| vCornerCoords | coordinates of the corners of the element |
| time | the phisical time |
References ug::GetLocalVector(), UG_ASSERT, and UG_THROW.
| void ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::clear_outer_values | ( | vector_type & | d, |
| const DoFDistribution * | dd | ||
| ) | const |
sets the values at the outer vertices to 0
Sets all vertex dofs at outer vertices to 0.
| d | the vector where to set |
| dd | dof distribution of the grid function to reset |
References ug::BlockRef(), ug::DoFDistribution::grid_level(), ug::DoFDistribution::inner_algebra_indices(), ug::GridLevel::level(), ug::DoFDistribution::multi_grid(), ug::GridLevel::TOP, and UG_THROW.
| void ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::clear_outer_vectors | ( | LocalVector & | locD, |
| size_t | base_co | ||
| ) |
sets the values of the vector at the non-base vertices to 0
Sets the values of the vector at the non-base vertices to 0.
| locD | the local defect/rhs to postprocess |
| base_co | the base corner of the element |
References ug::LocalVector::num_all_fct(), and ug::LocalVector::value().
|
inlineprivate |
checks if the corner is excluded
| co | the corner |
References ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::m_co_excluded.
|
inline |
returns true if the corner is "inside" (use after check_elem_lsf)
| co | the corner |
References ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::lsf_inside(), ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::m_locLSF, and ug::LocalVector::value().
| void ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::eliminate_extrapolated | ( | LocalMatrix & | locM, |
| LocalVector & | locB | ||
| ) |
eliminates the matrix connections to the vertices behind the interface and the corresponding rhs
Eliminates the matrix connections to the vertices behind the interface and corrects the right-hand side. After that, this function sets to 0 all the rows of the local matrix and all the entries of the local defect at the outer corners.
REMARK: This function should be used for linear problems only!
| locM | the local matrix to postprocess |
| locB | the local right-hand side to postprocess |
References ug::LevelSet::ScaledLSFGrad< WDim, TElem >::compute(), ug::LocalMatrix::num_all_col_fct(), ug::LocalMatrix::num_all_row_fct(), ug::LocalVector::value(), ug::LocalMatrix::value(), ug::VecDot(), and ug::VecSubtract().
| void ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::eliminate_extrapolated | ( | LocalMatrix & | locM, |
| LocalVector & | locB, | ||
| size_t | base_co | ||
| ) |
eliminates the matrix connections to the vertices behind the interface and the corresponding rhs
Eliminates the matrix connections to the vertices behind the interface and corrects the right-hand side. After that, this function sets to 0 all the rows of the local matrix and all the entries of the local defect at the base corner.
| locM | the local matrix to postprocess |
| locB | the local right-hand side to postprocess |
| base_co | the base corner of the element |
References ug::LevelSet::ScaledLSFGrad< WDim, TElem >::compute(), ug::LocalMatrix::num_all_col_fct(), ug::LocalMatrix::num_all_row_fct(), ug::LocalVector::value(), ug::LocalMatrix::value(), ug::VecDot(), and ug::VecSubtract().
| void ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::eliminate_extrapolated | ( | LocalMatrix & | locM, |
| size_t | base_co | ||
| ) |
eliminates the matrix connections to the vertices behind the interface
Eliminates the matrix connections to the vertices behind the interface. After that, this function sets to 0 all the rows of the local matrix except that for the base corner.
| locM | the local matrix to postprocess |
| base_co | the base corner of the element |
References ug::LevelSet::ScaledLSFGrad< WDim, TElem >::compute(), ug::LocalMatrix::num_all_col_fct(), ug::LocalMatrix::num_all_row_fct(), ug::LocalMatrix::value(), ug::VecDot(), and ug::VecSubtract().
|
inline |
excludes a (boundary) subsets from the extrapolation; note that this resets the old excluded subsets
| spApproxSpace | the approximation space of the domain discretization |
| subset_names | names of the subsets to exclude |
References ug::SubsetGroup::add(), ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::m_excl_ssg, ug::SubsetGroup::set_subset_handler(), and ug::TokenizeTrimString().
| void ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::extrapolate_by_lsf | ( | size_t | num_co, |
| number * | u, | ||
| size_t | fct | ||
| ) | const |
extrapolates a component of the solution to the vertices behind the interface (by averaging)
Extrapolates a component of the solution to the vertices behind the interface by averaging.
This function extrapolates every 'outer' nodal values by the average of the extrapolations from the 'inner' nodes
| num_co | number of the corners |
| u | nodal values to extrapolate |
| fct | index of the function (to identify to type of the extrapolation) |
References ug::ReferenceElement::dimension(), ug::ReferenceElementProvider::get(), and UG_THROW.
| void ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::extrapolate_by_lsf | ( | size_t | num_co, |
| size_t | base_co, | ||
| number * | u, | ||
| size_t | fct | ||
| ) | const |
extrapolates a component of the solution to the vertices behind the interface (w.r.t. a base corner)
Extrapolates a component of the solution to the vertices behind the interface w.r.t. a base corner.
This function extrapolates all the 'outer' nodal values of one component using the value at the given base corner.
| num_co | number of the corners |
| base_co | the base corner of the element |
| u | nodal values to extrapolate |
| fct | index of the function (to identify to type of the extrapolation) |
References ug::ReferenceElement::dimension(), ug::ReferenceElementProvider::get(), and UG_THROW.
|
private |
extrapolates a component of the solution to the vertices behind the interface (by averaging)
Extrapolates a component of the solution to the vertices behind the interface by averaging.
This function extrapolates every 'outer' nodal values by the average of the extrapolations from the 'inner' nodes
| num_co | number of the corners |
| u | nodal values to extrapolate |
| fct | index of the function (to identify to type of the extrapolation) |
References ug::LevelSet::DimScaledLSFGrad< WDim, RDim >::compute(), UG_ASSERT, UG_THROW, ug::VecDot(), and ug::VecSubtract().
|
private |
extrapolates a component of the solution to the vertices behind the interface (w.r.t. a base corner)
Extrapolates a component of the solution to the vertices behind the interface w.r.t. a base corner.
This function extrapolates all the 'outer' nodal values of one component using the value at the given base corner.
| num_co | number of the corners |
| base_co | the base corner of the element |
| u | nodal values to extrapolate |
| fct | index of the function (to identify to type of the extrapolation) |
References ug::LevelSet::DimScaledLSFGrad< WDim, RDim >::compute(), UG_THROW, ug::VecDot(), and ug::VecSubtract().
| void ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::extrapolate_sol_by_lsf | ( | LocalVector & | locU, |
| size_t | base_co | ||
| ) | const |
extrapolates all the components of the solution to the vertices behind the interface (w.r.t. a base corner)
Extrapolates all the components of the solution to the vertices behind the interface.
This function extrapolates all the 'outer' nodal values using the value at the given base corner.
| locU | the solution to extrapolate |
| base_co | the base corner of the element |
References ug::LevelSet::ScaledLSFGrad< WDim, TElem >::compute(), ug::LocalVector::num_all_dof(), ug::LocalVector::num_all_fct(), UG_THROW, ug::LocalVector::value(), ug::VecDot(), and ug::VecSubtract().
|
inline |
returns the effective value of the LSF at a corner (use after check_elem_lsf)
| co | the corner |
References ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::m_locLSF, and ug::LocalVector::value().
|
inlinestatic |
returns true if the given value should correspond to the 'inside' subdomain
Note that this function is used only to determine whether a vertex is inside the actual domain. It introduces a threshold that should exclude machine zero in denominators in the extrapolation and the elimination in the Ghost-Fluid method. In the extrapolation and the elimination themselves, no threshold is used, and the interface corresponds to the zero isoline of the LSF.
| lsf_val | value of the level-set function |
References ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::small_lsf_value.
Referenced by ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::corner_inside().
|
private |
projects the level-set functions to the coarser grid levels
Prepares the grid functions (as data structures - not values) and the restriction operators (canonical injections) on grid levels.
References SPNULL, ug::GridLevel::TOP, and UG_ASSERT.
Referenced by ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::set_LSF().
|
inline |
prepares the boundary conditions at the interface: sets all them to Dirichlet-0
| spApproxSpace | the approximation space of the domain discretization |
References ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::m_vICData, and SPNULL.
Referenced by ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::set_Dirichlet_for(), ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::set_Dirichlet_for(), and ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::set_Neumann0_for().
| void ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::project_LSF | ( | ) |
projects the values of the LSF to the coarser levels
Projects the level-set function to the coarser grid levels
|
inline |
adds a Dirichlet BC with a given value
| spApproxSpace | the approximation space of the domain discretization |
| fct_name | function to impose the condition for |
| value | the Dirichlet value |
References ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::m_vICData, ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::prepare_interface_bc(), and SPNULL.
|
inline |
adds a Dirichlet BC with a given value
| spApproxSpace | the approximation space of the domain discretization |
| fct_name | function to impose the condition for |
| func | the Dirichlet function |
References ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::m_vICData, and ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::prepare_interface_bc().
|
inline |
set the level-set function and check it
| spLSF | the function to set |
References ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::dim, ug::LFEID::LAGRANGE, ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::m_spLSF, ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::prepare_grid_levels(), UG_THROW, and SmartPtr< typename T, template< class TT > class FreePolicy >::valid().
|
inline |
adds a Neumann-0
| spApproxSpace | the approximation space of the domain discretization |
| fct_name | function to impose the condition for |
References ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::m_vICData, ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::prepare_interface_bc(), and SPNULL.
| void ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::set_outer_matrices | ( | matrix_type & | A, |
| const DoFDistribution * | dd | ||
| ) | const |
sets the matrices at outer vertices to identity
Sets all matrices at outer vertices to identity.
| A | the vector where to set |
| dd | dof distribution of the grid function to reset |
References ug::BlockRef(), ug::DoFDistribution::grid_level(), ug::DoFDistribution::inner_algebra_indices(), ug::GridLevel::level(), ug::DoFDistribution::multi_grid(), ug::SetDirichletRow(), ug::GridLevel::TOP, and UG_THROW.
| void ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::set_outer_values | ( | vector_type & | u, |
| const DoFDistribution * | dd, | ||
| number | time | ||
| ) |
sets the values at the outer vertices to given values
Sets all vertex dofs at outer vertices to given values.
| u | the vector where to set |
| dd | dof distribution of the grid function to reset |
| time | the physical time |
References ug::BlockRef(), ug::DoFRef(), grid(), ug::DoFDistribution::grid_level(), ug::DoFDistribution::inner_dof_indices(), ug::DoFDistributionInfoProvider::is_def_in_subset(), ug::GridLevel::level(), ug::DoFDistribution::multi_grid(), ug::DoFDistributionInfoProvider::num_fct(), ug::DoFDistributionInfoProvider::num_subsets(), PCL_RO_SUM, ug::GridLevel::TOP, and UG_THROW.
|
private |
sets the values at the outer vertices near the interface (for one type of the elements)
Sets the values at the outer vertices near the interface (for one type of the elements).
| u | the vector where to set |
| fct | the function index to process |
| dd | dof distribution of the grid function to reset |
| time | the physical time |
| aaBC | attachment accessor for the bc values |
| aaNumElem | attachment accessor for number of visits |
References ug::DoFRef(), ug::DoFDistribution::grid_level(), ug::DoFDistribution::inner_dof_indices(), ug::GridLevel::level(), ug::DoFDistribution::multi_grid(), ug::DoFDistributionInfoProvider::num_subsets(), ug::GridLevel::TOP, and UG_THROW.
|
static |
dimensionality (the World dimension)
Referenced by ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::check_dd(), and ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::set_LSF().
|
private |
if corners are excluded by subsets (only for cut elements)
Referenced by ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::corner_excluded().
|
private |
center of the element
|
private |
subsets to exclude
Referenced by ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::exclude_subsets().
|
private |
indices of the LSF dof's
|
private |
corner values of the LFS (if initialized)
Referenced by ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::corner_inside(), and ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::lsf_at().
|
private |
the current grid element
|
private |
subset index of the element
|
private |
original Level-Set function
Referenced by ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::check_dd(), and ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::set_LSF().
|
private |
the physical time from the current initialization
|
private |
array of coordinates of the corners
|
private |
data on the grid levels
|
private |
the boundary conditions at the interface
Referenced by ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::check_dd(), ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::prepare_interface_bc(), ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::set_Dirichlet_for(), ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::set_Dirichlet_for(), and ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::set_Neumann0_for().
|
staticprivate |
max. number of corners of an grid element
|
staticconstexpr |
the threshold for the level-set function
Referenced by ug::LevelSet::LevSetGFlinearExtrapolation< TDomain, TAlgebra >::lsf_inside().