Flow123d  master-1d42d53
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SurfaceDepth Class Reference

#include <surface_depth.hh>

Collaboration diagram for SurfaceDepth:
Collaboration graph
[legend]

Public Member Functions

 TYPEDEF_ERR_INFO (EI_Message, const std::string)
 Declaration of exceptions. More...
 
 TYPEDEF_ERR_INFO (EI_RegionName, const std::string)
 
 TYPEDEF_ERR_INFO (EI_FieldTime, double)
 
 TYPEDEF_ERR_INFO (EI_Xcoord, double)
 
 TYPEDEF_ERR_INFO (EI_Ycoord, double)
 
 TYPEDEF_ERR_INFO (EI_Zcoord, double)
 
 TYPEDEF_ERR_INFO (EI_SnapDistance, double)
 
 DECLARE_INPUT_EXCEPTION (ExcSurfaceProjection,<< EI_Message::val)
 
 DECLARE_INPUT_EXCEPTION (ExcTooLargeSnapDistance,<< "Distance of projected point during calculation of surface depth is larger "<< "than the global snap radius limit!\nRegion: "<< EI_RegionName::qval<< ", time: "<< EI_FieldTime::val<< ", coordinates of projected point: ["<< EI_Xcoord::val<< ", "<< EI_Ycoord::val<< ", "<< EI_Zcoord::val<< "], distance of nearest element: "<< EI_SnapDistance::val)
 
 SurfaceDepth (const Mesh *mesh, std::string surface_region, std::string surface_direction)
 
double compute_distance (arma::vec3 point)
 Compute distance of point from given surface region (was set in constructor) More...
 

Protected Member Functions

void create_projection_matrix (arma::vec3 surface_vec)
 Create projection matrix m_. More...
 
void construct_bih_tree (Mesh *mesh, std::string surface_region)
 Construct BIH tree above surface region of given name. More...
 
void prepare_distance_solve (unsigned int elem_idx, arma::vec3 &point, arma::vec3 &x)
 Precompute solve of distance in transformed coordinations of surface element plane. More...
 

Protected Attributes

BIHTree bih_tree_
 Tree of mesh elements. More...
 
arma::vec3 surface_norm_vec_
 normal vector of surface plane More...
 
arma::mat m_
 projection matrix More...
 
std::vector< arma::mat > inv_projection_
 vector of inversion projection matrices of elements above which BIH tree is created More...
 
std::vector< arma::vec3b_vecs_
 vector of b-vectors (right side of equation system) of elements above which BIH tree is created More...
 
double projection_search_radius_
 Projection search radius given from global_snap_radius of mesh. More...
 
std::string surface_region_
 Surface region name (need for exception) More...
 
std::vector< unsigned int > searched_elements_
 Surface region name (need for exception) More...
 

Detailed Description

Definition at line 30 of file surface_depth.hh.

Constructor & Destructor Documentation

◆ SurfaceDepth()

SurfaceDepth::SurfaceDepth ( const Mesh mesh,
std::string  surface_region,
std::string  surface_direction 
)

Constructor

Definition at line 32 of file surface_depth.cc.

Member Function Documentation

◆ compute_distance()

double SurfaceDepth::compute_distance ( arma::vec3  point)

Compute distance of point from given surface region (was set in constructor)

Definition at line 112 of file surface_depth.cc.

◆ construct_bih_tree()

void SurfaceDepth::construct_bih_tree ( Mesh mesh,
std::string  surface_region 
)
protected

Construct BIH tree above surface region of given name.

Definition at line 59 of file surface_depth.cc.

Here is the caller graph for this function:

◆ create_projection_matrix()

void SurfaceDepth::create_projection_matrix ( arma::vec3  surface_vec)
protected

Create projection matrix m_.

Definition at line 41 of file surface_depth.cc.

Here is the caller graph for this function:

◆ DECLARE_INPUT_EXCEPTION() [1/2]

SurfaceDepth::DECLARE_INPUT_EXCEPTION ( ExcSurfaceProjection  ,
<< EI_Message::val   
)

◆ DECLARE_INPUT_EXCEPTION() [2/2]

SurfaceDepth::DECLARE_INPUT_EXCEPTION ( ExcTooLargeSnapDistance  ,
<< "Distance of projected point during calculation of surface depth is larger "<< "than the global snap radius limit!\nRegion: "<< EI_RegionName::qval<< "  ,
time:"<< EI_FieldTime::val<< "  ,
coordinates of projected point:  ["<< EI_Xcoord::val<< ", "<< EI_Ycoord::val<< ", "<< EI_Zcoord::val<< "],
distance of nearest element:"<< EI_SnapDistance::val   
)

◆ prepare_distance_solve()

void SurfaceDepth::prepare_distance_solve ( unsigned int  elem_idx,
arma::vec3 point,
arma::vec3 x 
)
protected

Precompute solve of distance in transformed coordinations of surface element plane.

Definition at line 173 of file surface_depth.cc.

Here is the caller graph for this function:

◆ TYPEDEF_ERR_INFO() [1/7]

SurfaceDepth::TYPEDEF_ERR_INFO ( EI_FieldTime  ,
double   
)

◆ TYPEDEF_ERR_INFO() [2/7]

SurfaceDepth::TYPEDEF_ERR_INFO ( EI_Message  ,
const std::string   
)

Declaration of exceptions.

◆ TYPEDEF_ERR_INFO() [3/7]

SurfaceDepth::TYPEDEF_ERR_INFO ( EI_RegionName  ,
const std::string   
)

◆ TYPEDEF_ERR_INFO() [4/7]

SurfaceDepth::TYPEDEF_ERR_INFO ( EI_SnapDistance  ,
double   
)

◆ TYPEDEF_ERR_INFO() [5/7]

SurfaceDepth::TYPEDEF_ERR_INFO ( EI_Xcoord  ,
double   
)

◆ TYPEDEF_ERR_INFO() [6/7]

SurfaceDepth::TYPEDEF_ERR_INFO ( EI_Ycoord  ,
double   
)

◆ TYPEDEF_ERR_INFO() [7/7]

SurfaceDepth::TYPEDEF_ERR_INFO ( EI_Zcoord  ,
double   
)

Member Data Documentation

◆ b_vecs_

std::vector<arma::vec3> SurfaceDepth::b_vecs_
protected

vector of b-vectors (right side of equation system) of elements above which BIH tree is created

Definition at line 78 of file surface_depth.hh.

◆ bih_tree_

BIHTree SurfaceDepth::bih_tree_
protected

Tree of mesh elements.

Definition at line 66 of file surface_depth.hh.

◆ inv_projection_

std::vector<arma::mat> SurfaceDepth::inv_projection_
protected

vector of inversion projection matrices of elements above which BIH tree is created

Definition at line 75 of file surface_depth.hh.

◆ m_

arma::mat SurfaceDepth::m_
protected

projection matrix

Definition at line 72 of file surface_depth.hh.

◆ projection_search_radius_

double SurfaceDepth::projection_search_radius_
protected

Projection search radius given from global_snap_radius of mesh.

Definition at line 81 of file surface_depth.hh.

◆ searched_elements_

std::vector<unsigned int> SurfaceDepth::searched_elements_
protected

Surface region name (need for exception)

Definition at line 87 of file surface_depth.hh.

◆ surface_norm_vec_

arma::vec3 SurfaceDepth::surface_norm_vec_
protected

normal vector of surface plane

Definition at line 69 of file surface_depth.hh.

◆ surface_region_

std::string SurfaceDepth::surface_region_
protected

Surface region name (need for exception)

Definition at line 84 of file surface_depth.hh.


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