Public Member Functions | Private Member Functions | Private Attributes | List of all members
oomph::FullCircleDomain Class Reference

Topologically circular domain, e.g. a tube cross section. The entire domain must be defined by a GeomObject with the following convention: zeta[0] is the radial coordinate and zeta[1] is the theta coordinate around the cross-sectin. The outer boundary must lie at zeta[0] = 1. More...

#include <full_circle_domain.h>

Inheritance diagram for oomph::FullCircleDomain:

Public Member Functions

 FullCircleDomain (GeomObject *area_geom_object_pt, const Vector< double > &theta_positions, const Vector< double > &radius_box)
 Constructor: Pass geometric object; the theta locations marking the division between the elements of the outer ring, labelled from the lower left to the upper left in order, theta should be in the range $-\pi$ to $\pi$; and the corresponding fractions of the radius at which the central box is to be placed. More...
 
 FullCircleDomain (const FullCircleDomain &)=delete
 Broken copy constructor. More...
 
void operator= (const FullCircleDomain &)=delete
 Broken assignment operator. More...
 
 ~FullCircleDomain ()
 Destructor: Empty; cleanup done in base class. More...
 
void macro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 Vector representation of the i_macro-th macro element boundary i_direct (N/S/W/E) at time level t (t=0: present; t>0: previous): f(s). More...
 

Private Member Functions

void lin_interpolate (const Vector< double > &low, const Vector< double > &high, const double &s, Vector< double > &f)
 A very little linear interpolation helper. Interpolate from the low point to the high point using the coordinate s, which is assumed to run from -1 to 1. More...
 

Private Attributes

Vector< double > Theta_positions
 Storage for the dividing lines on the boundary starting from the lower left and proceeding anticlockwise to the upper left. More...
 
Vector< double > Radius_box
 Storage for the fraction of the radius at which the central box should be located corresponding to the chosen values of theta. More...
 
GeomObject * Area_pt
 Pointer to geometric object that represents the domain. More...
 

Detailed Description

Topologically circular domain, e.g. a tube cross section. The entire domain must be defined by a GeomObject with the following convention: zeta[0] is the radial coordinate and zeta[1] is the theta coordinate around the cross-sectin. The outer boundary must lie at zeta[0] = 1.

The domain is parametrised by five macro elements (a central box surrounded by four curved elements). The labelling of the macro elements is shown below.


|\ /| | \ Macro / | | 3 Element 3 2 | | \ / | | -------------—/ | | | | | | 4 | Macro | | | | Element 0 | 2 | | | | | | --------------— | | / \ | | 0 Macro 1 | | / Element 1 \ | | / | |/----------------------—|

Definition at line 68 of file full_circle_domain.h.

Constructor & Destructor Documentation

◆ FullCircleDomain() [1/2]

oomph::FullCircleDomain::FullCircleDomain ( GeomObject *  area_geom_object_pt,
const Vector< double > &  theta_positions,
const Vector< double > &  radius_box 
)
inline

Constructor: Pass geometric object; the theta locations marking the division between the elements of the outer ring, labelled from the lower left to the upper left in order, theta should be in the range $-\pi$ to $\pi$; and the corresponding fractions of the radius at which the central box is to be placed.

Definition at line 77 of file full_circle_domain.h.

◆ FullCircleDomain() [2/2]

oomph::FullCircleDomain::FullCircleDomain ( const FullCircleDomain )
delete

Broken copy constructor.

◆ ~FullCircleDomain()

oomph::FullCircleDomain::~FullCircleDomain ( )
inline

Destructor: Empty; cleanup done in base class.

Definition at line 103 of file full_circle_domain.h.

Member Function Documentation

◆ lin_interpolate()

void oomph::FullCircleDomain::lin_interpolate ( const Vector< double > &  low,
const Vector< double > &  high,
const double &  s,
Vector< double > &  f 
)
inlineprivate

A very little linear interpolation helper. Interpolate from the low point to the high point using the coordinate s, which is assumed to run from -1 to 1.

Definition at line 133 of file full_circle_domain.h.

Referenced by macro_element_boundary().

◆ macro_element_boundary()

void oomph::FullCircleDomain::macro_element_boundary ( const unsigned &  t,
const unsigned &  imacro,
const unsigned &  idirect,
const Vector< double > &  s,
Vector< double > &  f 
)

Vector representation of the i_macro-th macro element boundary i_direct (N/S/W/E) at time level t (t=0: present; t>0: previous): f(s).

////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

Vector representation of the imacro-th macro element boundary idirect (N/S/W/E) at time level t (t=0: present; t>0: previous): f(s)

Definition at line 157 of file full_circle_domain.h.

References Area_pt, lin_interpolate(), Radius_box, and Theta_positions.

◆ operator=()

void oomph::FullCircleDomain::operator= ( const FullCircleDomain )
delete

Broken assignment operator.

Member Data Documentation

◆ Area_pt

GeomObject* oomph::FullCircleDomain::Area_pt
private

Pointer to geometric object that represents the domain.

Definition at line 127 of file full_circle_domain.h.

Referenced by macro_element_boundary().

◆ Radius_box

Vector<double> oomph::FullCircleDomain::Radius_box
private

Storage for the fraction of the radius at which the central box should be located corresponding to the chosen values of theta.

Definition at line 124 of file full_circle_domain.h.

Referenced by macro_element_boundary().

◆ Theta_positions

Vector<double> oomph::FullCircleDomain::Theta_positions
private

Storage for the dividing lines on the boundary starting from the lower left and proceeding anticlockwise to the upper left.

Definition at line 120 of file full_circle_domain.h.

Referenced by macro_element_boundary().


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