31 #ifndef OOMPH_TOPOLOGICALLY_RECTANGULAR_DOMAIN_HEADER    32 #define OOMPH_TOPOLOGICALLY_RECTANGULAR_DOMAIN_HEADER    37   #include <oomph-lib-config.h>    42 #include "../generic/domain.h"    85                                 const double& y_min, 
const double& y_max);
    91    BrokenCopy::broken_copy(
"TopologicallyRectangularDomain");
    98    BrokenCopy::broken_assign(
"TopologicallyRectangularDomain");
   105    delete Macro_element_pt[0];
   106    Macro_element_pt[0] = 0;
   144                              const unsigned& i_macro, 
   145                              const unsigned& i_direct,
   146                              const Vector<double>& s,
   154                               const unsigned& i_macro, 
   155                               const unsigned& i_direct,
   156                               const Vector<double>& s,
   164                                const unsigned& i_macro, 
   165                                const unsigned& i_direct,
   166                                const Vector<double>& s,
   238  void r_N(
const Vector<double>& s, Vector<double>& f);
   242  void r_E(
const Vector<double>& s, Vector<double>& f);
   246  void r_S(
const Vector<double>& s, Vector<double>& f);
   251  void r_W(
const Vector<double>& s, Vector<double>& f);
   257  void dr_N(
const Vector<double>& s, Vector<double>& dr);
   262  void dr_E(
const Vector<double>& s, Vector<double>& dr);
   267  void dr_S(
const Vector<double>& s, Vector<double>& dr);
   272  void dr_W(
const Vector<double>& s, Vector<double>& dr);
   278  void d2r_N(
const Vector<double>& s, Vector<double>& d2r);
   283  void d2r_E(
const Vector<double>& s, Vector<double>& d2r);
   288  void d2r_S(
const Vector<double>& s, Vector<double>& d2r);
   293  void d2r_W(
const Vector<double>& s, Vector<double>& d2r);
 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...
 
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 d...
 
BoundaryFctPt d2East_boundary_fn_pt
Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coo...
 
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 glo...
 
BoundaryFctPt d2North_boundary_fn_pt
Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coo...
 
BoundaryFctPt dSouth_boundary_fn_pt
Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate...
 
TopologicallyRectangularDomain(const TopologicallyRectangularDomain &)
Broken copy constructor. 
 
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 glo...
 
BoundaryFctPt dEast_boundary_fn_pt
Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate...
 
void dmacro_element_boundary(const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
BoundaryFctPt West_boundary_fn_pt
Function pointer to prescribe the west boundary of this topologically rectangular domain...
 
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...
 
BoundaryFctPt dWest_boundary_fn_pt
Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate...
 
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 ...
 
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...
 
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 top...
 
BoundaryFctPt South_boundary_fn_pt
Function pointer to prescribe the north boundary of this topologically rectangular domain...
 
BoundaryFctPt dNorth_boundary_fn_pt
Function pointer to prescribe the derivates of global coordinates wrt to the macro element coordinate...
 
void operator=(const TopologicallyRectangularDomain &)
Broken assignment operator. 
 
void r_S(const Vector< double > &s, Vector< double > &f)
takes the macro element coordinate position along the south boundary and returns the global coordinat...
 
BoundaryFctPt d2South_boundary_fn_pt
Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coo...
 
Topologically Rectangular Domain - a domain dexcribing a topologically rectangular problem - primaril...
 
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...
 
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 ...
 
void r_N(const Vector< double > &s, Vector< double > &f)
takes the macro element coordinate position along the north boundary and returns the global coordinat...
 
void(* BoundaryFctPt)(const double &s, Vector< double > &r)
boundary function pointer - for a given boundary takes the macro element coordinate position on that ...
 
BoundaryFctPt d2West_boundary_fn_pt
Function pointer to prescribe the second derivates of global coordinates wrt to the macro element coo...
 
BoundaryFctPt North_boundary_fn_pt
Function pointer to prescribe the north boundary of this topologically rectangular domain...
 
Vector< double > x_south_west
coordinate position of south west corner of domain (only used if boundary functions are not used) ...
 
void macro_element_boundary(const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
~TopologicallyRectangularDomain()
Destructor - deletes the underlying macro element. 
 
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...
 
BoundaryFctPt East_boundary_fn_pt
Function pointer to prescribe the east boundary of this topologically rectangular domain...
 
Vector< double > x_north_east
coordinate position of north east corner of domain (only used if boundary functions are not used) ...
 
void d2macro_element_boundary(const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
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...
 
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...