Flow123d  release_3.0.0-869-g0e4dab6
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
ObservePoint Class Reference

#include <observe.hh>

Collaboration diagram for ObservePoint:
Collaboration graph
[legend]

Public Member Functions

 DECLARE_INPUT_EXCEPTION (ExcNoInitialPoint,<< "Failed to find the element containing the initial observe point.\n")
 
 TYPEDEF_ERR_INFO (EI_RegionName, std::string)
 
 DECLARE_INPUT_EXCEPTION (ExcNoObserveElement,<< "Failed to find the observe element with snap region: "<< EI_RegionName::qval<< " close to the initial observe point. Change maximal distance of observe element."<< "\n")
 
unsigned int element_idx () const
 
arma::vec3 global_coords () const
 

Static Public Member Functions

static const Input::Type::Recordget_input_type ()
 

Protected Member Functions

 ObservePoint ()
 
 ObservePoint (Input::Record in_rec, Mesh &mesh, unsigned int point_idx)
 
bool have_observe_element ()
 
void snap (Mesh &mesh)
 
void find_observe_point (Mesh &mesh)
 
void output (ostream &out, unsigned int indent_spaces, unsigned int precision)
 
ObservePointData point_projection (unsigned int i_elm, ElementAccessor< 3 > elm)
 Project point to given element by dimension of this element. More...
 

Protected Attributes

Input::Record in_rec_
 Index in the input array. More...
 
std::string name_
 Observation point name. More...
 
unsigned int snap_dim_
 
string snap_region_name_
 
double max_search_radius_
 
arma::vec3 input_point_
 Input coordinates of the initial position of the observation point. More...
 
ObservePointData observe_data_
 Helper object stored projection data. More...
 

Friends

class Observe
 Only Observe should use this class directly. More...
 

Detailed Description

Class representing single observe point, used internally by the class Observe. Members: input_pos_, snap_dim_, snap_region_name_ are set in constructor. Should be checked before passed in. Members: element_idx_, global_coords_, local_coords_ are derived, set in Observe::find_observe_points.

Definition at line 61 of file observe.hh.

Constructor & Destructor Documentation

ObservePoint::ObservePoint ( )
protected

Default constructor just for testing.

Definition at line 141 of file observe.cc.

ObservePoint::ObservePoint ( Input::Record  in_rec,
Mesh mesh,
unsigned int  point_idx 
)
protected

Constructor. Read from input.

Definition at line 145 of file observe.cc.

Member Function Documentation

ObservePoint::DECLARE_INPUT_EXCEPTION ( ExcNoInitialPoint  ,
<< "Failed to find the element containing the initial observe point.\n"   
)
ObservePoint::DECLARE_INPUT_EXCEPTION ( ExcNoObserveElement  ,
<< "Failed to find the observe element with snap region: "<< EI_RegionName::qval<< " close to the initial observe point. Change maximal distance of observe element."<< "\n"   
)
unsigned int ObservePoint::element_idx ( ) const
inline

Return index of observation point in the mesh.

Definition at line 75 of file observe.hh.

void ObservePoint::find_observe_point ( Mesh mesh)
protected

Find the observe element and the definitive observe point.

Algorithm:

  1. find element containing the point (initial element)
  2. check initial element for region match possibly set it as (observe element)
  3. add neighbours into processing_list for the next level
  4. while we have no observe element: pass through the processing list of the current level
  5. if element match the region, project and clip the init point, update observe element.
  6. snapping on the observe element

Definition at line 201 of file observe.cc.

Here is the caller graph for this function:

const Input::Type::Record & ObservePoint::get_input_type ( )
static

Definition at line 110 of file observe.cc.

Here is the caller graph for this function:

arma::vec3 ObservePoint::global_coords ( ) const
inline

Return global coordinates of the observation point.

Definition at line 81 of file observe.hh.

bool ObservePoint::have_observe_element ( )
protected

Returns true if we have already found any observe element.

Definition at line 167 of file observe.cc.

void ObservePoint::output ( ostream &  out,
unsigned int  indent_spaces,
unsigned int  precision 
)
protected

Output the observe point information into a YAML formated stream, indent by given number of spaces + "- ".

Definition at line 273 of file observe.cc.

ObservePointData ObservePoint::point_projection ( unsigned int  i_elm,
ElementAccessor< 3 >  elm 
)
protected

Project point to given element by dimension of this element.

Definition at line 284 of file observe.cc.

void ObservePoint::snap ( Mesh mesh)
protected

Snap to the center of closest subelement with dimension snap_dim_. This makes final adjustment of global_coords_ and local_coords_.

Definition at line 173 of file observe.cc.

ObservePoint::TYPEDEF_ERR_INFO ( EI_RegionName  ,
std::string   
)

Friends And Related Function Documentation

friend class Observe
friend

Only Observe should use this class directly.

Definition at line 159 of file observe.hh.

Member Data Documentation

Input::Record ObservePoint::in_rec_
protected

Index in the input array.

Definition at line 131 of file observe.hh.

arma::vec3 ObservePoint::input_point_
protected

Input coordinates of the initial position of the observation point.

Definition at line 153 of file observe.hh.

double ObservePoint::max_search_radius_
protected

Maximal distance of observe element from input point.

Definition at line 150 of file observe.hh.

std::string ObservePoint::name_
protected

Observation point name.

Definition at line 134 of file observe.hh.

ObservePointData ObservePoint::observe_data_
protected

Helper object stored projection data.

Definition at line 156 of file observe.hh.

unsigned int ObservePoint::snap_dim_
protected

Snap to the center of the object of given dimension. Value 4 and greater means no snapping.

Definition at line 140 of file observe.hh.

string ObservePoint::snap_region_name_
protected

Region of the snapping element.

Definition at line 145 of file observe.hh.


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