Plugins
Loading...
Searching...
No Matches
ug::d3f::FractGFEval< TGridFunc > Class Template Reference

#include <fract_eval.h>

Classes

struct  t_fract_pnt_data
 an auxiliary structure for the computed data More...
 

Public Types

typedef TGridFunc::algebra_type algebra_type
 algebra type
 
typedef DegeneratedLayerManager< dimdeg_layer_mngr_type
 type of the degenerated layer manager
 
typedef TGridFunc::domain_type domain_type
 domain type
 
typedef deg_layer_mngr_type::element_type element_type
 type of the degenerated elements
 
typedef TGridFunc grid_func_type
 grid function type
 
typedef domain_type::grid_type grid_type
 grid type
 
typedef domain_type::position_accessor_type position_accessor_type
 type of the position accessor
 
typedef domain_type::position_type position_type
 type of the vectors for positions
 
typedef deg_layer_mngr_type::side_type side_type
 type of sides of the degenerated elements
 

Public Member Functions

number fract_value (size_t i) const
 returns the fracture values no. i
 
 FractGFEval (SmartPtr< grid_func_type > spGridFunc, const char *cmp_name, SmartPtr< deg_layer_mngr_type > spDegLayerMngr, const position_type &point_0, const position_type &point_1)
 class constructor
 
void get_all_values ()
 gets all values in all the intersected elements
 
void get_and_write (std::ostream &out, const char *inner_sep, const char *outer_sep)
 computes and writes the values into a given stream
 
std::string get_as_string (const char *inner_sep, const char *outer_sep)
 composes a string containing the values
 
size_t num_intersections () const
 returns the number of the values
 
position_type position (size_t i) const
 returns the coordinates of the intersection nu. i
 
number side_value_1 (size_t i) const
 returns the 1st side values no. i
 
number side_value_2 (size_t i) const
 returns the 2nd side values no. i
 
void write (std::ostream &out, const char *inner_sep, const char *outer_sep) const
 writes all the values into a given stream
 

Static Public Attributes

static const int dim = domain_type::dim
 world dimension
 
static const size_t maxElemCorners = deg_layer_mngr_type::maxElemCorners
 max. number of corners of the elements
 
static const size_t maxLayerSideCorners = deg_layer_mngr_type::maxLayerSideCorners
 max. number of corners of non-degenerated sides
 

Private Member Functions

void append_values (const side_type *side, const position_type &intersection, number inner_val, number outer_val)
 appends the values into the list
 
void check_values ()
 checks whether all the values are initialized
 
void get_co_values (element_type *elem, side_type *side, size_t num_fract_co, size_t inner_side_corners[], size_t ass_co[], MathVector< dim-1 > &local, number &inner_val, number &outer_val)
 gets values in the intersected element
 
void get_local_coord (side_type *side, size_t num_co, position_accessor_type &aaPos, position_type &global, MathVector< dim-1 > &local)
 gets the local coordinates of the intersection
 
void init_and_check (const char *cmp_name)
 completes the initialization and checks the data
 
bool is_intersected (element_type *elem, Grid &grid, position_accessor_type &aaPos, position_type &intersection, size_t &num_fract_co, side_type *&inner_side, size_t inner_side_corners[], size_t ass_co[])
 checks if the element and finds the intersection point with the inner side
 

Private Attributes

size_t m_fct
 the component of the grid function
 
LFEID m_lfeID
 the local finite element id
 
position_type m_point_0
 one point on the line
 
position_type m_point_1
 another point on the line
 
SmartPtr< deg_layer_mngr_typem_spDegLayerMngr
 the degenerated manager
 
SmartPtr< grid_func_typem_spGridFunc
 the grid function
 
std::vector< t_fract_pnt_datam_values
 to keep the values
 

Detailed Description

template<typename TGridFunc>
class ug::d3f::FractGFEval< TGridFunc >

A class for evaluation of grid functions in fractures

Template Parameters
TGridFuncgrid function type

Member Typedef Documentation

◆ algebra_type

template<typename TGridFunc >
typedef TGridFunc::algebra_type ug::d3f::FractGFEval< TGridFunc >::algebra_type

algebra type

◆ deg_layer_mngr_type

template<typename TGridFunc >
typedef DegeneratedLayerManager<dim> ug::d3f::FractGFEval< TGridFunc >::deg_layer_mngr_type

type of the degenerated layer manager

◆ domain_type

template<typename TGridFunc >
typedef TGridFunc::domain_type ug::d3f::FractGFEval< TGridFunc >::domain_type

domain type

◆ element_type

template<typename TGridFunc >
typedef deg_layer_mngr_type::element_type ug::d3f::FractGFEval< TGridFunc >::element_type

type of the degenerated elements

◆ grid_func_type

template<typename TGridFunc >
typedef TGridFunc ug::d3f::FractGFEval< TGridFunc >::grid_func_type

grid function type

◆ grid_type

template<typename TGridFunc >
typedef domain_type::grid_type ug::d3f::FractGFEval< TGridFunc >::grid_type

grid type

◆ position_accessor_type

template<typename TGridFunc >
typedef domain_type::position_accessor_type ug::d3f::FractGFEval< TGridFunc >::position_accessor_type

type of the position accessor

◆ position_type

template<typename TGridFunc >
typedef domain_type::position_type ug::d3f::FractGFEval< TGridFunc >::position_type

type of the vectors for positions

◆ side_type

template<typename TGridFunc >
typedef deg_layer_mngr_type::side_type ug::d3f::FractGFEval< TGridFunc >::side_type

type of sides of the degenerated elements

Constructor & Destructor Documentation

◆ FractGFEval()

template<typename TGridFunc >
ug::d3f::FractGFEval< TGridFunc >::FractGFEval ( SmartPtr< grid_func_type spGridFunc,
const char *  cmp_name,
SmartPtr< deg_layer_mngr_type spDegLayerMngr,
const position_type point_0,
const position_type point_1 
)

class constructor

Constructor

Parameters
spGridFuncthe grid func. to evaluate
cmp_namename of the component
spDegLayerMngrthe degenerated layer manager
point_0one point of the line segment
point_1another point of the line segment

References ug::d3f::FractGFEval< TGridFunc >::init_and_check().

Member Function Documentation

◆ append_values()

template<typename TGridFunc >
void ug::d3f::FractGFEval< TGridFunc >::append_values ( const side_type side,
const position_type intersection,
number  inner_val,
number  outer_val 
)
private

appends the values into the list

Appends the values into the list

Parameters
sidethe side
inner_val< the position of the intersection values at the corners of the inner side
outer_valvalues at the corners of the outer side

References ug::d3f::FractGFEval< TGridFunc >::t_fract_pnt_data::closed, ug::d3f::FractGFEval< TGridFunc >::t_fract_pnt_data::face, ug::d3f::FractGFEval< TGridFunc >::t_fract_pnt_data::side_val, and UG_THROW.

◆ check_values()

template<typename TGridFunc >
void ug::d3f::FractGFEval< TGridFunc >::check_values ( )
private

checks whether all the values are initialized

Checks whether all the values are initialized

References UG_THROW.

◆ fract_value()

template<typename TGridFunc >
number ug::d3f::FractGFEval< TGridFunc >::fract_value ( size_t  i) const
inline

returns the fracture values no. i

References ug::d3f::FractGFEval< TGridFunc >::m_values.

◆ get_all_values()

template<typename TGridFunc >
void ug::d3f::FractGFEval< TGridFunc >::get_all_values ( )

gets all values in all the intersected elements

Gets all values in all the intersected elements

References grid().

Referenced by ug::d3f::FractGFEval< TGridFunc >::get_and_write().

◆ get_and_write()

template<typename TGridFunc >
void ug::d3f::FractGFEval< TGridFunc >::get_and_write ( std::ostream &  out,
const char *  inner_sep,
const char *  outer_sep 
)
inline

computes and writes the values into a given stream

Parameters
out< the stream to write to
inner_sepa separator between the data of one intersection
outer_sepa separator of the intersections

References ug::d3f::FractGFEval< TGridFunc >::get_all_values(), and ug::d3f::FractGFEval< TGridFunc >::write().

Referenced by ug::d3f::FractGFEval< TGridFunc >::get_as_string().

◆ get_as_string()

template<typename TGridFunc >
std::string ug::d3f::FractGFEval< TGridFunc >::get_as_string ( const char *  inner_sep,
const char *  outer_sep 
)
inline

composes a string containing the values

Parameters
inner_sepa separator between the data of one intersection
outer_sepa separator of the intersections

References ug::d3f::FractGFEval< TGridFunc >::get_and_write().

◆ get_co_values()

template<typename TGridFunc >
void ug::d3f::FractGFEval< TGridFunc >::get_co_values ( element_type elem,
side_type side,
size_t  num_fract_co,
size_t  inner_side_corners[],
size_t  ass_co[],
MathVector< dim-1 > &  local,
number inner_val,
number outer_val 
)
private

gets values in the intersected element

Gets values in the intersected element

Parameters
elemthe degenerated element
sidethe inner side of the element
num_fract_conumber of corners of the inner/outer sides
inner_side_cornersinner side corner idx -> elem. corner idx (maxLayerSideCorners elements)
ass_cocorrespondence of the corners of the sides (2 * maxLayerSideCorners elements or NULL)
locallocal coordinates of the intersection point (maxLayerSideCorners elements)
inner_valvalues at the corners of the inner side
outer_valvalues at the corners of the outer side

References ug::DoFRef(), and UG_THROW.

◆ get_local_coord()

template<typename TGridFunc >
void ug::d3f::FractGFEval< TGridFunc >::get_local_coord ( side_type side,
size_t  num_co,
position_accessor_type aaPos,
position_type global,
MathVector< dim-1 > &  local 
)
private

gets the local coordinates of the intersection

Gets the local coordinates of the intersection

Parameters
sidethe element for the local coord
num_conumber of corners of the sides
aaPosposition of the vertices
globalglobal coordinates of the intersection
locallocal coordinates of the intersection

References ug::ReferenceMappingProvider::get(), and ug::DimReferenceMapping< int TDim, int TWorldDim >::global_to_local().

◆ init_and_check()

template<typename TGridFunc >
void ug::d3f::FractGFEval< TGridFunc >::init_and_check ( const char *  cmp_name)
private

completes the initialization and checks the data

Complete the initialization and check the data

Parameters
cmp_namename of the function component

References UG_THROW.

Referenced by ug::d3f::FractGFEval< TGridFunc >::FractGFEval().

◆ is_intersected()

template<typename TGridFunc >
bool ug::d3f::FractGFEval< TGridFunc >::is_intersected ( element_type elem,
Grid grid,
position_accessor_type aaPos,
position_type intersection,
size_t &  num_fract_co,
side_type *&  inner_side,
size_t  inner_side_corners[],
size_t  ass_co[] 
)
private

checks if the element and finds the intersection point with the inner side

Checks if the element and finds the intersection point with the inner side

Parameters
[in]elemthe element
[in]gridthe grid
[in]aaPosposition of the vertices
[out]intersectionthe intersection of the inner fracture side
[out]num_fract_conumber of corners of the inner/outer sides
[out]inner_sideits fracture inner side
[out]inner_side_cornersinner side corner idx -> elem. corner idx (maxLayerSideCorners elements)
[out]ass_cocorrespondence of the corners of the sides (2 * maxLayerSideCorners elements or NULL)

References grid(), ug::RayElementIntersection(), ug::SMALL, UG_THROW, ug::VecScaleAppend(), and ug::VecSubtract().

◆ num_intersections()

template<typename TGridFunc >
size_t ug::d3f::FractGFEval< TGridFunc >::num_intersections ( ) const
inline

returns the number of the values

References ug::d3f::FractGFEval< TGridFunc >::m_values.

◆ position()

template<typename TGridFunc >
position_type ug::d3f::FractGFEval< TGridFunc >::position ( size_t  i) const
inline

returns the coordinates of the intersection nu. i

References ug::d3f::FractGFEval< TGridFunc >::m_values.

◆ side_value_1()

template<typename TGridFunc >
number ug::d3f::FractGFEval< TGridFunc >::side_value_1 ( size_t  i) const
inline

returns the 1st side values no. i

References ug::d3f::FractGFEval< TGridFunc >::m_values.

◆ side_value_2()

template<typename TGridFunc >
number ug::d3f::FractGFEval< TGridFunc >::side_value_2 ( size_t  i) const
inline

returns the 2nd side values no. i

References ug::d3f::FractGFEval< TGridFunc >::m_values.

◆ write()

template<typename TGridFunc >
void ug::d3f::FractGFEval< TGridFunc >::write ( std::ostream &  out,
const char *  inner_sep,
const char *  outer_sep 
) const

writes all the values into a given stream

Parameters
out< the stream to write to
inner_sepa separator between the data of one intersection
outer_sepa separator of the intersections

Referenced by ug::d3f::FractGFEval< TGridFunc >::get_and_write().

Member Data Documentation

◆ dim

template<typename TGridFunc >
const int ug::d3f::FractGFEval< TGridFunc >::dim = domain_type::dim
static

world dimension

◆ m_fct

template<typename TGridFunc >
size_t ug::d3f::FractGFEval< TGridFunc >::m_fct
private

the component of the grid function

◆ m_lfeID

template<typename TGridFunc >
LFEID ug::d3f::FractGFEval< TGridFunc >::m_lfeID
private

the local finite element id

◆ m_point_0

template<typename TGridFunc >
position_type ug::d3f::FractGFEval< TGridFunc >::m_point_0
private

one point on the line

◆ m_point_1

template<typename TGridFunc >
position_type ug::d3f::FractGFEval< TGridFunc >::m_point_1
private

another point on the line

◆ m_spDegLayerMngr

template<typename TGridFunc >
SmartPtr<deg_layer_mngr_type> ug::d3f::FractGFEval< TGridFunc >::m_spDegLayerMngr
private

the degenerated manager

◆ m_spGridFunc

template<typename TGridFunc >
SmartPtr<grid_func_type> ug::d3f::FractGFEval< TGridFunc >::m_spGridFunc
private

the grid function

◆ m_values

◆ maxElemCorners

template<typename TGridFunc >
const size_t ug::d3f::FractGFEval< TGridFunc >::maxElemCorners = deg_layer_mngr_type::maxElemCorners
static

max. number of corners of the elements

◆ maxLayerSideCorners

template<typename TGridFunc >
const size_t ug::d3f::FractGFEval< TGridFunc >::maxLayerSideCorners = deg_layer_mngr_type::maxLayerSideCorners
static

max. number of corners of non-degenerated sides


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