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 &)=delete
 Broken copy constructor. More...
 
void operator= (const QuarterCircleSectorDomain &)=delete
 Broken assignment operator. More...
 
 ~QuarterCircleSectorDomain ()
 Destructor: empty; cleanup done in base class. 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 &)=delete
 Broken copy constructor. More...
 
void operator= (const Domain &)=delete
 Broken assignment operator. More...
 
virtual ~Domain ()
 Destructor: Strictly speaking, whoever creates an object dynamically should be responsible for the cleanup of said object but it makes sense here for the Domain to generically kill any MacroElements left over in the MacroElement container (if it hasn't already been done in the derived class) to avoid memory leaks. 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...
 
virtual void macro_element_boundary (const double &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 (e.g. N/S/W/E in 2D) at continuous time, t. 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...
 
virtual void dmacro_element_boundary (const double &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 continuous time level t. 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...
 
virtual void d2macro_element_boundary (const double &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 seocond derivatives i_direct (e.g. N/S/W/E in 2D) at continuous time level t. 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 42 of file quarter_circle_sector_domain.h.

Member Typedef Documentation

◆ BLSquashFctPt

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 84 of file quarter_circle_sector_domain.h.

Constructor & Destructor Documentation

◆ QuarterCircleSectorDomain() [1/2]

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 47 of file quarter_circle_sector_domain.h.

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

◆ QuarterCircleSectorDomain() [2/2]

oomph::QuarterCircleSectorDomain::QuarterCircleSectorDomain ( const QuarterCircleSectorDomain )
delete

Broken copy constructor.

◆ ~QuarterCircleSectorDomain()

oomph::QuarterCircleSectorDomain::~QuarterCircleSectorDomain ( )
inline

Destructor: empty; cleanup done in base class.

Definition at line 78 of file quarter_circle_sector_domain.h.

Member Function Documentation

◆ bl_squash_fct_pt()

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 91 of file quarter_circle_sector_domain.h.

References BL_squash_fct_pt.

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

◆ default_BL_squash_fct()

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 142 of file quarter_circle_sector_domain.h.

References s.

◆ macro_element_boundary()

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 219 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(), s, oomph::QuadTreeNames::S, t, and oomph::QuadTreeNames::W.

◆ operator=()

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

Broken assignment operator.

◆ r_bot_right_E()

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 505 of file quarter_circle_sector_domain.h.

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

Referenced by macro_element_boundary().

◆ r_bot_right_N()

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 451 of file quarter_circle_sector_domain.h.

References r_top_left_E(), s, and t.

Referenced by macro_element_boundary().

◆ r_bot_right_S()

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 486 of file quarter_circle_sector_domain.h.

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

Referenced by macro_element_boundary().

◆ r_bot_right_W()

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 461 of file quarter_circle_sector_domain.h.

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

Referenced by macro_element_boundary(), and r_centr_E().

◆ 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 532 of file quarter_circle_sector_domain.h.

References r_bot_right_W(), s, and t.

Referenced by macro_element_boundary().

◆ r_centr_N()

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 521 of file quarter_circle_sector_domain.h.

References r_top_left_S(), s, and t.

Referenced by macro_element_boundary().

◆ r_centr_S()

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 543 of file quarter_circle_sector_domain.h.

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

Referenced by macro_element_boundary().

◆ r_centr_W()

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 562 of file quarter_circle_sector_domain.h.

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

Referenced by macro_element_boundary().

◆ r_top_left_E()

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 417 of file quarter_circle_sector_domain.h.

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

Referenced by macro_element_boundary(), and r_bot_right_N().

◆ r_top_left_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 354 of file quarter_circle_sector_domain.h.

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

Referenced by macro_element_boundary().

◆ r_top_left_S()

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 390 of file quarter_circle_sector_domain.h.

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

Referenced by macro_element_boundary(), and r_centr_N().

◆ r_top_left_W()

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 370 of file quarter_circle_sector_domain.h.

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

Referenced by macro_element_boundary().

◆ s_squashed()

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 100 of file quarter_circle_sector_domain.h.

References BL_squash_fct_pt, and s.

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

Member Data Documentation

◆ BL_squash_fct_pt

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 136 of file quarter_circle_sector_domain.h.

Referenced by bl_squash_fct_pt(), and s_squashed().

◆ Fract_mid

double oomph::QuarterCircleSectorDomain::Fract_mid
private

Fraction along wall where outer ring is to be divided.

Definition at line 124 of file quarter_circle_sector_domain.h.

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

◆ Wall_pt

GeomObject* oomph::QuarterCircleSectorDomain::Wall_pt
private

Pointer to geometric object that represents the curved wall.

Definition at line 130 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().

◆ Xi_hi

double oomph::QuarterCircleSectorDomain::Xi_hi
private

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

Definition at line 127 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().

◆ Xi_lo

double oomph::QuarterCircleSectorDomain::Xi_lo
private

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

Definition at line 121 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: