36#ifndef __H__UG__PLUGINS__LEVEL_SET__LS_VOLUME_H__
37#define __H__UG__PLUGINS__LEVEL_SET__LS_VOLUME_H__
54template <
typename TGr
idFunc>
75 static const int dim = domain_type::dim;
124 const char * ss_names,
135 const char * ss_names
138 number vol_plus, vol_minus;
149 const char * ss_names
152 number vol_plus, vol_minus;
163 template <
typename TElem>
181 m_pThis->template add_volumes_of_all<TElem> ();
186 template <
typename TElem>
244template <
typename TRefElem,
int WDim>
250 static const int dim = WDim;
267 UG_THROW (
"LSElementSize: Generic version not implemented");
282 static const int dim = WDim;
310 static const int dim = WDim;
338 static const int dim = WDim;
366 static const int dim = WDim;
ReferenceEdge ref_element_type
type of the reference element
Definition ls_volume.h:281
ReferencePrism ref_element_type
type of the reference element
Definition ls_volume.h:365
ReferenceTetrahedron ref_element_type
type of the reference element
Definition ls_volume.h:337
ReferenceTriangle ref_element_type
type of the reference element
Definition ls_volume.h:309
Definition ls_volume.h:246
static const int dim
dimension of the world
Definition ls_volume.h:250
static int compute(const MathVector< WDim > *corner, const number *lsf, number &vol_plus, number &vol_minus)
computation of the volumes
Definition ls_volume.h:260
TRefElem ref_element_type
type of the reference element
Definition ls_volume.h:249
Definition ls_volume.h:56
grid_func_type::algebra_type algebra_type
algebra type
Definition ls_volume.h:69
std::vector< number > m_ss_vol_plus
volume in the 'positive' subsets
Definition ls_volume.h:230
number m_volume_minus
computed volume in the "negative part" of the domain
Definition ls_volume.h:228
void on_subsets(const char *ss_names)
sets the subsets to restrict the computation on
Definition ls_volume_impl.h:53
number volume_minus_in_subsets(const char *ss_names) const
returns the volume in the negative part of subsets
Definition ls_volume.h:148
void check_positivity(bool v)
set the check-positivity flag
Definition ls_volume.h:96
LSVolume< TGridFunc > this_type
'this' type
Definition ls_volume.h:60
number volume_plus() const
returns the volume in the positive part
Definition ls_volume.h:130
void allreduce_volumes()
Definition ls_volume_impl.h:277
SubsetGroup m_ssGrp
the subset group (if subsets specified)
Definition ls_volume.h:225
SmartPtr< TGridFunc > m_spLSF
the specified LSF
Definition ls_volume.h:223
void compute()
computes the volumes
Definition ls_volume_impl.h:65
void print_details() const
prints the details
Definition ls_volume_impl.h:319
number m_volume_plus
computed volume in the "positive part" of the domain
Definition ls_volume.h:227
bool m_check_positivity
if to check the positivity of the volumes in the elements
Definition ls_volume.h:233
void add_volumes_of_all()
adds contributions of all elements of a given type
Definition ls_volume_impl.h:114
domain_type::position_accessor_type position_accessor_type
type of the position accessor
Definition ls_volume.h:72
number volume_plus_in_subsets(const char *ss_names) const
returns the volume in the positive part of subsets
Definition ls_volume.h:134
number volume_minus() const
returns the volume of the negative part
Definition ls_volume.h:144
void compute(SmartPtr< UserData< number, dim > > spDensity)
computes the weights (weighted volumes) without the time argument
Definition ls_volume.h:110
grid_func_type::domain_type domain_type
domain type
Definition ls_volume.h:66
TGridFunc grid_func_type
grid function type
Definition ls_volume.h:63
void volume_in_subsets(const char *ss_names, number &vol_plus, number &vol_minus) const
extracts the volumes enclosed in given subsets
Definition ls_volume_impl.h:297
LSVolume(SmartPtr< grid_func_type > spLSF)
class constructor
Definition ls_volume.h:81
static const int dim
world dimension
Definition ls_volume.h:75
std::vector< number > m_ss_vol_minus
volume in the 'negative' subsets
Definition ls_volume.h:231
SmartPtr< T, FreePolicy > make_sp(T *inst)
helper class for the computation of the volumes
Definition ls_volume.h:168
AddVolumes(this_type *pThis)
constructor
Definition ls_volume.h:173
void operator()(TElem)
computation of the volume for all elements of the given type
Definition ls_volume.h:179
this_type * m_pThis
Definition ls_volume.h:169
helper class for the computation of the weighted volumes
Definition ls_volume.h:195
void operator()(TElem)
computation of the volume for all elements of the given type
Definition ls_volume.h:210
number m_time
Definition ls_volume.h:198
this_type * m_pThis
Definition ls_volume.h:196
UserData< number, dim > * m_pDensity
Definition ls_volume.h:197
AddWeightedVolumes(this_type *pThis, UserData< number, dim > *pDensity, number time)
constructor
Definition ls_volume.h:202