Public Member Functions | Protected Attributes | List of all members
oomph::MacroElement Class Referenceabstract

#include <macro_element.h>

+ Inheritance diagram for oomph::MacroElement:

Public Member Functions

 MacroElement (Domain *domain_pt, const unsigned &macro_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)
 Broken copy constructor. More...
 
void operator= (const MacroElement &)
 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 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

DomainDomain_pt
 Pointer to domain. More...
 
unsigned Macro_element_number
 What is the number of the current macro element within its domain. More...
 

Detailed Description

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 $ {\bf S} $ and global coordinates $ {\bf r} ({\bf S}) $ . This must be implemented in the function

The time-dependent version of the macro map returns the mapping from local to global coordinates: $ {\bf r} (t,{\bf S}) $ 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 77 of file macro_element.h.

Constructor & Destructor Documentation

oomph::MacroElement::MacroElement ( Domain domain_pt,
const unsigned &  macro_element_number 
)
inline

Constructor: Pass pointer to Domain and the number of the MacroElement within that Domain.

Definition at line 84 of file macro_element.h.

References oomph::LeakCheckNames::MacroElement_build.

oomph::MacroElement::MacroElement ( )
inline

Default constructor (empty and broken)

Definition at line 93 of file macro_element.h.

oomph::MacroElement::MacroElement ( const MacroElement dummy)
inline

Broken copy constructor.

Definition at line 101 of file macro_element.h.

References oomph::BrokenCopy::broken_copy().

virtual oomph::MacroElement::~MacroElement ( )
inlinevirtual

Empty destructor.

Definition at line 114 of file macro_element.h.

References oomph::LeakCheckNames::MacroElement_build.

Member Function Documentation

virtual void oomph::MacroElement::assemble_macro_to_eulerian_jacobian ( const unsigned &  t,
const Vector< double > &  s,
DenseMatrix< double > &  jacobian 
)
inlinevirtual

the jacobian of the mapping from the macro coordinates to the global coordinates

Reimplemented in oomph::QMacroElement< 2 >.

Definition at line 159 of file macro_element.h.

Referenced by assemble_macro_to_eulerian_jacobian().

void oomph::MacroElement::assemble_macro_to_eulerian_jacobian ( const Vector< double > &  s,
DenseMatrix< double > &  jacobian 
)
inline

Assembles the jacobian of the mapping from the macro coordinates to the global coordinates.

Definition at line 196 of file macro_element.h.

References assemble_macro_to_eulerian_jacobian(), and t.

virtual void oomph::MacroElement::assemble_macro_to_eulerian_jacobian2 ( const unsigned &  t,
const Vector< double > &  s,
DenseMatrix< double > &  jacobian2 
)
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 177 of file macro_element.h.

Referenced by assemble_macro_to_eulerian_jacobian2().

void oomph::MacroElement::assemble_macro_to_eulerian_jacobian2 ( const Vector< double > &  s,
DenseMatrix< double > &  jacobian2 
)
inline

Assembles the second derivative jacobian of the mapping from the macro coordinates to the global coordinates.

Definition at line 206 of file macro_element.h.

References assemble_macro_to_eulerian_jacobian2(), and t.

Domain*& oomph::MacroElement::domain_pt ( )
inline

Access function to the Domain_pt.

Definition at line 220 of file macro_element.h.

References Domain_pt.

unsigned& oomph::MacroElement::macro_element_number ( )
inline
void oomph::MacroElement::macro_map ( const Vector< double > &  s,
Vector< double > &  r 
)
inline
virtual void oomph::MacroElement::macro_map ( const unsigned &  t,
const Vector< double > &  s,
Vector< double > &  r 
)
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 >, and oomph::QMacroElement< 2 >.

void oomph::MacroElement::operator= ( const MacroElement )
inline

Broken assignment operator.

Definition at line 107 of file macro_element.h.

References oomph::BrokenCopy::broken_assign().

void oomph::MacroElement::output ( std::ostream &  outfile,
const int &  nplot 
)
inline

Plot: x,y (or x,y,z) at current time in tecplot format.

Definition at line 124 of file macro_element.h.

References t.

virtual void oomph::MacroElement::output ( const unsigned &  t,
std::ostream &  outfile,
const unsigned &  nplot 
)
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 >, and oomph::QMacroElement< 2 >.

virtual void oomph::MacroElement::output_macro_element_boundaries ( std::ostream &  outfile,
const unsigned &  nplot 
)
pure virtual

Output all macro element boundaries as tecplot zones.

Implemented in oomph::QMacroElement< 3 >, and oomph::QMacroElement< 2 >.

Referenced by oomph::Domain::output_macro_element_boundaries().

Member Data Documentation

Domain* oomph::MacroElement::Domain_pt
protected
unsigned oomph::MacroElement::Macro_element_number
protected

The documentation for this class was generated from the following file: