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>
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 ![]() ![]() | |
FullCircleDomain (const FullCircleDomain &) | |
Broken copy constructor. More... | |
void | operator= (const FullCircleDomain &) |
Broken assignment operator. More... | |
~FullCircleDomain () | |
Destructor: Kill all macro elements. 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 |
GeomObject * | Area_pt |
Pointer to geometric object that represents the domain. More... | |
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 73 of file full_circle_domain.h.
|
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 to
; and the corresponding fractions of the radius at which the central box is to be placed.
Definition at line 84 of file full_circle_domain.h.
|
inline |
Broken copy constructor.
Definition at line 102 of file full_circle_domain.h.
|
inline |
Destructor: Kill all macro elements.
Definition at line 115 of file full_circle_domain.h.
References macro_element_boundary().
|
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 152 of file full_circle_domain.h.
Referenced by macro_element_boundary().
void oomph::FullCircleDomain::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).
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 178 of file full_circle_domain.h.
References Area_pt, lin_interpolate(), Radius_box, and Theta_positions.
Referenced by ~FullCircleDomain().
|
inline |
Broken assignment operator.
Definition at line 108 of file full_circle_domain.h.
|
private |
Pointer to geometric object that represents the domain.
Definition at line 146 of file full_circle_domain.h.
Referenced by macro_element_boundary().
|
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 143 of file full_circle_domain.h.
Referenced by macro_element_boundary().
|
private |
Storage for the dividing lines on the boundary starting from the lower left and proceeding anticlockwise to the upper left.
Definition at line 139 of file full_circle_domain.h.
Referenced by macro_element_boundary().