26 #ifndef OOMPH_DOMAIN_HEADER
27 #define OOMPH_DOMAIN_HEADER
32 #include <oomph-lib-config.h>
93 for (
unsigned i = 0;
i < n_macro_element;
i++)
131 std::ofstream outfile;
132 outfile.open(filename.c_str());
138 void output(std::ostream& outfile,
const unsigned& nplot)
141 for (
unsigned i_macro = 0; i_macro < nmacro; i_macro++)
152 const unsigned& i_macro,
153 const unsigned& i_direct,
161 const unsigned& i_macro,
162 const unsigned& i_direct,
167 throw OomphLibError(
"Domain::macro_element_boundary() is broken virtual.",
168 OOMPH_CURRENT_FUNCTION,
169 OOMPH_EXCEPTION_LOCATION);
176 const unsigned& i_direct,
188 const unsigned& nplot)
190 std::ofstream outfile;
191 outfile.open(filename.c_str());
198 const unsigned& nplot)
202 for (
unsigned i = 0;
i < nmacro;
i++)
213 const unsigned& i_macro,
214 const unsigned& i_direct,
219 "Domain::dmacro_element_boundary() is broken virtual.",
220 OOMPH_CURRENT_FUNCTION,
221 OOMPH_EXCEPTION_LOCATION);
229 const unsigned& i_macro,
230 const unsigned& i_direct,
235 "Domain::dmacro_element_boundary() is broken virtual.",
236 OOMPH_CURRENT_FUNCTION,
237 OOMPH_EXCEPTION_LOCATION);
245 const unsigned& i_direct,
259 const unsigned& i_macro,
260 const unsigned& i_direct,
265 "Domain::d2macro_element_boundary() is broken virtual.",
266 OOMPH_CURRENT_FUNCTION,
267 OOMPH_EXCEPTION_LOCATION);
274 const unsigned& i_macro,
275 const unsigned& i_direct,
280 "Domain::d2macro_element_boundary() is broken virtual.",
281 OOMPH_CURRENT_FUNCTION,
282 OOMPH_EXCEPTION_LOCATION);
289 const unsigned& i_direct,
348 const unsigned& i_macro,
349 const unsigned& i_direct,
Base class for Domains with curvilinear and/or time-dependent boundaries. Domain boundaries are typic...
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 conti...
void operator=(const Domain &)=delete
Broken assignment operator.
Vector< MacroElement * > Macro_element_pt
Vector of pointers to macro elements.
unsigned nmacro_element()
Number of macro elements in domain.
void output_macro_element_boundaries(std::ostream &outfile, const unsigned &nplot)
Output all macro element boundaries as tecplot zones.
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....
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....
void output(const std::string &filename, const unsigned &nplot)
Output macro elements.
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....
virtual void macro_element_boundary(const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)=0
Vector representation of the i_macro-th macro element boundary i_direct (e.g. N/S/W/E in 2D) at time ...
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 curre...
MacroElement * macro_element_pt(const unsigned &i)
Access to i-th macro element.
void output(std::ostream &outfile, const unsigned &nplot)
Output macro elements.
void output_macro_element_boundaries(const std::string &filename, const unsigned &nplot)
Output all macro element boundaries as tecplot zones.
Domain(const Domain &)=delete
Broken copy constructor.
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....
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....
virtual ~Domain()
Destructor: Strictly speaking, whoever creates an object dynamically should be responsible for the cl...
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....
Base class for MacroElement s that are used during mesh refinement in domains with curvlinear and/or ...
virtual void output_macro_element_boundaries(std::ostream &outfile, const unsigned &nplot)=0
Output all macro element boundaries as tecplot zones.
An OomphLibError object which should be thrown when an run-time error is encountered....
QMacroElement specialised to 3 spatial dimensions.
//////////////////////////////////////////////////////////////////////
void r_U(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Up boundary face zeta .
void operator=(const WarpedCubeDomain &)=delete
Broken assignment operator.
void r_R(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Right boundary face zeta .
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 (L/R/D/U/B/F) at time level t...
WarpedCubeDomain(const WarpedCubeDomain &)=delete
Broken copy constructor.
void r_F(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Front boundary face zeta .
void r_L(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Left boundary face zeta .
void r_D(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Down boundary face zeta .
void r_B(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Back boundary face zeta .
void warp_it(Vector< double > &f)
Warp the unit cube.
WarpedCubeDomain()
Constructor:
~WarpedCubeDomain()
Destructor (empty; clean up handled in base class)
std::string string(const unsigned &i)
Return the i-th string or "" if the relevant string hasn't been defined.
//////////////////////////////////////////////////////////////////// ////////////////////////////////...