Loading [MathJax]/extensions/tex2jax.js
ug4
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ug::IDWUserData< WDim, TData > Class Template Reference

UserData interface for the IDW interpolation. More...

#include <invdist_user_data.h>

+ Inheritance diagram for ug::IDWUserData< WDim, TData >:

Classes

struct  data_item
 type of a interpolation point data item More...
 

Public Types

typedef TData data_type
 type of the data to extrapolate
 
- Public Types inherited from ug::CplUserData< TData, dim, TRet >
typedef ICplUserData< dim > base_type
 type of base class
 
- Public Types inherited from ug::UserData< TData, dim, TRet >
typedef TData data_type
 
typedef TRet return_type
 

Public Member Functions

void append (const MathVector< dim > &x, const data_type &val)
 appends an interpolation point to the list
 
void clear ()
 deletes all the interpolation points from the list
 
void evaluate (data_type &value, const MathVector< dim > &x, number time, int si) const
 evaluates the data at a given point
 
 IDWUserData ()
 class constructor that creates an empty object with default parameters
 
 IDWUserData (number order, number R)
 class constructor that creates an empty object with given parameters
 
void load_data_from (const char *file_name)
 loads data from a given file (and appends the loaded points to the current list)
 
void load_data_from (std::istream &in)
 loads data from a given stream (and appends the loaded points to the current list)
 
void set_order (number order)
 sets the order of the interpolation
 
void set_radius (number R)
 sets the radius of the neighbourhood where the interpolation points are taken from
 
 ~IDWUserData ()
 virtual destructor
 
- Public Member Functions inherited from ug::StdGlobPosData< TImpl, TData, dim, TRet >
virtual void compute (LocalVector *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)
 implement as a UserData
 
virtual void compute (LocalVectorTimeSeries *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)
 implement as a UserData
 
virtual bool constant () const
 returns if data is constant
 
virtual bool continuous () const
 returns if provided data is continuous over geometric object boundaries
 
template<int refDim>
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 TRet operator() (TData &value, const MathVector< dim > &globIP, number time, int si) const
 returns value for a global position
 
virtual void operator() (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, const size_t nip) const
 returns value for global positions
 
virtual bool requires_grid_fct () const
 returns if grid function is needed for evaluation
 
- Public Member Functions inherited from ug::StdUserData< TImpl, TData, dim, TRet, TBase >
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< 3 > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< 3, dim > *vJT=NULL) const
 
- Public Member Functions inherited from ug::CplUserData< TData, dim, TRet >
bool defined (size_t s, size_t ip) const
 returns flag, if data is evaluated (for conditional data)
 
size_t num_ip (size_t s) const
 returns the number of integration points
 
size_t num_series () const
 explicitly forward some functions
 
void register_storage_callback (DataImport< TData, dim > *obj, void(DataImport< TData, dim >::*func)())
 register external callback, invoked when data storage changed
 
void unregister_storage_callback (DataImport< TData, dim > *obj)
 register all callbacks registered by class
 
TData & value (size_t s, size_t ip)
 returns the value at ip
 
const TData & value (size_t s, size_t ip) const
 returns the value at ip
 
TData * values (size_t s)
 returns all values for a series
 
const TData * values (size_t s) const
 returns all values for a series
 
 ~CplUserData ()
 destructor
 
- Public Member Functions inherited from ug::ICplUserData< dim >
bool at_current_time (size_t s) const
 returns true iff the time point specification is equal to the current one, or not specified
 
virtual void check_setup () const
 returns if the dependent data is ready for evaluation
 
void clear ()
 clear all data
 
int dim_local_ips () const
 returns current local ip dimension
 
 ICplUserData ()
 default constructor
 
const MathVector< dim > & ip (size_t s, size_t ip) const
 returns global ip
 
const MathVector< dim > * ips (size_t s) const
 returns global ips
 
template<int ldim>
const MathVector< ldim > & local_ip (size_t s, size_t ip) const
 returns local ip
 
template<int ldim>
const MathVector< ldim > * local_ips (size_t s) const
 returns local ips
 
virtual SmartPtr< ICplUserDataneeded_data (size_t i)
 return needed data
 
size_t num_ip (size_t s) const
 returns the number of integration points
 
virtual size_t num_needed_data () const
 number of other Data this data depends on
 
size_t num_series () const
 returns the number of ip series
 
template<int ldim>
size_t register_local_ip_series (const MathVector< ldim > *vPos, const size_t numIP, bool bMayChange=true)
 set local positions without the specification of the time point, returns series id
 
template<int ldim>
size_t register_local_ip_series (const MathVector< ldim > *vPos, const size_t numIP, const int timePointSpec, bool bMayChange=true)
 set local positions, returns series id
 
void set_global_ips (size_t s, const MathVector< dim > *vPos, size_t numIP)
 set global positions
 
template<int ldim>
void set_local_ips (const size_t seriesId, const MathVector< ldim > *vPos, const size_t numIP)
 sets new local ip positions for a local ip series
 
void set_subset (int si)
 set the subset of evaluation
 
void set_time_point (const size_t seriesId, const int timePointSpec)
 sets a new time point for a local ip series
 
void set_time_point (size_t timePoint)
 sets the current time point
 
void set_times (const std::vector< number > &vTime)
 set evaluation time
 
int subset () const
 returns the subset of evaluation
 
number time () const
 get the current evaluation time
 
number time (size_t s) const
 get the specified evaluation time
 
size_t time_point ()
 returns the current time point
 
size_t time_point (size_t s) const
 returns the time point specification (in particular, the current one, if the own one not specified)
 
int time_point_specification (size_t s) const
 returns the time point specification (note: it may be -1, i.e. not specified)
 
virtual void update_dof_sizes (const LocalIndices &ind)
 resize arrays
 
virtual bool zero_derivative () const
 returns if data depends on solution
 
virtual ~ICplUserData ()
 virtual desctructor
 
- Public Member Functions inherited from ug::UserDataInfo
const FunctionGroupfunction_group () const
 Function Group of functions.
 
const FunctionIndexMappingmap () const
 get function mapping
 
size_t num_fct () const
 number of functions this export depends on
 
const char * obj_name ()
 gets the name of the object (s. the field m_objName)
 
virtual void set_function_pattern (ConstSmartPtr< FunctionPattern > fctPatt)
 sets the function pattern for a possibly needed grid function
 
void set_obj_name (const char *name)
 sets the name of the object (s. the field m_objName)
 
virtual ~UserDataInfo ()
 virtual destructor
 
- Public Member Functions inherited from ug::UserData< TData, dim, TRet >
int get_dim () const
 returns dimension
 
virtual void operator() (TData &value, const MathVector< dim > &globIP, number time, int si, Vertex *vrt) const
 returns a value at a vertex
 
std::string type () const
 returns type of data as string (e.g. "Number", "Vector", "Matrix")
 
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< 3 > &locIP, LocalVector *u) const
 

Static Public Attributes

static const int dim = WDim
 dimensionality of the space (i.e. of the coordinate vectors)
 

Private Attributes

std::vector< data_itemm_data
 interpolation points
 
number m_order
 order of the interpolation
 
number m_R
 radius of the neighbourhood to look for the interpolation points in (0 == infinite)
 

Additional Inherited Members

- Protected Member Functions inherited from ug::StdGlobPosData< TImpl, TData, dim, TRet >
TImpl & getImpl ()
 access to implementation
 
const TImpl & getImpl () const
 const access to implementation
 
- Protected Member Functions inherited from ug::StdUserData< TImpl, TData, dim, TRet, TBase >
TImpl & getImpl ()
 access to implementation
 
const TImpl & getImpl () const
 const access to implementation
 
- Protected Member Functions inherited from ug::CplUserData< TData, dim, TRet >
void call_storage_callback () const
 calls are registered external storage callbacks
 
void check_series (size_t s) const
 checks in debug mode the correct index
 
void check_series_ip (size_t s, size_t ip) const
 checks in debug mode the correct index
 
virtual void local_ip_series_added (const size_t seriesID)
 resizes the data field, when local ip changed signaled
 
virtual void local_ip_series_to_be_cleared ()
 free the data field memory and set series to zero
 
virtual void local_ips_changed (const size_t seriesID, const size_t newNumIP)
 implement callback, called when local IPs changed
 
virtual void value_storage_changed (const size_t seriesID)
 callback, invoked when storage of data has changed for a series
 
- Protected Member Functions inherited from ug::ICplUserData< dim >
void check_s (size_t s) const
 checks in debug mode the correct usage of indices
 
void check_s_ip (size_t s, size_t ip) const
 checks in debug mode the correct usage of indices
 
std::vector< const MathVector< 1 > * > & get_local_ips (Int2Type< 1 >)
 help function to get local ips
 
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)
 callback invoked after global ips have been changed
 
- Protected Attributes inherited from ug::ICplUserData< dim >
int m_defaultTimePoint
 default time point (or -1 if not specified)
 
int m_locPosDim
 dimension of local position (-1 indicates no dim set)
 
std::vector< const MathVector< 1 > * > m_pvLocIP1d
 local ips of dimension 1d-3d
 
std::vector< const MathVector< 2 > * > m_pvLocIP2d
 
std::vector< const MathVector< 3 > * > m_pvLocIP3d
 
int m_si
 subset for evaluation
 
size_t m_timePoint
 current time point (used if no explicit specification for series)
 
std::vector< bool > m_vMayChange
 flags if local ips may change
 
std::vector< size_t > m_vNumIP
 number of evaluation points (-1 indicates no ips set)
 
std::vector< numberm_vTime
 time for evaluation
 
std::vector< int > m_vTimePoint
 time points for the series
 
std::vector< const MathVector< dim > * > m_vvGlobPos
 global ips
 
- Protected Attributes inherited from ug::UserDataInfo
FunctionGroup m_fctGrp
 functions the data depends on
 
FunctionIndexMapping m_map
 Mapping for import fct.
 
SmartPtr< char > m_objName
 This field is used mainly for debugging: One can assign a name to the object to identify it when running.
 

Detailed Description

template<int WDim, typename TData = number>
class ug::IDWUserData< WDim, TData >

UserData interface for the IDW interpolation.

This class implements the UserData interface for the inverse-distance-weighting interpolation.

See also
IDWInterpolation

Setting the radius to 0 means the unconstrained version of the IDW interpolation.

Template Parameters
WDimdimensionality of the geometric space (the world dimension)
TDatatype of the data to interpolate

Member Typedef Documentation

◆ data_type

template<int WDim, typename TData = number>
typedef TData ug::IDWUserData< WDim, TData >::data_type

type of the data to extrapolate

Constructor & Destructor Documentation

◆ IDWUserData() [1/2]

template<int WDim, typename TData = number>
ug::IDWUserData< WDim, TData >::IDWUserData ( )
inline

class constructor that creates an empty object with default parameters

◆ IDWUserData() [2/2]

template<int WDim, typename TData = number>
ug::IDWUserData< WDim, TData >::IDWUserData ( number  order,
number  R 
)
inline

class constructor that creates an empty object with given parameters

◆ ~IDWUserData()

template<int WDim, typename TData = number>
ug::IDWUserData< WDim, TData >::~IDWUserData ( )
inline

virtual destructor

Member Function Documentation

◆ append()

template<int WDim, typename TData = number>
void ug::IDWUserData< WDim, TData >::append ( const MathVector< dim > &  x,
const data_type val 
)
inline

appends an interpolation point to the list

References ug::IDWUserData< WDim, TData >::m_data.

◆ clear()

template<int WDim, typename TData = number>
void ug::IDWUserData< WDim, TData >::clear ( )
inline

deletes all the interpolation points from the list

References ug::IDWUserData< WDim, TData >::m_data.

◆ evaluate()

template<int WDim, typename TData = number>
void ug::IDWUserData< WDim, TData >::evaluate ( data_type value,
const MathVector< dim > &  x,
number  time,
int  si 
) const
inline

◆ load_data_from() [1/2]

template<int WDim, typename TData >
void ug::IDWUserData< WDim, TData >::load_data_from ( const char *  file_name)

loads data from a given file (and appends the loaded points to the current list)

Loads interpolation points from a given file.

References input(), and UG_THROW.

◆ load_data_from() [2/2]

template<int WDim, typename TData >
void ug::IDWUserData< WDim, TData >::load_data_from ( std::istream &  input)

loads data from a given stream (and appends the loaded points to the current list)

Loads interpolation points from a given stream.

References append(), input(), ug::read_plain_txt(), and UG_THROW.

◆ set_order()

template<int WDim, typename TData = number>
void ug::IDWUserData< WDim, TData >::set_order ( number  order)
inline

sets the order of the interpolation

References ug::IDWUserData< WDim, TData >::m_order.

◆ set_radius()

template<int WDim, typename TData = number>
void ug::IDWUserData< WDim, TData >::set_radius ( number  R)
inline

sets the radius of the neighbourhood where the interpolation points are taken from

References ug::IDWUserData< WDim, TData >::m_R.

Member Data Documentation

◆ dim

template<int WDim, typename TData = number>
const int ug::IDWUserData< WDim, TData >::dim = WDim
static

dimensionality of the space (i.e. of the coordinate vectors)

◆ m_data

template<int WDim, typename TData = number>
std::vector<data_item> ug::IDWUserData< WDim, TData >::m_data
private

◆ m_order

template<int WDim, typename TData = number>
number ug::IDWUserData< WDim, TData >::m_order
private

◆ m_R

template<int WDim, typename TData = number>
number ug::IDWUserData< WDim, TData >::m_R
private

radius of the neighbourhood to look for the interpolation points in (0 == infinite)

Referenced by ug::IDWUserData< WDim, TData >::evaluate(), and ug::IDWUserData< WDim, TData >::set_radius().


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