Plugins
Loading...
Searching...
No Matches
ug::d3f::ValSurfProjData< TGridFunction > Class Template Reference

#include <val_surf_proj.h>

+ Inheritance diagram for ug::d3f::ValSurfProjData< TGridFunction >:

Public Types

typedef StdDependentUserData< this_type, number, dimbase_type
 the base type
 
typedef gf_type::domain_type domain_type
 domain type
 
typedef TGridFunction gf_type
 type of the grid function
 
typedef domain_type::position_accessor_type pos_acc_type
 position attachment accessor type
 
typedef ValSurfProjData< gf_typethis_type
 this type
 
- Public Types inherited from ug::CplUserData< typename TData, int dim, typename TRet >
typedef ICplUserData< dim > base_type
 
- Public Types inherited from ug::UserData< typename TData, int dim, typename TRet >
typedef TData data_type
 
typedef TRet return_type
 

Public Member Functions

virtual bool continuous () const
 We consider here the height as a continuous field (although it is not completely so)
 
template<int refDim>
void eval_and_deriv (number vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< refDim > vLocIP[], const size_t nip, LocalVector *u, bool bDeriv, int s, std::vector< std::vector< number > > vvvDeriv[], const MathMatrix< refDim, dim > *vJT=NULL)
 Performs the main computations:
 
void reinit ()
 Initializer (should be called before every use)
 
virtual bool requires_grid_fct () const
 Returns true to get the grid element in the evaluation routine.
 
void set_default_value (number defaultValue)
 sets the default value for the points with no projection
 
 ValSurfProjData (SmartPtr< gf_type > spLSF, const char *cmp, number z_coord, const char *subsets)
 Constructor.
 
- Public Member Functions inherited from ug::StdDependentUserData< ValSurfProjData< TGridFunction >, number, TGridFunction::dim >
virtual void compute (LocalVector *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)
 
virtual void compute (LocalVectorTimeSeries *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)
 
void eval_deriv (LocalVector *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)
 
void eval_deriv (LocalVectorTimeSeries *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)
 
void evaluate (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< refDim > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< refDim, dim > *vJT=NULL) const
 
virtual void operator() (TData &value, const MathVector< dim > &globIP, number time, int si) const
 
virtual void operator() (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, const size_t nip) const
 
 StdDependentUserData ()
 
 StdDependentUserData (const char *symbFct)
 
 StdDependentUserData (const std::string &symbFct)
 
 StdDependentUserData (const std::vector< std::string > &symbFct)
 
- Public Member Functions inherited from ug::StdUserData< StdDependentUserData< TImpl, TData, dim >, TData, dim, void, DependentUserData< TData, dim > >
virtual void operator() (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 1 > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< 1, dim > *vJT=NULL) const
 
virtual void operator() (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 1 > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< 1, dim > *vJT=NULL) const
 
virtual void operator() (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 2 > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< 2, dim > *vJT=NULL) const
 
virtual void operator() (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 2 > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< 2, dim > *vJT=NULL) const
 
virtual void operator() (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 3 > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< 3, dim > *vJT=NULL) const
 
virtual void operator() (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 3 > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< 3, dim > *vJT=NULL) const
 
- Public Member Functions inherited from ug::CplUserData< typename TData, int dim, typename TRet >
bool defined (size_t s, size_t ip) const
 
size_t num_ip (size_t s) const
 
size_t num_series () const
 
void register_storage_callback (DataImport< TData, dim > *obj, void(DataImport< TData, dim >::*func)())
 
void unregister_storage_callback (DataImport< TData, dim > *obj)
 
TData & value (size_t s, size_t ip)
 
const TData & value (size_t s, size_t ip) const
 
TData * values (size_t s)
 
const TData * values (size_t s) const
 
 ~CplUserData ()
 
- Public Member Functions inherited from ug::ICplUserData< int dim >
bool at_current_time (size_t s) const
 
virtual void check_setup () const
 
void clear ()
 
virtual bool constant () const
 
int dim_local_ips () const
 
 ICplUserData ()
 
const MathVector< dim > & ip (size_t s, size_t ip) const
 
const MathVector< dim > * ips (size_t s) const
 
const MathVector< ldim > & local_ip (size_t s, size_t ip) const
 
const MathVector< ldim > * local_ips (size_t s) const
 
virtual SmartPtr< ICplUserDataneeded_data (size_t i)
 
size_t num_ip (size_t s) const
 
virtual size_t num_needed_data () const
 
size_t num_series () const
 
virtual void prepare_element (GridObject *e, const MathVector< dim > vCornerCoords[])
 
size_t register_local_ip_series (const MathVector< ldim > *vPos, const size_t numIP, bool bMayChange=true)
 
size_t register_local_ip_series (const MathVector< ldim > *vPos, const size_t numIP, const int timePointSpec, bool bMayChange=true)
 
void set_global_ips (size_t s, const MathVector< dim > *vPos, size_t numIP)
 
void set_local_ips (const size_t seriesId, const MathVector< ldim > *vPos, const size_t numIP)
 
void set_subset (int si)
 
void set_time_point (const size_t seriesId, const int timePointSpec)
 
void set_time_point (size_t timePoint)
 
void set_times (const std::vector< number > &vTime)
 
int subset () const
 
number time () const
 
number time (size_t s) const
 
size_t time_point ()
 
size_t time_point (size_t s) const
 
int time_point_specification (size_t s) const
 
virtual void update_dof_sizes (const LocalIndices &ind)
 
virtual bool zero_derivative () const
 
virtual ~ICplUserData ()
 
- Public Member Functions inherited from ug::UserDataInfo
const FunctionGroupfunction_group () const
 
const FunctionIndexMappingmap () const
 
size_t num_fct () const
 
const char * obj_name ()
 
virtual void set_function_pattern (ConstSmartPtr< FunctionPattern > fctPatt)
 
void set_obj_name (const char *name)
 
virtual ~UserDataInfo ()
 
- Public Member Functions inherited from ug::UserData< typename TData, int dim, typename TRet >
int get_dim () const
 
TRet operator() (TData &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 1 > &locIP, LocalVector *u) const
 
TRet operator() (TData &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 1 > &locIP, LocalVector *u) const
 
TRet operator() (TData &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 2 > &locIP, LocalVector *u) const
 
TRet operator() (TData &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 2 > &locIP, LocalVector *u) const
 
TRet operator() (TData &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 3 > &locIP, LocalVector *u) const
 
TRet operator() (TData &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 3 > &locIP, LocalVector *u) const
 
virtual void operator() (TData &value, const MathVector< dim > &globIP, number time, int si, Vertex *vrt) const
 
std::string type () const
 

Static Public Attributes

static const int dim = gf_type::dim
 world dimension
 

Private Types

typedef GlobalGridFunctionNumberData< TGridFunction > glob_userdata_type
 type of the class for getting the values of a grid function by a global coordinate
 
typedef Attachment< size_t > num_a_type
 type of the attachment numbering the vertices
 
typedef Grid::VertexAttachmentAccessor< num_a_typenum_aa_type
 type of the attachment accessor for the numbering attachment
 

Private Attributes

num_a_type m_a_vrt_num
 attachment keeping a numbering of the vertices in the subsets
 
number m_default_value
 the default value if the projection point not found
 
glob_userdata_type m_glob_userdata
 the object to get the values by the global coordinates
 
SmartPtr< gf_typem_spLSF
 the grid function
 
SubsetGroup m_SsGrp
 (low-dimensional) subsets to compute the coordinates over
 
std::vector< numberm_vrt_val
 projected values at the vertices of the subsets
 
number m_z_coord
 the z-coordinate of the plain to get the values at
 

Additional Inherited Members

- Protected Member Functions inherited from ug::StdDependentUserData< ValSurfProjData< TGridFunction >, number, TGridFunction::dim >
TImpl & getImpl ()
 
const TImpl & getImpl () const
 
- Protected Member Functions inherited from ug::StdUserData< StdDependentUserData< TImpl, TData, dim >, TData, dim, void, DependentUserData< TData, dim > >
TImpl & getImpl ()
 
const TImpl & getImpl () const
 
- Protected Member Functions inherited from ug::CplUserData< typename TData, int dim, typename TRet >
void call_storage_callback () const
 
void check_series (size_t s) const
 
void check_series_ip (size_t s, size_t ip) const
 
virtual void local_ip_series_added (const size_t seriesID)
 
virtual void local_ip_series_to_be_cleared ()
 
virtual void local_ips_changed (const size_t seriesID, const size_t newNumIP)
 
virtual void value_storage_changed (const size_t seriesID)
 
- Protected Member Functions inherited from ug::ICplUserData< int dim >
void check_s (size_t s) const
 
void check_s_ip (size_t s, size_t ip) const
 
std::vector< const MathVector< 1 > * > & get_local_ips (Int2Type< 1 >)
 
const std::vector< const MathVector< 1 > * > & get_local_ips (Int2Type< 1 >) const
 
std::vector< const MathVector< 2 > * > & get_local_ips (Int2Type< 2 >)
 
const std::vector< const MathVector< 2 > * > & get_local_ips (Int2Type< 2 >) const
 
std::vector< const MathVector< 3 > * > & get_local_ips (Int2Type< 3 >)
 
const std::vector< const MathVector< 3 > * > & get_local_ips (Int2Type< 3 >) const
 
virtual void global_ips_changed (const size_t seriesID, const MathVector< dim > *vPos, const size_t numIP)
 
- Protected Attributes inherited from ug::ICplUserData< int dim >
int m_defaultTimePoint
 
int m_locPosDim
 
std::vector< const MathVector< 1 > * > m_pvLocIP1d
 
std::vector< const MathVector< 2 > * > m_pvLocIP2d
 
std::vector< const MathVector< 3 > * > m_pvLocIP3d
 
int m_si
 
size_t m_timePoint
 
std::vector< bool > m_vMayChange
 
std::vector< size_t > m_vNumIP
 
std::vector< numberm_vTime
 
std::vector< int > m_vTimePoint
 
std::vector< const MathVector< dim > * > m_vvGlobPos
 
- Protected Attributes inherited from ug::UserDataInfo
FunctionGroup m_fctGrp
 
FunctionIndexMapping m_map
 
SmartPtr< char > m_objName
 

Detailed Description

template<typename TGridFunction>
class ug::d3f::ValSurfProjData< TGridFunction >

Class for getting the values of a grid function projected from the z-plane.

This class with the user data interface computes the projected value of the grid function at every grid vertex of the given subsets. It can be used for the graphical representation of the values on the z-plane on, e.g., the top surface of the domain. Note that due to the complicated evaluations, it is not recommended to pass all the subsets this computation.

Member Typedef Documentation

◆ base_type

template<typename TGridFunction >
typedef StdDependentUserData<this_type, number, dim> ug::d3f::ValSurfProjData< TGridFunction >::base_type

the base type

◆ domain_type

template<typename TGridFunction >
typedef gf_type::domain_type ug::d3f::ValSurfProjData< TGridFunction >::domain_type

domain type

◆ gf_type

template<typename TGridFunction >
typedef TGridFunction ug::d3f::ValSurfProjData< TGridFunction >::gf_type

type of the grid function

◆ glob_userdata_type

template<typename TGridFunction >
typedef GlobalGridFunctionNumberData<TGridFunction> ug::d3f::ValSurfProjData< TGridFunction >::glob_userdata_type
private

type of the class for getting the values of a grid function by a global coordinate

◆ num_a_type

template<typename TGridFunction >
typedef Attachment<size_t> ug::d3f::ValSurfProjData< TGridFunction >::num_a_type
private

type of the attachment numbering the vertices

◆ num_aa_type

template<typename TGridFunction >
typedef Grid::VertexAttachmentAccessor<num_a_type> ug::d3f::ValSurfProjData< TGridFunction >::num_aa_type
private

type of the attachment accessor for the numbering attachment

◆ pos_acc_type

template<typename TGridFunction >
typedef domain_type::position_accessor_type ug::d3f::ValSurfProjData< TGridFunction >::pos_acc_type

position attachment accessor type

◆ this_type

template<typename TGridFunction >
typedef ValSurfProjData<gf_type> ug::d3f::ValSurfProjData< TGridFunction >::this_type

this type

Constructor & Destructor Documentation

◆ ValSurfProjData()

template<typename TGridFunction >
ug::d3f::ValSurfProjData< TGridFunction >::ValSurfProjData ( SmartPtr< gf_type spLSF,
const char *  cmp,
number  z_coord,
const char *  subsetNames 
)

Constructor.

Class constructor

Parameters
spLSFthe grid function
cmpthe compoment of the function
z_coordthe z-coordinate of the plain to get the values at
subsetNamessubsets where to compute the z-coordinates

References ug::SubsetGroup::add(), ug::d3f::ValSurfProjData< TGridFunction >::m_a_vrt_num, ug::d3f::ValSurfProjData< TGridFunction >::m_SsGrp, ug::SubsetGroup::set_subset_handler(), and ug::TokenizeString().

Member Function Documentation

◆ continuous()

template<typename TGridFunction >
virtual bool ug::d3f::ValSurfProjData< TGridFunction >::continuous ( ) const
inlinevirtual

We consider here the height as a continuous field (although it is not completely so)

Implements ug::UserDataInfo.

◆ eval_and_deriv()

template<typename TGridFunction >
template<int refDim>
void ug::d3f::ValSurfProjData< TGridFunction >::eval_and_deriv ( number  vValue[],
const MathVector< dim vGlobIP[],
number  time,
int  si,
GridObject grid_obj,
const MathVector< dim vCornerCoords[],
const MathVector< refDim >  vLocIP[],
const size_t  nip,
LocalVector u,
bool  bDeriv,
int  s,
std::vector< std::vector< number > >  vvvDeriv[],
const MathMatrix< refDim, dim > *  vJT = NULL 
)

Performs the main computations:

Interpolates the vertex values of the z-coordinates

Parameters
vValuefor the computed value

References ug::LFEID::LAGRANGE, ug::GridObject::reference_object_id(), ug::LocalShapeFunctionSet< int TDim, typename TShape, typename TGrad >::shapes(), UG_ASSERT, and UG_THROW.

◆ reinit()

template<typename TGridFunction >
void ug::d3f::ValSurfProjData< TGridFunction >::reinit ( )

Initializer (should be called before every use)

Initializer: Computes the projected values at the vertices of the specified subset(s)

References pcl::ProcessCommunicator::allgatherv(), pcl::ProcessCommunicator::allreduce(), pcl::ProcessCommunicator::get_local_proc_id(), and PCL_RO_MAX.

◆ requires_grid_fct()

template<typename TGridFunction >
virtual bool ug::d3f::ValSurfProjData< TGridFunction >::requires_grid_fct ( ) const
inlinevirtual

Returns true to get the grid element in the evaluation routine.

Implements ug::UserDataInfo.

◆ set_default_value()

template<typename TGridFunction >
void ug::d3f::ValSurfProjData< TGridFunction >::set_default_value ( number  defaultValue)
inline

sets the default value for the points with no projection

Parameters
defaultValuethe default value for the points with no projection

References ug::d3f::ValSurfProjData< TGridFunction >::m_default_value.

Member Data Documentation

◆ dim

template<typename TGridFunction >
const int ug::d3f::ValSurfProjData< TGridFunction >::dim = gf_type::dim
static

world dimension

◆ m_a_vrt_num

template<typename TGridFunction >
num_a_type ug::d3f::ValSurfProjData< TGridFunction >::m_a_vrt_num
private

attachment keeping a numbering of the vertices in the subsets

Referenced by ug::d3f::ValSurfProjData< TGridFunction >::ValSurfProjData().

◆ m_default_value

template<typename TGridFunction >
number ug::d3f::ValSurfProjData< TGridFunction >::m_default_value
private

the default value if the projection point not found

Referenced by ug::d3f::ValSurfProjData< TGridFunction >::set_default_value().

◆ m_glob_userdata

template<typename TGridFunction >
glob_userdata_type ug::d3f::ValSurfProjData< TGridFunction >::m_glob_userdata
private

the object to get the values by the global coordinates

◆ m_spLSF

template<typename TGridFunction >
SmartPtr<gf_type> ug::d3f::ValSurfProjData< TGridFunction >::m_spLSF
private

the grid function

◆ m_SsGrp

template<typename TGridFunction >
SubsetGroup ug::d3f::ValSurfProjData< TGridFunction >::m_SsGrp
private

(low-dimensional) subsets to compute the coordinates over

Referenced by ug::d3f::ValSurfProjData< TGridFunction >::ValSurfProjData().

◆ m_vrt_val

template<typename TGridFunction >
std::vector<number> ug::d3f::ValSurfProjData< TGridFunction >::m_vrt_val
private

projected values at the vertices of the subsets

◆ m_z_coord

template<typename TGridFunction >
number ug::d3f::ValSurfProjData< TGridFunction >::m_z_coord
private

the z-coordinate of the plain to get the values at


The documentation for this class was generated from the following files: