26#ifndef OOMPH_MACROELEMENT_HEADER
27#define OOMPH_MACROELEMENT_HEADER
32#include <oomph-lib-config.h>
88 throw OomphLibError(
"Don't call empty constructor for MacroElement!",
122 const unsigned&
nplot) = 0;
152 <<
"If you need it, please implement it!"
164 const unsigned&
nplot) = 0;
174 std::ostringstream error_message;
175 error_message <<
"assemble_macro_to_eulerian_jacobian(...) not \n"
176 <<
"implemented for this element\n"
192 std::ostringstream error_message;
193 error_message <<
"assemble_macro_to_eulerian_jacobian2(...) not \n"
194 <<
"implemented for this element\n"
290 throw OomphLibError(
"Don't call empty constructor for QMacroElement!",
310 for (
unsigned i = 0;
i <
nplot;
i++)
313 for (
unsigned j = 0;
j <
nplot;
j++)
317 outfile << f[0] <<
" " << f[1] << std::endl;
325 const unsigned&
nplot);
383 throw OomphLibError(
"Don't call empty constructor for QMacroElement!",
406 for (
unsigned i = 0;
i <
nplot;
i++)
410 for (
unsigned j = 0;
j <
nplot;
j++)
414 for (
unsigned k = 0;
k <
nplot;
k++)
420 outfile << f[0] <<
" " << f[1] <<
" " << f[2] << std::endl;
429 const unsigned&
nplot);
Base class for Domains with curvilinear and/or time-dependent boundaries. Domain boundaries are typic...
Base class for MacroElement s that are used during mesh refinement in domains with curvlinear and/or ...
Domain * Domain_pt
Pointer to domain.
virtual void assemble_macro_to_eulerian_jacobian2(const unsigned &t, const Vector< double > &s, DenseMatrix< double > &jacobian2)
Assembles the second derivative jacobian of the mapping from the macro coordinates to the global coor...
void assemble_macro_to_eulerian_jacobian(const Vector< double > &s, DenseMatrix< double > &jacobian)
Assembles the jacobian of the mapping from the macro coordinates to the global coordinates.
virtual void output(const unsigned &t, std::ostream &outfile, const unsigned &nplot)=0
Plot: x,y (or x,y,z) in tecplot format at time level t (t=0: current; t>0: previous)
virtual void macro_map(const double &t, const Vector< double > &s, Vector< double > &r)
Get global position r(s) at continuous time value, t.
virtual void output_macro_element_boundaries(std::ostream &outfile, const unsigned &nplot)=0
Output all macro element boundaries as tecplot zones.
void operator=(const MacroElement &)=delete
Broken assignment operator.
virtual void macro_map(const unsigned &t, const Vector< double > &s, Vector< double > &r)=0
The time-dependent mapping from local to global coordinates: r(t,s). t is the discrete timelevel: t=0...
void macro_map(const Vector< double > &s, Vector< double > &r)
The mapping from local to global coordinates at the current time : r(s)
void output(std::ostream &outfile, const int &nplot)
Plot: x,y (or x,y,z) at current time in tecplot format.
unsigned Macro_element_number
What is the number of the current macro element within its domain.
Domain *& domain_pt()
Access function to the Domain_pt.
virtual ~MacroElement()
Empty destructor.
unsigned & macro_element_number()
Access function to the Macro_element_number.
virtual void assemble_macro_to_eulerian_jacobian(const unsigned &t, const Vector< double > &s, DenseMatrix< double > &jacobian)
the jacobian of the mapping from the macro coordinates to the global coordinates
MacroElement(Domain *domain_pt, const unsigned ¯o_element_number)
Constructor: Pass pointer to Domain and the number of the MacroElement within that Domain.
MacroElement(const MacroElement &dummy)=delete
Broken copy constructor.
void assemble_macro_to_eulerian_jacobian2(const Vector< double > &s, DenseMatrix< double > &jacobian2)
Assembles the second derivative jacobian of the mapping from the macro coordinates to the global coor...
MacroElement()
Default constructor (empty and broken)
An OomphLibError object which should be thrown when an run-time error is encountered....
void output(const unsigned &t, std::ostream &outfile, const unsigned &nplot)
Plot: x,y in tecplot format at time level t (t=0: current; t>0: previous)
void operator=(const QMacroElement &)=delete
Broken assignment operator.
QMacroElement(const QMacroElement &dummy)=delete
Broken copy constructor.
virtual ~QMacroElement()
Empty destructor.
QMacroElement(Domain *domain_pt, const unsigned ¯o_element_number)
Constructor: Pass the pointer to the domain and the macro element's number within this domain.
QMacroElement()
Default constructor (empty and broken)
QMacroElement(Domain *domain_pt, const unsigned ¯o_element_number)
Constructor: Pass the pointer to the domain and the macro element's number within this domain.
QMacroElement()
Default constructor (empty and broken)
void output(const unsigned &t, std::ostream &outfile, const unsigned &nplot)
Plot: x,y in tecplot format at time level t (t=0: current; t>0: previous)
virtual ~QMacroElement()
Empty destructor.
QMacroElement(const QMacroElement &dummy)=delete
Broken copy constructor.
void operator=(const QMacroElement &)=delete
Broken assignment operator.
TAdvectionDiffusionReactionElement<NREAGENT,DIM,NNODE_1D> elements are isoparametric triangular DIM-d...
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).