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

Topologically Rectangular Domain - a domain dexcribing a topologically rectangular problem - primarily contains functions to access the position of the global boundary relative to the macro element boundary, as well as first and second derivates of the global boundary wrt the macro element boundary NOTE : suitable for HermiteElementQuadMesh. More...

#include <topologically_rectangular_domain.h>

Inheritance diagram for oomph::TopologicallyRectangularDomain:

Public Types

typedef void(* BoundaryFctPt) (const double &s, Vector< double > &r)
 boundary function pointer - for a given boundary takes the macro element coordinate position on that boundary and for that position returns the global coordinates (x) coordinates, or derivatives - dx_i/dm_t or second derivatives d2x_i/dm_t^2 More...
 

Public Member Functions

 TopologicallyRectangularDomain (BoundaryFctPt north_pt, BoundaryFctPt east_pt, BoundaryFctPt south_pt, BoundaryFctPt west_pt)
 Constructor - domain boundaries are described with four boundary function pointers describing the topology of the north, east, south, and west boundaries. More...
 
 TopologicallyRectangularDomain (const double &l_x, const double &l_y)
 Constructor - takes length of domain in x and y direction as arguements. Assumes domain is rectangular, and the south west (lower left) corner is at 0,0. More...
 
 TopologicallyRectangularDomain (const double &x_min, const double &x_max, const double &y_min, const double &y_max)
 Constructor - takes the minimum and maximum coordinates of the of an assumed rectanguler domain in the x and y direction. More...
 
 TopologicallyRectangularDomain (const TopologicallyRectangularDomain &)
 Broken copy constructor. More...
 
void operator= (const TopologicallyRectangularDomain &)
 Broken assignment operator. More...
 
 ~TopologicallyRectangularDomain ()
 Destructor - deletes the underlying macro element. More...
 
void set_boundary_derivative_functions (BoundaryFctPt d_north_pt, BoundaryFctPt d_east_pt, BoundaryFctPt d_south_pt, BoundaryFctPt d_west_pt)
 allows the boundary derivate function pointers to be set. To compute the derivatives of the problem domain global coordinates (x_i) wrt the macro element coordinates (m_i), dx_i/dm_t is required along the domain boundaries (where dm_t is the macro element coordinate tangential to the domain boundary). The derivatives dx_i/dm_t can either be prescribed with function pointers, or if the function pointers are not provided then dx_i/dm_t is computed with finite differencing. Note - these functions are only required for domains contructed with boundary function pointers More...
 
void set_boundary_second_derivative_functions (BoundaryFctPt d2_north_pt, BoundaryFctPt d2_east_pt, BoundaryFctPt d2_south_pt, BoundaryFctPt d2_west_pt)
 allows the boundary second derivate function pointers to be set. To compute the second derivatives of the problem domain global coordinates (x_i) wrt the macro element coordinates (m_i), d2x_i/dm_t^2 is required along the domain boundaries (where dm_t is the macro element coordinate tangential to the domain boundary). The derivatives d2x_i/dm_t^2 can either be prescribed with function pointers, or if the function pointers are not provided then dx_i/dm_t is computed with finite differencing. Note - these functions are only required for domains contructed with boundary function pointers More...
 
void macro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
void dmacro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
void d2macro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 

Private Member Functions

void r_N (const Vector< double > &s, Vector< double > &f)
 takes the macro element coordinate position along the north boundary and returns the global coordinate position along that boundary More...
 
void r_E (const Vector< double > &s, Vector< double > &f)
 takes the macro element coordinate position along the east boundary and returns the global coordinate position along that boundary More...
 
void r_S (const Vector< double > &s, Vector< double > &f)
 takes the macro element coordinate position along the south boundary and returns the global coordinate position along that boundary More...
 
void r_W (const Vector< double > &s, Vector< double > &f)
 takes the macro element coordinate position along the west boundary and returns the global coordinate position along that boundary access down boundary function pointer More...
 
void dr_N (const Vector< double > &s, Vector< double > &dr)
 takes the macro element coordinate position along the north boundary and returns the derivates of the global coordinates with respect to the boundary More...
 
void dr_E (const Vector< double > &s, Vector< double > &dr)
 takes the macro element coordinate position along the E boundary and returns the derivates of the global coordinates with respect to the boundary More...
 
void dr_S (const Vector< double > &s, Vector< double > &dr)
 takes the macro element coordinate position along the south boundary and returns the derivates of the global coordinates with respect to the boundary More...
 
void dr_W (const Vector< double > &s, Vector< double > &dr)
 takes the macro element coordinate position along the W boundary and returns the derivates of the global coordinates with respect to the boundary More...
 
void d2r_N (const Vector< double > &s, Vector< double > &d2r)
 takes the macro element coordinate position along the north boundary and returns the second derivates of the global coordinates with respect to the boundary More...
 
void d2r_E (const Vector< double > &s, Vector< double > &d2r)
 takes the macro element coordinate position along the east boundary and returns the second derivates of the global coordinates with respect to the boundary More...
 
void d2r_S (const Vector< double > &s, Vector< double > &d2r)
 takes the macro element coordinate position along the south boundary and returns the second derivates of the global coordinates with respect to the boundary More...
 
void d2r_W (const Vector< double > &s, Vector< double > &d2r)
 takes the macro element coordinate position along the west boundary and returns the second derivates of the global coordinates with respect to the boundary More...
 

Private Attributes

BoundaryFctPt North_boundary_fn_pt
 Function pointer to prescribe the north boundary of this topologically rectangular domain. More...
 
BoundaryFctPt East_boundary_fn_pt
 Function pointer to prescribe the east boundary of this topologically rectangular domain. More...
 
BoundaryFctPt South_boundary_fn_pt
 Function pointer to prescribe the north boundary of this topologically rectangular domain. More...
 
BoundaryFctPt West_boundary_fn_pt
 Function pointer to prescribe the west boundary of this topologically rectangular domain. More...
 
BoundaryFctPt dNorth_boundary_fn_pt
 Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate tangential to the north boundary. More...
 
BoundaryFctPt dEast_boundary_fn_pt
 Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate tangential to the east boundary. More...
 
BoundaryFctPt dSouth_boundary_fn_pt
 Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate tangential to the south boundary. More...
 
BoundaryFctPt dWest_boundary_fn_pt
 Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate tangential to the west boundary. More...
 
BoundaryFctPt d2North_boundary_fn_pt
 Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coordinate tangential to the north boundary. More...
 
BoundaryFctPt d2East_boundary_fn_pt
 Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coordinate tangential to the east boundary. More...
 
BoundaryFctPt d2South_boundary_fn_pt
 Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coordinate tangential to the south boundary. More...
 
BoundaryFctPt d2West_boundary_fn_pt
 Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coordinate tangential to the west boundary. More...
 
Vector< double > x_south_west
 coordinate position of south west corner of domain (only used if boundary functions are not used) More...
 
Vector< double > x_north_east
 coordinate position of north east corner of domain (only used if boundary functions are not used) More...
 

Detailed Description

Topologically Rectangular Domain - a domain dexcribing a topologically rectangular problem - primarily contains functions to access the position of the global boundary relative to the macro element boundary, as well as first and second derivates of the global boundary wrt the macro element boundary NOTE : suitable for HermiteElementQuadMesh.

Definition at line 56 of file topologically_rectangular_domain.h.

Member Typedef Documentation

◆ BoundaryFctPt

typedef void(* oomph::TopologicallyRectangularDomain::BoundaryFctPt) (const double &s, Vector< double > &r)

boundary function pointer - for a given boundary takes the macro element coordinate position on that boundary and for that position returns the global coordinates (x) coordinates, or derivatives - dx_i/dm_t or second derivatives d2x_i/dm_t^2

Definition at line 66 of file topologically_rectangular_domain.h.

Constructor & Destructor Documentation

◆ TopologicallyRectangularDomain() [1/4]

oomph::TopologicallyRectangularDomain::TopologicallyRectangularDomain ( BoundaryFctPt  north_pt,
BoundaryFctPt  east_pt,
BoundaryFctPt  south_pt,
BoundaryFctPt  west_pt 
)

Constructor - domain boundaries are described with four boundary function pointers describing the topology of the north, east, south, and west boundaries.

Definition at line 43 of file topologically_rectangular_domain.cc.

Referenced by TopologicallyRectangularDomain().

◆ TopologicallyRectangularDomain() [2/4]

oomph::TopologicallyRectangularDomain::TopologicallyRectangularDomain ( const double &  l_x,
const double &  l_y 
)

Constructor - takes length of domain in x and y direction as arguements. Assumes domain is rectangular, and the south west (lower left) corner is at 0,0.

Definition at line 161 of file topologically_rectangular_domain.cc.

References TopologicallyRectangularDomain().

◆ TopologicallyRectangularDomain() [3/4]

oomph::TopologicallyRectangularDomain::TopologicallyRectangularDomain ( const double &  x_min,
const double &  x_max,
const double &  y_min,
const double &  y_max 
)

Constructor - takes the minimum and maximum coordinates of the of an assumed rectanguler domain in the x and y direction.

Definition at line 205 of file topologically_rectangular_domain.cc.

References set_boundary_derivative_functions().

◆ TopologicallyRectangularDomain() [4/4]

oomph::TopologicallyRectangularDomain::TopologicallyRectangularDomain ( const TopologicallyRectangularDomain )
inline

Broken copy constructor.

Definition at line 89 of file topologically_rectangular_domain.h.

◆ ~TopologicallyRectangularDomain()

oomph::TopologicallyRectangularDomain::~TopologicallyRectangularDomain ( )
inline

Member Function Documentation

◆ d2macro_element_boundary()

void oomph::TopologicallyRectangularDomain::d2macro_element_boundary ( const unsigned &  t,
const unsigned &  i_macro,
const unsigned &  i_direct,
const Vector< double > &  s,
Vector< double > &  f 
)

returns the second derivates of the global coordinate position (f) wrt to the macro element coordinate at macro macro element position s on boundary i_direct (e.g. N/S/W/E in 2D) at time t (no time dependence)

Definition at line 363 of file topologically_rectangular_domain.cc.

Referenced by dmacro_element_boundary(), and ~TopologicallyRectangularDomain().

◆ d2r_E()

void oomph::TopologicallyRectangularDomain::d2r_E ( const Vector< double > &  s,
Vector< double > &  d2r 
)
private

takes the macro element coordinate position along the east boundary and returns the second derivates of the global coordinates with respect to the boundary

Definition at line 667 of file topologically_rectangular_domain.cc.

◆ d2r_N()

void oomph::TopologicallyRectangularDomain::d2r_N ( const Vector< double > &  s,
Vector< double > &  d2r 
)
private

takes the macro element coordinate position along the north boundary and returns the second derivates of the global coordinates with respect to the boundary

Definition at line 614 of file topologically_rectangular_domain.cc.

◆ d2r_S()

void oomph::TopologicallyRectangularDomain::d2r_S ( const Vector< double > &  s,
Vector< double > &  d2r 
)
private

takes the macro element coordinate position along the south boundary and returns the second derivates of the global coordinates with respect to the boundary

Definition at line 720 of file topologically_rectangular_domain.cc.

◆ d2r_W()

void oomph::TopologicallyRectangularDomain::d2r_W ( const Vector< double > &  s,
Vector< double > &  d2r 
)
private

takes the macro element coordinate position along the west boundary and returns the second derivates of the global coordinates with respect to the boundary

Definition at line 773 of file topologically_rectangular_domain.cc.

◆ dmacro_element_boundary()

void oomph::TopologicallyRectangularDomain::dmacro_element_boundary ( const unsigned &  t,
const unsigned &  i_macro,
const unsigned &  i_direct,
const Vector< double > &  s,
Vector< double > &  f 
)

returns the derivates of the global coordinate position (f) wrt to the macro element coordinate at macro macro element position s on boundary i_direct (e.g. N/S/W/E in 2D) at time t (no time dependence)

Definition at line 329 of file topologically_rectangular_domain.cc.

References d2macro_element_boundary().

Referenced by macro_element_boundary(), and ~TopologicallyRectangularDomain().

◆ dr_E()

void oomph::TopologicallyRectangularDomain::dr_E ( const Vector< double > &  s,
Vector< double > &  dr 
)
private

takes the macro element coordinate position along the E boundary and returns the derivates of the global coordinates with respect to the boundary

Definition at line 506 of file topologically_rectangular_domain.cc.

◆ dr_N()

void oomph::TopologicallyRectangularDomain::dr_N ( const Vector< double > &  s,
Vector< double > &  dr 
)
private

takes the macro element coordinate position along the north boundary and returns the derivates of the global coordinates with respect to the boundary

Definition at line 470 of file topologically_rectangular_domain.cc.

◆ dr_S()

void oomph::TopologicallyRectangularDomain::dr_S ( const Vector< double > &  s,
Vector< double > &  dr 
)
private

takes the macro element coordinate position along the south boundary and returns the derivates of the global coordinates with respect to the boundary

Definition at line 542 of file topologically_rectangular_domain.cc.

◆ dr_W()

void oomph::TopologicallyRectangularDomain::dr_W ( const Vector< double > &  s,
Vector< double > &  dr 
)
private

takes the macro element coordinate position along the W boundary and returns the derivates of the global coordinates with respect to the boundary

Definition at line 578 of file topologically_rectangular_domain.cc.

◆ macro_element_boundary()

void oomph::TopologicallyRectangularDomain::macro_element_boundary ( const unsigned &  t,
const unsigned &  i_macro,
const unsigned &  i_direct,
const Vector< double > &  s,
Vector< double > &  f 
)

returns the global coordinate position (f) of macro element position s on boundary i_direct (e.g. N/S/W/E in 2D) at time t (no time dependence)

Definition at line 295 of file topologically_rectangular_domain.cc.

References dmacro_element_boundary().

Referenced by set_boundary_second_derivative_functions(), and ~TopologicallyRectangularDomain().

◆ operator=()

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

Broken assignment operator.

Definition at line 96 of file topologically_rectangular_domain.h.

◆ r_E()

void oomph::TopologicallyRectangularDomain::r_E ( const Vector< double > &  s,
Vector< double > &  f 
)
private

takes the macro element coordinate position along the east boundary and returns the global coordinate position along that boundary

Definition at line 414 of file topologically_rectangular_domain.cc.

◆ r_N()

void oomph::TopologicallyRectangularDomain::r_N ( const Vector< double > &  s,
Vector< double > &  f 
)
private

takes the macro element coordinate position along the north boundary and returns the global coordinate position along that boundary

Definition at line 396 of file topologically_rectangular_domain.cc.

◆ r_S()

void oomph::TopologicallyRectangularDomain::r_S ( const Vector< double > &  s,
Vector< double > &  f 
)
private

takes the macro element coordinate position along the south boundary and returns the global coordinate position along that boundary

Definition at line 432 of file topologically_rectangular_domain.cc.

◆ r_W()

void oomph::TopologicallyRectangularDomain::r_W ( const Vector< double > &  s,
Vector< double > &  f 
)
private

takes the macro element coordinate position along the west boundary and returns the global coordinate position along that boundary access down boundary function pointer

Definition at line 451 of file topologically_rectangular_domain.cc.

◆ set_boundary_derivative_functions()

void oomph::TopologicallyRectangularDomain::set_boundary_derivative_functions ( BoundaryFctPt  d_north_pt,
BoundaryFctPt  d_east_pt,
BoundaryFctPt  d_south_pt,
BoundaryFctPt  d_west_pt 
)

allows the boundary derivate function pointers to be set. To compute the derivatives of the problem domain global coordinates (x_i) wrt the macro element coordinates (m_i), dx_i/dm_t is required along the domain boundaries (where dm_t is the macro element coordinate tangential to the domain boundary). The derivatives dx_i/dm_t can either be prescribed with function pointers, or if the function pointers are not provided then dx_i/dm_t is computed with finite differencing. Note - these functions are only required for domains contructed with boundary function pointers

Definition at line 255 of file topologically_rectangular_domain.cc.

References set_boundary_second_derivative_functions().

Referenced by TopologicallyRectangularDomain(), and ~TopologicallyRectangularDomain().

◆ set_boundary_second_derivative_functions()

void oomph::TopologicallyRectangularDomain::set_boundary_second_derivative_functions ( BoundaryFctPt  d2_north_pt,
BoundaryFctPt  d2_east_pt,
BoundaryFctPt  d2_south_pt,
BoundaryFctPt  d2_west_pt 
)

allows the boundary second derivate function pointers to be set. To compute the second derivatives of the problem domain global coordinates (x_i) wrt the macro element coordinates (m_i), d2x_i/dm_t^2 is required along the domain boundaries (where dm_t is the macro element coordinate tangential to the domain boundary). The derivatives d2x_i/dm_t^2 can either be prescribed with function pointers, or if the function pointers are not provided then dx_i/dm_t is computed with finite differencing. Note - these functions are only required for domains contructed with boundary function pointers

Definition at line 279 of file topologically_rectangular_domain.cc.

References macro_element_boundary().

Referenced by set_boundary_derivative_functions(), and ~TopologicallyRectangularDomain().

Member Data Documentation

◆ d2East_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::d2East_boundary_fn_pt
private

Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coordinate tangential to the east boundary.

Definition at line 214 of file topologically_rectangular_domain.h.

◆ d2North_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::d2North_boundary_fn_pt
private

Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coordinate tangential to the north boundary.

Definition at line 209 of file topologically_rectangular_domain.h.

◆ d2South_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::d2South_boundary_fn_pt
private

Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coordinate tangential to the south boundary.

Definition at line 219 of file topologically_rectangular_domain.h.

◆ d2West_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::d2West_boundary_fn_pt
private

Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coordinate tangential to the west boundary.

Definition at line 224 of file topologically_rectangular_domain.h.

◆ dEast_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::dEast_boundary_fn_pt
private

Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate tangential to the east boundary.

Definition at line 195 of file topologically_rectangular_domain.h.

◆ dNorth_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::dNorth_boundary_fn_pt
private

Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate tangential to the north boundary.

Definition at line 191 of file topologically_rectangular_domain.h.

◆ dSouth_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::dSouth_boundary_fn_pt
private

Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate tangential to the south boundary.

Definition at line 199 of file topologically_rectangular_domain.h.

◆ dWest_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::dWest_boundary_fn_pt
private

Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate tangential to the west boundary.

Definition at line 203 of file topologically_rectangular_domain.h.

◆ East_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::East_boundary_fn_pt
private

Function pointer to prescribe the east boundary of this topologically rectangular domain.

Definition at line 178 of file topologically_rectangular_domain.h.

◆ North_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::North_boundary_fn_pt
private

Function pointer to prescribe the north boundary of this topologically rectangular domain.

Definition at line 174 of file topologically_rectangular_domain.h.

◆ South_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::South_boundary_fn_pt
private

Function pointer to prescribe the north boundary of this topologically rectangular domain.

Definition at line 182 of file topologically_rectangular_domain.h.

◆ West_boundary_fn_pt

BoundaryFctPt oomph::TopologicallyRectangularDomain::West_boundary_fn_pt
private

Function pointer to prescribe the west boundary of this topologically rectangular domain.

Definition at line 186 of file topologically_rectangular_domain.h.

◆ x_north_east

Vector<double> oomph::TopologicallyRectangularDomain::x_north_east
private

coordinate position of north east corner of domain (only used if boundary functions are not used)

Definition at line 233 of file topologically_rectangular_domain.h.

◆ x_south_west

Vector<double> oomph::TopologicallyRectangularDomain::x_south_west
private

coordinate position of south west corner of domain (only used if boundary functions are not used)

Definition at line 229 of file topologically_rectangular_domain.h.


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