31 #ifndef OOMPH_FULL_CIRCLE_DOMAIN_HEADER    32 #define OOMPH_FULL_CIRCLE_DOMAIN_HEADER    35 #include "../generic/quadtree.h"    36 #include "../generic/domain.h"    37 #include "../generic/geom_objects.h"    85             const Vector<double> &theta_positions,  
    86             const Vector<double> &radius_box) :
    91    const unsigned n_macro=5;
    92    Macro_element_pt.resize(n_macro);
    95    for (
unsigned i=0;i<n_macro;i++)
    97      Macro_element_pt[i]=
new QMacroElement<2>(
this,i);
   104    BrokenCopy::broken_copy(
"FullCircleDomain");
   110    BrokenCopy::broken_assign(
"FullCircleDomain");
   117    for(
unsigned i=0;i<5;i++)
   119      delete Macro_element_pt[i];
   129                              const unsigned& i_macro,
   130                              const unsigned& i_direct,
   131                              const Vector<double>& s,
   153                       const Vector<double> &high,
   158    for(
unsigned i=0;i<2;i++)
   160      f[i] = low[i] + (high[i] - low[i])*0.5*(s+1.0);
   180   const unsigned& imacro,
   181   const unsigned& idirect,
   182   const Vector<double>& s,
   186   using namespace QuadTreeNames;
   189   Vector<Vector<double> > Box(4);
   191   Vector<Vector<double> > Wall(4);
   194   Vector<double> zeta(2);
   197   for(
unsigned j=0;j<4;j++)
   207     Area_pt->position(t,zeta,Box[j]);   
   211     Area_pt->position(t,zeta,Wall[j]);
   215    const double pi = MathematicalConstants::Pi;
   249        std::ostringstream error_stream;
   250        error_stream << 
"idirect is " << idirect 
   251                     << 
" not one of N, S, E, W" <<  std::endl;
   255         OOMPH_CURRENT_FUNCTION,
   256         OOMPH_EXCEPTION_LOCATION);
   295      std::ostringstream error_stream;
   296      error_stream << 
"idirect is " << idirect 
   297                   << 
" not one of N, S, E, W" <<  std::endl;
   301       OOMPH_CURRENT_FUNCTION,
   302       OOMPH_EXCEPTION_LOCATION);
   340      std::ostringstream error_stream;
   341      error_stream << 
"idirect is " << idirect 
   342                   << 
" not one of N, S, W, E" <<  std::endl;
   346       OOMPH_CURRENT_FUNCTION,
   347       OOMPH_EXCEPTION_LOCATION);
   383        std::ostringstream error_stream;
   384        error_stream << 
"idirect is " << idirect 
   385                     << 
" not one of N, S, E, W" <<  std::endl;
   389         OOMPH_CURRENT_FUNCTION,
   390         OOMPH_EXCEPTION_LOCATION);
   430        std::ostringstream error_stream;
   431        error_stream << 
"idirect is " << idirect 
   432                     << 
" not one of N, S, W, E" <<  std::endl;
   436         OOMPH_CURRENT_FUNCTION,
   437         OOMPH_EXCEPTION_LOCATION);
   444    std::ostringstream error_stream;
   445    error_stream << 
"Wrong imacro " << imacro << std::endl;
   448     OOMPH_CURRENT_FUNCTION,
   449     OOMPH_EXCEPTION_LOCATION);
 FullCircleDomain(const FullCircleDomain &)
Broken copy constructor. 
 
Topologically circular domain, e.g. a tube cross section. The entire domain must be defined by a Geom...
 
void operator=(const FullCircleDomain &)
Broken assignment operator. 
 
GeomObject * Area_pt
Pointer to geometric object that represents the domain. 
 
~FullCircleDomain()
Destructor: Kill all macro elements. 
 
Vector< double > Theta_positions
Storage for the dividing lines on the boundary starting from the lower left and proceeding anticlockw...
 
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...
 
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=...
 
Vector< double > Radius_box
 
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 ...