Base class for MacroElement s that are used during mesh refinement in domains with curvlinear and/or time-dependent boundaries; see the description of the Domain class for more details. More...
#include <macro_element.h>
Public Member Functions | |
MacroElement (Domain *domain_pt, const unsigned ¯o_element_number) | |
Constructor: Pass pointer to Domain and the number of the MacroElement within that Domain. More... | |
MacroElement () | |
Default constructor (empty and broken) More... | |
MacroElement (const MacroElement &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const MacroElement &)=delete |
Broken assignment operator. More... | |
virtual | ~MacroElement () |
Empty destructor. More... | |
void | output (std::ostream &outfile, const int &nplot) |
Plot: x,y (or x,y,z) at current time in tecplot format. More... | |
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) More... | |
void | macro_map (const Vector< double > &s, Vector< double > &r) |
The mapping from local to global coordinates at the current time : r(s) More... | |
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: current time; t>0: previous timestep. More... | |
virtual void | macro_map (const double &t, const Vector< double > &s, Vector< double > &r) |
Get global position r(s) at continuous time value, t. More... | |
virtual void | output_macro_element_boundaries (std::ostream &outfile, const unsigned &nplot)=0 |
Output all macro element boundaries as tecplot zones. More... | |
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 More... | |
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 coordinates. More... | |
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. More... | |
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 coordinates. More... | |
unsigned & | macro_element_number () |
Access function to the Macro_element_number. More... | |
Domain *& | domain_pt () |
Access function to the Domain_pt. More... | |
Protected Attributes | |
Domain * | Domain_pt |
Pointer to domain. More... | |
unsigned | Macro_element_number |
What is the number of the current macro element within its domain. More... | |
Base class for MacroElement s that are used during mesh refinement in domains with curvlinear and/or time-dependent boundaries; see the description of the Domain class for more details.
A macro element provides a parametrisation of a sub-domain by providing a mapping between a set of local coordinates and global coordinates . This must be implemented in the function
The time-dependent version of the macro map returns the mapping from local to global coordinates: where t is the discrete timelevel: t=0: current time; t>0: previous timestep.
The MacroElement s establish the current (and previous) domain shape via member function pointers to the Domain 's
member function.
Definition at line 72 of file macro_element.h.
|
inline |
Constructor: Pass pointer to Domain and the number of the MacroElement within that Domain.
Definition at line 77 of file macro_element.h.
References oomph::LeakCheckNames::MacroElement_build.
|
inline |
Default constructor (empty and broken)
Definition at line 86 of file macro_element.h.
|
delete |
Broken copy constructor.
|
inlinevirtual |
Empty destructor.
Definition at line 101 of file macro_element.h.
References oomph::LeakCheckNames::MacroElement_build.
|
inlinevirtual |
the jacobian of the mapping from the macro coordinates to the global coordinates
Reimplemented in oomph::QMacroElement< 2 >.
Definition at line 170 of file macro_element.h.
Referenced by assemble_macro_to_eulerian_jacobian().
|
inline |
Assembles the jacobian of the mapping from the macro coordinates to the global coordinates.
Definition at line 205 of file macro_element.h.
References assemble_macro_to_eulerian_jacobian(), s, and t.
|
inlinevirtual |
Assembles the second derivative jacobian of the mapping from the macro coordinates to the global coordinates.
Reimplemented in oomph::QMacroElement< 2 >.
Definition at line 186 of file macro_element.h.
Referenced by assemble_macro_to_eulerian_jacobian2().
|
inline |
Assembles the second derivative jacobian of the mapping from the macro coordinates to the global coordinates.
Definition at line 215 of file macro_element.h.
References assemble_macro_to_eulerian_jacobian2(), s, and t.
|
inline |
Access function to the Domain_pt.
Definition at line 229 of file macro_element.h.
References Domain_pt.
Referenced by oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::build_mesh().
|
inline |
Access function to the Macro_element_number.
Definition at line 223 of file macro_element.h.
References Macro_element_number.
Referenced by oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::build_mesh(), oomph::Missing_masters_functions::get_required_master_nodal_information_helper(), oomph::Multi_domain_functions::get_required_master_nodal_information_helper(), and oomph::Multi_domain_functions::locate_zeta_for_missing_coordinates().
|
inlinevirtual |
Get global position r(s) at continuous time value, t.
Reimplemented in oomph::QMacroElement< 2 >.
Definition at line 143 of file macro_element.h.
|
pure virtual |
The time-dependent mapping from local to global coordinates: r(t,s). t is the discrete timelevel: t=0: current time; t>0: previous timestep.
Implemented in oomph::QMacroElement< 3 >, oomph::QMacroElement< 2 >, and oomph::QExtrudedMacroElement< 3 >.
The mapping from local to global coordinates at the current time : r(s)
Definition at line 126 of file macro_element.h.
Referenced by oomph::EighthSphereMesh< ELEMENT >::EighthSphereMesh(), oomph::FullCircleMesh< ELEMENT >::FullCircleMesh(), oomph::QSolidElementBase::get_x_and_xi(), oomph::QElementBase::get_x_from_macro_element(), oomph::ExtrudedDomain::macro_element_boundary(), oomph::QExtrudedMacroElement< 3 >::output(), oomph::QMacroElement< 2 >::output(), oomph::QMacroElement< 3 >::output(), oomph::QuarterCircleSectorMesh< ELEMENT >::QuarterCircleSectorMesh(), oomph::QuarterTubeMesh< ELEMENT >::QuarterTubeMesh(), oomph::RectangleWithHoleMesh< ELEMENT >::RectangleWithHoleMesh(), and oomph::TubeMesh< ELEMENT >::TubeMesh().
|
delete |
Broken assignment operator.
|
pure virtual |
Plot: x,y (or x,y,z) in tecplot format at time level t (t=0: current; t>0: previous)
Implemented in oomph::QMacroElement< 3 >, oomph::QMacroElement< 2 >, and oomph::QExtrudedMacroElement< 3 >.
|
inline |
Plot: x,y (or x,y,z) at current time in tecplot format.
Definition at line 111 of file macro_element.h.
References t.
|
pure virtual |
Output all macro element boundaries as tecplot zones.
Implemented in oomph::QMacroElement< 3 >, oomph::QMacroElement< 2 >, and oomph::QExtrudedMacroElement< 3 >.
Referenced by oomph::Domain::output_macro_element_boundaries().
|
protected |
Pointer to domain.
Definition at line 236 of file macro_element.h.
Referenced by oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian(), oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian2(), domain_pt(), oomph::QMacroElement< 2 >::macro_map(), oomph::QMacroElement< 3 >::macro_map(), oomph::QMacroElement< 2 >::output_macro_element_boundaries(), and oomph::QMacroElement< 3 >::output_macro_element_boundaries().
|
protected |
What is the number of the current macro element within its domain.
Definition at line 239 of file macro_element.h.
Referenced by oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian(), oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian2(), macro_element_number(), oomph::QMacroElement< 2 >::macro_map(), oomph::QExtrudedMacroElement< 3 >::macro_map(), oomph::QMacroElement< 3 >::macro_map(), oomph::QExtrudedMacroElement< 3 >::output_macro_element_boundaries(), oomph::QMacroElement< 2 >::output_macro_element_boundaries(), and oomph::QMacroElement< 3 >::output_macro_element_boundaries().