Peano
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
DiffuseInterface< Shortcuts, basisSize > Class Template Reference

#include <DiffuseInterface.h>

Collaboration diagram for DiffuseInterface< Shortcuts, basisSize >:

Public Member Functions

 DiffuseInterface (Topography *a_topo, DomainInformation *a_domainInfo, SolverInformation *a_solverInfo, double a_interface_factor, double a_max_distance_to_direct_surface)
 
 ~DiffuseInterface ()
 
int findRelativePosition (double &distance, double y_min, double y_max, int i, int j)
 
void getAlphaPatch (const double *const x, double *alpha)
 
void computeAlphaPatch (double *alpha, double *minDistance, Position *positions)
 
void spanPatchAroundCenter (std::vector< double > &patch_x, std::vector< double > &patch_z, double center_x, double center_z, double patch_radius)
 
void findMinDistanceToNode (double &min_distance, Position &position, const double *const x, std::vector< double > &patch_x, std::vector< double > &patch_y, std::vector< double > &patch_z)
 
void getMinDistancePatch (double patch_distance, const double *const x, double *min_distance, Position *positions, bool *done)
 
double getAlpha (const double *const x)
 
double getMinDistance (double max_distance, double x, double y, double z)
 
void initLimits ()
 
 DiffuseInterface (Topography *a_topo, DomainInformation *a_info)
 
double getAlpha (const double *const x)
 
double testFunction (double x, double y, double z)
 
void gen_heaviside_topography (const double *const x, std::vector< double > &patch_y, std::vector< double > &topography_heaviside)
 
double convolution_with_patch (std::vector< double > &topography_heaviside)
 
void initLimits ()
 
int getArea (int x, int z)
 
 DiffuseInterface (Topography *a_topo, DomainInformation *a_info, int a_interface_factor)
 
void getAlphaPatch (const double *const x, double *alpha)
 
void initCells ()
 

Private Attributes

Topography * topography
 
DomainInformationinfo
 
bool isDG
 
double dx
 
double interval_size
 
double max_distance_to_direct_surface
 
double interface_factor
 
int domain_cells
 
std::vector< doubletopography_limits_max
 
std::vector< doubletopography_limits_min
 
std::vector< doubleintegration_nodes
 
double volume_testfunction
 
double patch_size
 
double patch_dx
 
int patch_cells
 
std::vector< doublepatch
 
std::vector< doubleintegration_weights
 
double max_patch_size
 
int _nx
 
int _nz
 
std::vector< doubletopo_x
 
std::vector< doubletopo_y
 
std::vector< doubletopo_z
 
std::vector< doublenormals_x
 
std::vector< doublenormals_y
 
std::vector< doublenormals_z
 

Detailed Description

template<class Shortcuts, int basisSize>
class DiffuseInterface< Shortcuts, basisSize >

Definition at line 10 of file DiffuseInterface.h.

Constructor & Destructor Documentation

◆ DiffuseInterface() [1/3]

◆ ~DiffuseInterface()

template<class Shortcuts , int basisSize>
DiffuseInterface< Shortcuts, basisSize >::~DiffuseInterface ( )

◆ DiffuseInterface() [2/3]

◆ DiffuseInterface() [3/3]

Member Function Documentation

◆ computeAlphaPatch()

template<class Shortcuts , int basisSize>
void DiffuseInterface< Shortcuts, basisSize >::computeAlphaPatch ( double * alpha,
double * minDistance,
Position * positions )

Definition at line 111 of file DiffuseInterface.h.

References assertion1, below, DiffuseInterface< Shortcuts, basisSize >::interval_size, and r.

Referenced by DiffuseInterface< Shortcuts, basisSize >::getAlphaPatch().

Here is the caller graph for this function:

◆ convolution_with_patch()

template<class Shortcuts , int basisSize>
double DiffuseInterface< Shortcuts, basisSize >::convolution_with_patch ( std::vector< double > & topography_heaviside)

◆ findMinDistanceToNode()

template<class Shortcuts , int basisSize>
void DiffuseInterface< Shortcuts, basisSize >::findMinDistanceToNode ( double & min_distance,
Position & position,
const double *const x,
std::vector< double > & patch_x,
std::vector< double > & patch_y,
std::vector< double > & patch_z )

Definition at line 191 of file DiffuseInterface.h.

References above, and below.

Referenced by DiffuseInterface< Shortcuts, basisSize >::getMinDistancePatch().

Here is the caller graph for this function:

◆ findRelativePosition()

template<class Shortcuts , int basisSize>
int DiffuseInterface< Shortcuts, basisSize >::findRelativePosition ( double & distance,
double y_min,
double y_max,
int i,
int j )

◆ gen_heaviside_topography()

template<class Shortcuts , int basisSize>
void DiffuseInterface< Shortcuts, basisSize >::gen_heaviside_topography ( const double *const x,
std::vector< double > & patch_y,
std::vector< double > & topography_heaviside )

◆ getAlpha() [1/2]

◆ getAlpha() [2/2]

◆ getAlphaPatch() [1/2]

◆ getAlphaPatch() [2/2]

◆ getArea()

template<class Shortcuts , int basisSize>
int DiffuseInterface< Shortcuts, basisSize >::getArea ( int x,
int z )

◆ getMinDistance()

template<class Shortcuts , int basisSize>
double DiffuseInterface< Shortcuts, basisSize >::getMinDistance ( double max_distance,
double x,
double y,
double z )

◆ getMinDistancePatch()

template<class Shortcuts , int basisSize>
void DiffuseInterface< Shortcuts, basisSize >::getMinDistancePatch ( double patch_distance,
const double *const x,
double * min_distance,
Position * positions,
bool * done )

◆ initCells()

◆ initLimits() [1/2]

◆ initLimits() [2/2]

◆ spanPatchAroundCenter()

template<class Shortcuts , int basisSize>
void DiffuseInterface< Shortcuts, basisSize >::spanPatchAroundCenter ( std::vector< double > & patch_x,
std::vector< double > & patch_z,
double center_x,
double center_z,
double patch_radius )

◆ testFunction()

template<class Shortcuts , int basisSize>
double DiffuseInterface< Shortcuts, basisSize >::testFunction ( double x,
double y,
double z )

Definition at line 107 of file DiffuseInterface_Convolution.h.

References DiffuseInterface< Shortcuts, basisSize >::patch_size.

Referenced by DiffuseInterface< Shortcuts, basisSize >::DiffuseInterface().

Here is the caller graph for this function:

Field Documentation

◆ _nx

◆ _nz

◆ domain_cells

◆ dx

◆ info

◆ integration_nodes

◆ integration_weights

template<class Shortcuts , int basisSize>
std::vector<double> DiffuseInterface< Shortcuts, basisSize >::integration_weights
private

◆ interface_factor

template<class Shortcuts , int basisSize>
double DiffuseInterface< Shortcuts, basisSize >::interface_factor
private

◆ interval_size

◆ isDG

◆ max_distance_to_direct_surface

template<class Shortcuts , int basisSize>
double DiffuseInterface< Shortcuts, basisSize >::max_distance_to_direct_surface
private

◆ max_patch_size

template<class Shortcuts , int basisSize>
double DiffuseInterface< Shortcuts, basisSize >::max_patch_size
private

◆ normals_x

template<class Shortcuts , int basisSize>
std::vector<double> DiffuseInterface< Shortcuts, basisSize >::normals_x
private

◆ normals_y

template<class Shortcuts , int basisSize>
std::vector<double> DiffuseInterface< Shortcuts, basisSize >::normals_y
private

◆ normals_z

template<class Shortcuts , int basisSize>
std::vector<double> DiffuseInterface< Shortcuts, basisSize >::normals_z
private

◆ patch

template<class Shortcuts , int basisSize>
std::vector<double> DiffuseInterface< Shortcuts, basisSize >::patch
private

◆ patch_cells

◆ patch_dx

◆ patch_size

template<class Shortcuts , int basisSize>
double DiffuseInterface< Shortcuts, basisSize >::patch_size
private

◆ topo_x

template<class Shortcuts , int basisSize>
std::vector<double> DiffuseInterface< Shortcuts, basisSize >::topo_x
private

◆ topo_y

◆ topo_z

template<class Shortcuts , int basisSize>
std::vector<double> DiffuseInterface< Shortcuts, basisSize >::topo_z
private

◆ topography

◆ topography_limits_max

◆ topography_limits_min

◆ volume_testfunction

template<class Shortcuts , int basisSize>
double DiffuseInterface< Shortcuts, basisSize >::volume_testfunction
private

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