27#ifndef OOMPH_EIGHTH_SPHERE_DOMAIN_HEADER
28#define OOMPH_EIGHTH_SPHERE_DOMAIN_HEADER
31#include "../generic/quadtree.h"
32#include "../generic/domain.h"
33#include "../generic/geom_objects.h"
80 using namespace OcTreeNames;
82#ifdef WARN_ABOUT_SUBTLY_CHANGED_OOMPH_INTERFACES
85 "Order of function arguments has changed between versions 0.8 and 0.85",
86 "EighthSphereDomain::macro_element_boundary(...)",
123 std::ostringstream error_message;
125 <<
"not one of L, R, U, D, B, F" << std::endl;
165 std::ostringstream error_message;
167 <<
"not one of L, R, U, D, B, F" << std::endl;
206 std::ostringstream error_message;
208 <<
"not one of L, R, U, D, B, F" << std::endl;
246 std::ostringstream error_message;
248 <<
"not one of L, R, U, D, B, F" << std::endl;
259 std::ostringstream error_message;
261 <<
", but should be in the range 0-3" << std::endl;
527 double k0 = 0.5 * (1.0 +
zeta[0]);
528 double k1 = 0.5 * (1.0 +
zeta[1]);
540 for (
unsigned i = 0;
i < 3;
i++)
544 double alpha =
Radius / std::sqrt(
p[0] *
p[0] +
p[1] *
p[1] +
p[2] *
p[2]);
546 for (
unsigned i = 0;
i < 3;
i++)
573 for (
unsigned i = 0;
i < 3;
i++)
602 for (
unsigned i = 0;
i < 3;
i++)
630 for (
unsigned i = 0;
i < 3;
i++)
659 for (
unsigned i = 0;
i < 3;
i++)
687 for (
unsigned i = 0;
i < 3;
i++)
726 double k0 = 0.5 * (1.0 +
zeta[0]);
727 double k1 = 0.5 * (1.0 +
zeta[1]);
739 for (
unsigned i = 0;
i < 3;
i++)
743 double alpha =
Radius / std::sqrt(
p[0] *
p[0] +
p[1] *
p[1] +
p[2] *
p[2]);
745 for (
unsigned i = 0;
i < 3;
i++)
772 for (
unsigned i = 0;
i < 3;
i++)
801 for (
unsigned i = 0;
i < 3;
i++)
830 for (
unsigned i = 0;
i < 3;
i++)
874 for (
unsigned i = 0;
i < 3;
i++)
914 double k0 = 0.5 * (1.0 +
zeta[0]);
915 double k1 = 0.5 * (1.0 +
zeta[1]);
927 for (
unsigned i = 0;
i < 3;
i++)
931 double alpha =
Radius / std::sqrt(
p[0] *
p[0] +
p[1] *
p[1] +
p[2] *
p[2]);
933 for (
unsigned i = 0;
i < 3;
i++)
Base class for Domains with curvilinear and/or time-dependent boundaries. Domain boundaries are typic...
Vector< MacroElement * > Macro_element_pt
Vector of pointers to macro elements.
Eighth sphere as domain. Domain is parametrised by four macro elements.
void r_right_U(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of right box macro element zeta .
void r_centr_F(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of central box macro element zeta .
void r_front_L(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
void r_centr_R(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of central box macro element zeta .
void macro_element_boundary(const unsigned &t, const unsigned &imacro, const unsigned &idirect, const Vector< double > &s, Vector< double > &f)
Vector representation of the imacro-th macro element boundary idirect (L/R/D/U/B/F) at time level t (...
void r_up_U(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
void r_centr_B(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of central box macro element zeta .
void r_front_D(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
void r_right_R(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of right box macro element zeta .
void r_front_R(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
EighthSphereDomain(const EighthSphereDomain &)=delete
Broken copy constructor.
void r_front_F(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
void r_right_D(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of right box macro element zeta .
EighthSphereDomain(const double &radius)
Constructor: Pass the radius of the sphere.
void operator=(const EighthSphereDomain &)=delete
Broken assignment operator.
void r_up_F(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
void r_right_F(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of right box macro element zeta .
void r_front_B(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
void r_centr_D(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of central box macro element zeta .
void r_up_B(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
~EighthSphereDomain()
Destructor: Empty; cleanup done in base class.
void r_right_B(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of right box macro element zeta .
void r_right_L(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of right box macro element zeta .
void r_up_R(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
void r_up_D(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
void r_centr_L(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of central box macro element zeta .
void r_front_U(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
void r_up_L(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left box macro element zeta .
void r_centr_U(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of central box macro element zeta .
static Vector< std::string > Direct_string
Translate (enumerated) directions into strings.
An OomphLibError object which should be thrown when an run-time error is encountered....
An OomphLibWarning object which should be created as a temporary object to issue a warning....
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////// ////////////////////////////////...