Plugins
Loading...
Searching...
No Matches
ug::d3f::FractalField< TData, dim, TRet > Class Template Reference

Computation of a fractal field. More...

#include <Fractal_Field.h>

+ Inheritance diagram for ug::d3f::FractalField< TData, dim, TRet >:

Public Member Functions

void clear_random_number ()
 
double computeK_2D (double IN[2])
 
double computeK_3D (double IN[3])
 
void create_FractalField (int node, double h, double cox, double coy, double p, double H, double mue_K, double var_K, double a)
 
TRet evaluate (TData &D, const MathVector< dim > &x, number time, int si) const
 
 FractalField ()
 
double get_K (double x, double y) const
 
void print_fractal_field (const char *filename)
 
void print_fractal_field_eval (const char *filename)
 
virtual ~FractalField ()
 
- Public Member Functions inherited from ug::StdGlobPosData< typename TImpl, typename TData, int dim, typename TRet >
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)
 
virtual bool constant () const
 
virtual bool continuous () const
 
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
 
virtual void operator() (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, const size_t nip) const
 
virtual bool requires_grid_fct () const
 
- Public Member Functions inherited from ug::StdUserData< typename TImpl, typename TData, int dim, typename TRet, typename 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< 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 ()
 
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 Member Functions

static std::string get_xml_name ()
 

Private Member Functions

long double Duplication_Formula (long double two_x)
 
double Entire_Incomplete_Gamma_Function (double x, double nu)
 
double Factorial (int n)
 
int Factorial_Max_Arg ()
 
double Gamma_Function (double x)
 
double Gamma_Function_Max_Arg ()
 
double Incomplete_Gamma_Function (double x, double nu)
 
void InitConstants ()
 
void invertCDF_2D ()
 
void invertCDF_3D ()
 
double Ln_Gamma_Function (double x)
 
void NormalGaussRandom ()
 
double ran2 ()
 
int sign (double a)
 
long double xEntire_Incomplete_Gamma_Function (long double x, long double nu)
 
long double xFactorial (int n)
 
long double xGamma (long double x)
 
long double xGamma_Function (long double x)
 
long double xGamma_Function_Max_Arg ()
 
long double xIncomplete_Gamma_Function (long double x, long double nu)
 long double xIncomplete_Gamma_Function(long double x, long double nu)
 
long double xLarge_x (long double x, long double nu)
 
long double xLn_Gamma_Function (long double x)
 
long double xLnGamma_Asymptotic_Expansion (long double x)
 
long double xMedium_x (long double x, long double nu)
 
long double xSmall_x (long double x, long double nu)
 

Private Attributes

long double a [9]
 
double alpha
 
std::vector< std::vector< double > > amplitude
 
long double B [10]
 
double corrx
 
double corry
 
double corrz
 
double delta
 
long double e
 
long double exp_g_o_sqrt_2pi
 
long double factorials [171]
 
long double g
 
double Hurst
 
std::vector< std::vector< double > > K
 
long double log_sqrt_2pi
 
double max_double_arg
 
long double max_long_double_arg
 
double mean
 
int n
 
int N
 
int nMode
 
double phi
 
double variance
 
std::vector< std::vector< double > > wavenum2d
 
std::vector< std::vector< double > > wavenum3d
 

Additional Inherited Members

- 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
 
- Protected Member Functions inherited from ug::StdGlobPosData< typename TImpl, typename TData, int dim, typename TRet >
TImpl & getImpl ()
 
const TImpl & getImpl () const
 
- Protected Member Functions inherited from ug::StdUserData< typename TImpl, typename TData, int dim, typename TRet, typename TBase >
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 TData, int dim, typename TRet = void>
class ug::d3f::FractalField< TData, dim, TRet >

Computation of a fractal field.

Code is copied from the c-version by J.Musuuza which is based on some Matlab version by F.Hesse documentation ???

Constructor & Destructor Documentation

◆ FractalField()

template<typename TData , int dim, typename TRet = void>
ug::d3f::FractalField< TData, dim, TRet >::FractalField ( )
inline

◆ ~FractalField()

template<typename TData , int dim, typename TRet = void>
virtual ug::d3f::FractalField< TData, dim, TRet >::~FractalField ( )
inlinevirtual

Member Function Documentation

◆ clear_random_number()

template<typename TData , int dim, typename TRet = void>
void ug::d3f::FractalField< TData, dim, TRet >::clear_random_number ( )
inline

◆ computeK_2D()

template<typename TData , int dim, typename TRet >
double ug::d3f::FractalField< TData, dim, TRet >::computeK_2D ( double  IN[2])

◆ computeK_3D()

template<typename TData , int dim, typename TRet >
double ug::d3f::FractalField< TData, dim, TRet >::computeK_3D ( double  IN[3])

◆ create_FractalField()

template<typename TData , int dim, typename TRet >
void ug::d3f::FractalField< TData, dim, TRet >::create_FractalField ( int  node,
double  h,
double  cox,
double  coy,
double  p,
double  H,
double  mue_K,
double  var_K,
double  a 
)

References p.

◆ Duplication_Formula()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::Duplication_Formula ( long double  two_x)
private

◆ Entire_Incomplete_Gamma_Function()

template<typename TData , int dim, typename TRet >
double ug::d3f::FractalField< TData, dim, TRet >::Entire_Incomplete_Gamma_Function ( double  x,
double  nu 
)
private

◆ evaluate()

template<typename TData , int dim, typename TRet >
TRet ug::d3f::FractalField< TData, dim, TRet >::evaluate ( TData &  D,
const MathVector< dim > &  x,
number  time,
int  si 
) const
inline

References UG_ASSERT.

◆ Factorial()

template<typename TData , int dim, typename TRet >
double ug::d3f::FractalField< TData, dim, TRet >::Factorial ( int  n)
private

◆ Factorial_Max_Arg()

template<typename TData , int dim, typename TRet >
int ug::d3f::FractalField< TData, dim, TRet >::Factorial_Max_Arg ( )
private

◆ Gamma_Function()

template<typename TData , int dim, typename TRet >
double ug::d3f::FractalField< TData, dim, TRet >::Gamma_Function ( double  x)
private

◆ Gamma_Function_Max_Arg()

template<typename TData , int dim, typename TRet >
double ug::d3f::FractalField< TData, dim, TRet >::Gamma_Function_Max_Arg ( )
private

◆ get_K()

template<typename TData , int dim, typename TRet >
double ug::d3f::FractalField< TData, dim, TRet >::get_K ( double  x,
double  y 
) const

◆ get_xml_name()

template<typename TData , int dim, typename TRet = void>
static std::string ug::d3f::FractalField< TData, dim, TRet >::get_xml_name ( )
inlinestatic

◆ Incomplete_Gamma_Function()

template<typename TData , int dim, typename TRet >
double ug::d3f::FractalField< TData, dim, TRet >::Incomplete_Gamma_Function ( double  x,
double  nu 
)
private

Description: The incomplete gamma function is defined as the integral from 0 to x of the integrand t^(nu-1) exp(-t) dt. The parameter nu is sometimes referred to as the shape parameter.

Arguments: double x Upper limit of the integral with integrand given above. double nu The shape parameter of the incomplete gamma function.

Return Values: The incomplete gamma function Integral[0;x] t^(nu-1) exp(-t) dt.

Example: double x, g, nu;

g = Incomplete_Gamma_Function( x, nu );

◆ InitConstants()

template<typename TData , int dim, typename TRet >
void ug::d3f::FractalField< TData, dim, TRet >::InitConstants ( )
private

◆ invertCDF_2D()

template<typename TData , int dim, typename TRet >
void ug::d3f::FractalField< TData, dim, TRet >::invertCDF_2D ( )
private

References p.

◆ invertCDF_3D()

template<typename TData , int dim, typename TRet >
void ug::d3f::FractalField< TData, dim, TRet >::invertCDF_3D ( )
private

References p.

◆ Ln_Gamma_Function()

template<typename TData , int dim, typename TRet >
double ug::d3f::FractalField< TData, dim, TRet >::Ln_Gamma_Function ( double  x)
private

◆ NormalGaussRandom()

template<typename TData , int dim, typename TRet >
void ug::d3f::FractalField< TData, dim, TRet >::NormalGaussRandom ( )
private

◆ print_fractal_field()

template<typename TData , int dim, typename TRet >
void ug::d3f::FractalField< TData, dim, TRet >::print_fractal_field ( const char *  filename)

◆ print_fractal_field_eval()

template<typename TData , int dim, typename TRet >
void ug::d3f::FractalField< TData, dim, TRet >::print_fractal_field_eval ( const char *  filename)

◆ ran2()

template<typename TData , int dim, typename TRet >
double ug::d3f::FractalField< TData, dim, TRet >::ran2 ( )
private

◆ sign()

template<typename TData , int dim, typename TRet >
int ug::d3f::FractalField< TData, dim, TRet >::sign ( double  a)
private

◆ xEntire_Incomplete_Gamma_Function()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::xEntire_Incomplete_Gamma_Function ( long double  x,
long double  nu 
)
private

◆ xFactorial()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::xFactorial ( int  n)
private

◆ xGamma()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::xGamma ( long double  x)
private

◆ xGamma_Function()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::xGamma_Function ( long double  x)
private

◆ xGamma_Function_Max_Arg()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::xGamma_Function_Max_Arg ( )
private

◆ xIncomplete_Gamma_Function()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::xIncomplete_Gamma_Function ( long double  x,
long double  nu 
)
private

long double xIncomplete_Gamma_Function(long double x, long double nu)

Description: The incomplete gamma function is defined as the integral from 0 to x of the integrand t^(nu-1) exp(-t) dt. The parameter nu is sometimes referred to as the shape parameter.

Arguments: long double x Upper limit of the integral with integrand given above. long double nu The shape parameter of the incomplete gamma function.

Return Values: The incomplete gamma function Integral[0,x] t^(nu-1) exp(-t) dt.

Example: long double x, g, nu;

g = xIncomplete_Gamma_Function( x, nu );

◆ xLarge_x()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::xLarge_x ( long double  x,
long double  nu 
)
private

◆ xLn_Gamma_Function()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::xLn_Gamma_Function ( long double  x)
private

◆ xLnGamma_Asymptotic_Expansion()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::xLnGamma_Asymptotic_Expansion ( long double  x)
private

◆ xMedium_x()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::xMedium_x ( long double  x,
long double  nu 
)
private

◆ xSmall_x()

template<typename TData , int dim, typename TRet >
long double ug::d3f::FractalField< TData, dim, TRet >::xSmall_x ( long double  x,
long double  nu 
)
private

References Nterms.

Member Data Documentation

◆ a

template<typename TData , int dim, typename TRet = void>
long double ug::d3f::FractalField< TData, dim, TRet >::a[9]
private

◆ alpha

template<typename TData , int dim, typename TRet = void>
double ug::d3f::FractalField< TData, dim, TRet >::alpha
private

◆ amplitude

template<typename TData , int dim, typename TRet = void>
std::vector<std::vector<double> > ug::d3f::FractalField< TData, dim, TRet >::amplitude
private

◆ B

template<typename TData , int dim, typename TRet = void>
long double ug::d3f::FractalField< TData, dim, TRet >::B[10]
private

◆ corrx

template<typename TData , int dim, typename TRet = void>
double ug::d3f::FractalField< TData, dim, TRet >::corrx
private

◆ corry

template<typename TData , int dim, typename TRet = void>
double ug::d3f::FractalField< TData, dim, TRet >::corry
private

◆ corrz

template<typename TData , int dim, typename TRet = void>
double ug::d3f::FractalField< TData, dim, TRet >::corrz
private

◆ delta

template<typename TData , int dim, typename TRet = void>
double ug::d3f::FractalField< TData, dim, TRet >::delta
private

◆ e

template<typename TData , int dim, typename TRet = void>
long double ug::d3f::FractalField< TData, dim, TRet >::e
private

◆ exp_g_o_sqrt_2pi

template<typename TData , int dim, typename TRet = void>
long double ug::d3f::FractalField< TData, dim, TRet >::exp_g_o_sqrt_2pi
private

◆ factorials

template<typename TData , int dim, typename TRet = void>
long double ug::d3f::FractalField< TData, dim, TRet >::factorials[171]
private

◆ g

template<typename TData , int dim, typename TRet = void>
long double ug::d3f::FractalField< TData, dim, TRet >::g
private

◆ Hurst

template<typename TData , int dim, typename TRet = void>
double ug::d3f::FractalField< TData, dim, TRet >::Hurst
private

◆ K

template<typename TData , int dim, typename TRet = void>
std::vector<std::vector<double> > ug::d3f::FractalField< TData, dim, TRet >::K
private

◆ log_sqrt_2pi

template<typename TData , int dim, typename TRet = void>
long double ug::d3f::FractalField< TData, dim, TRet >::log_sqrt_2pi
private

◆ max_double_arg

template<typename TData , int dim, typename TRet = void>
double ug::d3f::FractalField< TData, dim, TRet >::max_double_arg
private

◆ max_long_double_arg

template<typename TData , int dim, typename TRet = void>
long double ug::d3f::FractalField< TData, dim, TRet >::max_long_double_arg
private

◆ mean

template<typename TData , int dim, typename TRet = void>
double ug::d3f::FractalField< TData, dim, TRet >::mean
private

◆ n

template<typename TData , int dim, typename TRet = void>
int ug::d3f::FractalField< TData, dim, TRet >::n
private

◆ N

template<typename TData , int dim, typename TRet = void>
int ug::d3f::FractalField< TData, dim, TRet >::N
private

◆ nMode

template<typename TData , int dim, typename TRet = void>
int ug::d3f::FractalField< TData, dim, TRet >::nMode
private

◆ phi

template<typename TData , int dim, typename TRet = void>
double ug::d3f::FractalField< TData, dim, TRet >::phi
private

◆ variance

template<typename TData , int dim, typename TRet = void>
double ug::d3f::FractalField< TData, dim, TRet >::variance
private

◆ wavenum2d

template<typename TData , int dim, typename TRet = void>
std::vector<std::vector<double> > ug::d3f::FractalField< TData, dim, TRet >::wavenum2d
private

◆ wavenum3d

template<typename TData , int dim, typename TRet = void>
std::vector<std::vector<double> > ug::d3f::FractalField< TData, dim, TRet >::wavenum3d
private

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