Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
oomph::QuarterCircleSectorDomain Class Reference

Circular sector as domain. Domain is bounded by curved boundary which is represented by a GeomObject. Domain is parametrised by three macro elements. More...

#include <quarter_circle_sector_domain.h>

+ Inheritance diagram for oomph::QuarterCircleSectorDomain:

Public Types

typedef double(* BLSquashFctPt )(const double &s)
 Typedef for function pointer for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value. More...
 

Public Member Functions

 QuarterCircleSectorDomain (GeomObject *boundary_geom_object_pt, const double &xi_lo, const double &fract_mid, const double &xi_hi)
 Constructor: Pass boundary object and start and end coordinates and fraction along boundary object where outer ring is divided. More...
 
 QuarterCircleSectorDomain (const QuarterCircleSectorDomain &)
 Broken copy constructor. More...
 
void operator= (const QuarterCircleSectorDomain &)
 Broken assignment operator. More...
 
 ~QuarterCircleSectorDomain ()
 Destructor: Kill macro elements. More...
 
BLSquashFctPtbl_squash_fct_pt ()
 Function pointer for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value. More...
 
double s_squashed (const double &s)
 Function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value. 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). Note that the local coordinate s is a 1D Vector rather than a scalar – this is unavoidable because this function implements the pure virtual function in the Domain base class. More...
 
- Public Member Functions inherited from oomph::Domain
 Domain ()
 Constructor. More...
 
 Domain (const Domain &)
 Broken copy constructor. More...
 
void operator= (const Domain &)
 Broken assignment operator. More...
 
virtual ~Domain ()
 Virtual destructor: Empty. More...
 
MacroElementmacro_element_pt (const unsigned &i)
 Access to i-th macro element. More...
 
unsigned nmacro_element ()
 Number of macro elements in domain. More...
 
void output (const std::string &filename, const unsigned &nplot)
 Output macro elements. More...
 
void output (std::ostream &outfile, const unsigned &nplot)
 Output macro elements. More...
 
void macro_element_boundary (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 (e.g. N/S/W/E in 2D) at current time: f(s). More...
 
void output_macro_element_boundaries (const std::string &filename, const unsigned &nplot)
 Output all macro element boundaries as tecplot zones. More...
 
void output_macro_element_boundaries (std::ostream &outfile, const unsigned &nplot)
 Output all macro element boundaries as tecplot zones. More...
 
virtual void dmacro_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 derivatives i_direct (e.g. N/S/W/E in 2D) at time level t (t=0: present; t>0: previous): f(s). Broken virtual. More...
 
void dmacro_element_boundary (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 derivatives i_direct (e.g. N/S/W/E in 2D) at current time: f(s). More...
 
virtual void d2macro_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 second derivatives i_direct (e.g. N/S/W/E in 2D) at time level t (t=0: present; t>0: previous): f(s). Broken virtual. More...
 
void d2macro_element_boundary (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 second derivatives i_direct (e.g. N/S/W/E in 2D) at current time: f(s). More...
 

Private Member Functions

void r_top_left_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of top left macro element zeta $ \in [-1,1] $. More...
 
void r_top_left_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of top left macro element zeta $ \in [-1,1] $. More...
 
void r_top_left_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of top left macro element zeta $ \in [-1,1] $. More...
 
void r_top_left_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of top left macro element zeta $ \in [-1,1] $. More...
 
void r_bot_right_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of bottom right macro element zeta $ \in [-1,1] $. More...
 
void r_bot_right_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of bottom right macro element zeta $ \in [-1,1] $. More...
 
void r_bot_right_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of bottom right macro element zeta $ \in [-1,1] $. More...
 
void r_bot_right_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of bottom right macro element zeta $ \in [-1,1] $. More...
 
void r_centr_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of central box macro element zeta $ \in [-1,1] $. More...
 
void r_centr_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of central box macro element zeta $ \in [-1,1] $. More...
 
void r_centr_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of central box macro element zeta $ \in [-1,1] $. More...
 
void r_centr_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of central box macro element zeta $ \in [-1,1] $. More...
 

Static Private Member Functions

static double default_BL_squash_fct (const double &s)
 Default for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value: Identity. More...
 

Private Attributes

double Xi_lo
 Lower limit for the (1D) coordinates along the wall. More...
 
double Fract_mid
 Fraction along wall where outer ring is to be divided. More...
 
double Xi_hi
 Upper limit for the (1D) coordinates along the wall. More...
 
GeomObjectWall_pt
 Pointer to geometric object that represents the curved wall. More...
 
BLSquashFctPt BL_squash_fct_pt
 Function pointer for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value. More...
 

Additional Inherited Members

- Protected Attributes inherited from oomph::Domain
Vector< MacroElement * > Macro_element_pt
 Vector of pointers to macro elements. More...
 

Detailed Description

Circular sector as domain. Domain is bounded by curved boundary which is represented by a GeomObject. Domain is parametrised by three macro elements.

Definition at line 50 of file quarter_circle_sector_domain.h.

Member Typedef Documentation

typedef double(* oomph::QuarterCircleSectorDomain::BLSquashFctPt)(const double &s)

Typedef for function pointer for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value.

Definition at line 106 of file quarter_circle_sector_domain.h.

Constructor & Destructor Documentation

oomph::QuarterCircleSectorDomain::QuarterCircleSectorDomain ( GeomObject boundary_geom_object_pt,
const double &  xi_lo,
const double &  fract_mid,
const double &  xi_hi 
)
inline

Constructor: Pass boundary object and start and end coordinates and fraction along boundary object where outer ring is divided.

Definition at line 59 of file quarter_circle_sector_domain.h.

References i, and oomph::Domain::Macro_element_pt.

oomph::QuarterCircleSectorDomain::QuarterCircleSectorDomain ( const QuarterCircleSectorDomain )
inline

Broken copy constructor.

Definition at line 81 of file quarter_circle_sector_domain.h.

References oomph::BrokenCopy::broken_copy().

oomph::QuarterCircleSectorDomain::~QuarterCircleSectorDomain ( )
inline

Destructor: Kill macro elements.

Definition at line 94 of file quarter_circle_sector_domain.h.

References i, and oomph::Domain::Macro_element_pt.

Member Function Documentation

BLSquashFctPt& oomph::QuarterCircleSectorDomain::bl_squash_fct_pt ( )
inline

Function pointer for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value.

Definition at line 113 of file quarter_circle_sector_domain.h.

References BL_squash_fct_pt.

Referenced by oomph::QuarterCircleSectorMesh< ELEMENT >::bl_squash_fct_pt().

static double oomph::QuarterCircleSectorDomain::default_BL_squash_fct ( const double &  s)
inlinestaticprivate

Default for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value: Identity.

Definition at line 165 of file quarter_circle_sector_domain.h.

References s.

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

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). Note that the local coordinate s is a 1D Vector rather than a scalar – this is unavoidable because this function implements the pure virtual function in the Domain base class.

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)

Implements oomph::Domain.

Definition at line 233 of file quarter_circle_sector_domain.h.

References oomph::QuadTreeNames::E, oomph::QuadTreeNames::N, r_bot_right_E(), r_bot_right_N(), r_bot_right_S(), r_bot_right_W(), r_centr_E(), r_centr_N(), r_centr_S(), r_centr_W(), r_top_left_E(), r_top_left_N(), r_top_left_S(), r_top_left_W(), oomph::QuadTreeNames::S, and oomph::QuadTreeNames::W.

void oomph::QuarterCircleSectorDomain::operator= ( const QuarterCircleSectorDomain )
inline

Broken assignment operator.

Definition at line 87 of file quarter_circle_sector_domain.h.

References oomph::BrokenCopy::broken_assign().

void oomph::QuarterCircleSectorDomain::r_bot_right_E ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of bottom right macro element zeta $ \in [-1,1] $.

Eastern edge of bottom right macro element.

Definition at line 538 of file quarter_circle_sector_domain.h.

References Fract_mid, oomph::GeomObject::position(), Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

void oomph::QuarterCircleSectorDomain::r_bot_right_N ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of bottom right macro element zeta $ \in [-1,1] $.

Northern edge of bottom right macro element.

Definition at line 483 of file quarter_circle_sector_domain.h.

References r_top_left_E().

Referenced by macro_element_boundary().

void oomph::QuarterCircleSectorDomain::r_bot_right_S ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of bottom right macro element zeta $ \in [-1,1] $.

Southern edge of bottom right macro element.

Definition at line 518 of file quarter_circle_sector_domain.h.

References oomph::GeomObject::position(), s_squashed(), Wall_pt, and Xi_lo.

Referenced by macro_element_boundary().

void oomph::QuarterCircleSectorDomain::r_bot_right_W ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of bottom right macro element zeta $ \in [-1,1] $.

Western edge of bottom right macro element.

Definition at line 493 of file quarter_circle_sector_domain.h.

References oomph::GeomObject::position(), Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary(), and r_centr_E().

void oomph::QuarterCircleSectorDomain::r_centr_E ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of central box macro element zeta $ \in [-1,1] $.

Eastern edge of central box.

Definition at line 568 of file quarter_circle_sector_domain.h.

References r_bot_right_W().

Referenced by macro_element_boundary().

void oomph::QuarterCircleSectorDomain::r_centr_N ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of central box macro element zeta $ \in [-1,1] $.

Northern edge of central box.

Definition at line 555 of file quarter_circle_sector_domain.h.

References r_top_left_S().

Referenced by macro_element_boundary().

void oomph::QuarterCircleSectorDomain::r_centr_S ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of central box macro element zeta $ \in [-1,1] $.

Southern edge of central box.

Definition at line 581 of file quarter_circle_sector_domain.h.

References oomph::GeomObject::position(), Wall_pt, and Xi_lo.

Referenced by macro_element_boundary().

void oomph::QuarterCircleSectorDomain::r_centr_W ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of central box macro element zeta $ \in [-1,1] $.

Western edge of central box.

Definition at line 602 of file quarter_circle_sector_domain.h.

References oomph::GeomObject::position(), Wall_pt, and Xi_hi.

Referenced by macro_element_boundary().

void oomph::QuarterCircleSectorDomain::r_top_left_E ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of top left macro element zeta $ \in [-1,1] $.

Eastern edge of top left macro element $ s \in [-1,1] $.

Definition at line 446 of file quarter_circle_sector_domain.h.

References Fract_mid, oomph::GeomObject::position(), s_squashed(), Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary(), and r_bot_right_N().

void oomph::QuarterCircleSectorDomain::r_top_left_N ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of top left macro element zeta $ \in [-1,1] $.

Northern edge of top left macro element $ s \in [-1,1] $.

Definition at line 378 of file quarter_circle_sector_domain.h.

References Fract_mid, oomph::GeomObject::position(), Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

void oomph::QuarterCircleSectorDomain::r_top_left_S ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of top left macro element zeta $ \in [-1,1] $.

Southern edge of top left macro element $ s \in [-1,1] $.

Definition at line 417 of file quarter_circle_sector_domain.h.

References oomph::GeomObject::position(), Wall_pt, and Xi_hi.

Referenced by macro_element_boundary(), and r_centr_N().

void oomph::QuarterCircleSectorDomain::r_top_left_W ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of top left macro element zeta $ \in [-1,1] $.

Western edge of top left macro element $s \in [-1,1] $.

Definition at line 396 of file quarter_circle_sector_domain.h.

References oomph::GeomObject::position(), s_squashed(), Wall_pt, and Xi_hi.

Referenced by macro_element_boundary().

double oomph::QuarterCircleSectorDomain::s_squashed ( const double &  s)
inline

Function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value.

Definition at line 122 of file quarter_circle_sector_domain.h.

References BL_squash_fct_pt.

Referenced by r_bot_right_S(), r_top_left_E(), and r_top_left_W().

Member Data Documentation

BLSquashFctPt oomph::QuarterCircleSectorDomain::BL_squash_fct_pt
private

Function pointer for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value.

Definition at line 159 of file quarter_circle_sector_domain.h.

Referenced by bl_squash_fct_pt(), and s_squashed().

double oomph::QuarterCircleSectorDomain::Fract_mid
private

Fraction along wall where outer ring is to be divided.

Definition at line 147 of file quarter_circle_sector_domain.h.

Referenced by r_bot_right_E(), r_top_left_E(), and r_top_left_N().

GeomObject* oomph::QuarterCircleSectorDomain::Wall_pt
private

Pointer to geometric object that represents the curved wall.

Definition at line 153 of file quarter_circle_sector_domain.h.

Referenced by r_bot_right_E(), r_bot_right_S(), r_bot_right_W(), r_centr_S(), r_centr_W(), r_top_left_E(), r_top_left_N(), r_top_left_S(), and r_top_left_W().

double oomph::QuarterCircleSectorDomain::Xi_hi
private

Upper limit for the (1D) coordinates along the wall.

Definition at line 150 of file quarter_circle_sector_domain.h.

Referenced by r_bot_right_E(), r_bot_right_W(), r_centr_W(), r_top_left_E(), r_top_left_N(), r_top_left_S(), and r_top_left_W().

double oomph::QuarterCircleSectorDomain::Xi_lo
private

Lower limit for the (1D) coordinates along the wall.

Definition at line 144 of file quarter_circle_sector_domain.h.

Referenced by r_bot_right_E(), r_bot_right_S(), r_bot_right_W(), r_centr_S(), r_top_left_E(), and r_top_left_N().


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