Public Member Functions | Private Attributes | List of all members
oomph::ExtrudedDomain Class Reference

Base class for ExtrudedDomains with curvilinear and/or time-dependent boundaries. ExtrudedDomain boundaries are typically represented by GeomObjects and the ExtrudedDomain itself is decomposed into a number of ExtrudedMacroElements. Any instantiation of a specific ExtrudedDomain needs to implement the pure virtual member function. More...

#include <extruded_domain.h>

+ Inheritance diagram for oomph::ExtrudedDomain:

Public Member Functions

 ExtrudedDomain (Domain *domain_pt, const unsigned &n_extruded_element, const double &extrusion_length)
 Constructor. More...
 
 ExtrudedDomain (Domain *domain_pt, const unsigned &n_extruded_element, const double &t_min, const double &t_max)
 Constructor. More...
 
 ~ExtrudedDomain ()
 Destructor: Empty; the extruded macro elements will be deleted in Domain. More...
 
 ExtrudedDomain (const ExtrudedDomain &)=delete
 Broken copy constructor. More...
 
void operator= (const ExtrudedDomain &)=delete
 Broken assignment operator. More...
 
ExtrudedMacroElementmacro_element_pt (const unsigned &i)
 Access to i-th extruded macro element. More...
 
unsigned nmacro_element ()
 Number of macro elements in domain. More...
 
void macro_element_boundary (const unsigned &time, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &x)
 Vector representation of the i_macro-th macro element boundary i_direct (e.g. N/S/W/E in 2D spatial = 3D space-time). NOTE: Some extra care has to be taken here to translate the OcTree enumeration to the QuadTree enumeration (in the appropriate manner) so that the original Domain object can be used to calculate the global coordinate associated with the provided local coordinates. More...
 
- Public Member Functions inherited from oomph::Domain
 Domain ()
 Constructor. More...
 
 Domain (const Domain &)=delete
 Broken copy constructor. More...
 
void operator= (const Domain &)=delete
 Broken assignment operator. More...
 
virtual ~Domain ()
 Destructor: Strictly speaking, whoever creates an object dynamically should be responsible for the cleanup of said object but it makes sense here for the Domain to generically kill any MacroElements left over in the MacroElement container (if it hasn't already been done in the derived class) to avoid memory leaks. More...
 
MacroElementmacro_element_pt (const unsigned &i)
 Access to i-th macro element. More...
 
unsigned nmacro_element ()
 Number of macro elements in domain. More...
 
void output (const std::string &filename, const unsigned &nplot)
 Output macro elements. More...
 
void output (std::ostream &outfile, const unsigned &nplot)
 Output macro elements. More...
 
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 continuous time, t. More...
 
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 current time: f(s). More...
 
void output_macro_element_boundaries (const std::string &filename, const unsigned &nplot)
 Output all macro element boundaries as tecplot zones. More...
 
void output_macro_element_boundaries (std::ostream &outfile, const unsigned &nplot)
 Output all macro element boundaries as tecplot zones. More...
 
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.g. N/S/W/E in 2D) at time level t (t=0: present; t>0: previous): f(s). Broken virtual. More...
 
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.g. N/S/W/E in 2D) at continuous time level t. Broken virtual. More...
 
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.g. N/S/W/E in 2D) at current time: f(s). More...
 
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.g. N/S/W/E in 2D) at time level t (t=0: present; t>0: previous): f(s). Broken virtual. More...
 
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.g. N/S/W/E in 2D) at continuous time level t. Broken virtual. More...
 
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.g. N/S/W/E in 2D) at current time: f(s). More...
 

Private Attributes

DomainDomain_pt
 Pointer to the Domain. More...
 
unsigned N_extruded_element
 
double T_min
 The minimum t-value (defaults to 0.0 if not specified) More...
 
double T_max
 The maximum t-value. More...
 

Additional Inherited Members

- Protected Attributes inherited from oomph::Domain
Vector< MacroElement * > Macro_element_pt
 Vector of pointers to macro elements. More...
 

Detailed Description

Base class for ExtrudedDomains with curvilinear and/or time-dependent boundaries. ExtrudedDomain boundaries are typically represented by GeomObjects and the ExtrudedDomain itself is decomposed into a number of ExtrudedMacroElements. Any instantiation of a specific ExtrudedDomain needs to implement the pure virtual member function.

void macro_element_boundary(const unsigned &time, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &x)
Vector representation of the i_macro-th macro element boundary i_direct (e.g. N/S/W/E in 2D spatial =...

which returns a Vector representation of each of the ExtrudedMacroElements' boundaries, parametrised by the coordinate(s) along this boundary. The ExtrudedMacroElements obtain their boundary positions via member function pointers to ExtrudedDomain::macro_element_boundary(...).

Definition at line 57 of file extruded_domain.h.

Constructor & Destructor Documentation

◆ ExtrudedDomain() [1/3]

oomph::ExtrudedDomain::ExtrudedDomain ( Domain domain_pt,
const unsigned &  n_extruded_element,
const double &  extrusion_length 
)

◆ ExtrudedDomain() [2/3]

oomph::ExtrudedDomain::ExtrudedDomain ( Domain domain_pt,
const unsigned &  n_extruded_element,
const double &  t_min,
const double &  t_max 
)

◆ ~ExtrudedDomain()

oomph::ExtrudedDomain::~ExtrudedDomain ( )
inline

Destructor: Empty; the extruded macro elements will be deleted in Domain.

Definition at line 72 of file extruded_domain.h.

◆ ExtrudedDomain() [3/3]

oomph::ExtrudedDomain::ExtrudedDomain ( const ExtrudedDomain )
delete

Broken copy constructor.

Member Function Documentation

◆ macro_element_boundary()

void oomph::ExtrudedDomain::macro_element_boundary ( const unsigned &  time,
const unsigned &  i_macro,
const unsigned &  i_direct,
const Vector< double > &  s,
Vector< double > &  x 
)
virtual

Vector representation of the i_macro-th macro element boundary i_direct (e.g. N/S/W/E in 2D spatial = 3D space-time). NOTE: Some extra care has to be taken here to translate the OcTree enumeration to the QuadTree enumeration (in the appropriate manner) so that the original Domain object can be used to calculate the global coordinate associated with the provided local coordinates.

Implements oomph::Domain.

Definition at line 148 of file extruded_domain.cc.

References oomph::OcTreeNames::B, oomph::OcTreeNames::D, oomph::OcTree::Direct_string, Domain_pt, oomph::QuadTreeNames::E, oomph::OcTreeNames::F, i, oomph::OcTreeNames::L, oomph::Domain::macro_element_boundary(), oomph::Domain::macro_element_pt(), macro_element_pt(), oomph::MacroElement::macro_map(), oomph::QuadTreeNames::N, N_extruded_element, oomph::Domain::nmacro_element(), oomph::OcTreeNames::R, s, oomph::QuadTreeNames::S, t, T_max, T_min, oomph::OcTreeNames::U, and oomph::QuadTreeNames::W.

Referenced by oomph::QExtrudedMacroElement< 3 >::macro_map(), and oomph::QExtrudedMacroElement< 3 >::output_macro_element_boundaries().

◆ macro_element_pt()

ExtrudedMacroElement * oomph::ExtrudedDomain::macro_element_pt ( const unsigned &  i)

Access to i-th extruded macro element.

Definition at line 132 of file extruded_domain.cc.

References i, and oomph::Domain::Macro_element_pt.

Referenced by oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::build_mesh(), and macro_element_boundary().

◆ nmacro_element()

unsigned oomph::ExtrudedDomain::nmacro_element ( )

Number of macro elements in domain.

Definition at line 122 of file extruded_domain.cc.

References oomph::Domain::Macro_element_pt.

◆ operator=()

void oomph::ExtrudedDomain::operator= ( const ExtrudedDomain )
delete

Broken assignment operator.

Member Data Documentation

◆ Domain_pt

Domain* oomph::ExtrudedDomain::Domain_pt
private

Pointer to the Domain.

Definition at line 101 of file extruded_domain.h.

Referenced by ExtrudedDomain(), and macro_element_boundary().

◆ N_extruded_element

unsigned oomph::ExtrudedDomain::N_extruded_element
private

Definition at line 104 of file extruded_domain.h.

Referenced by ExtrudedDomain(), and macro_element_boundary().

◆ T_max

double oomph::ExtrudedDomain::T_max
private

The maximum t-value.

Definition at line 110 of file extruded_domain.h.

Referenced by macro_element_boundary().

◆ T_min

double oomph::ExtrudedDomain::T_min
private

The minimum t-value (defaults to 0.0 if not specified)

Definition at line 107 of file extruded_domain.h.

Referenced by macro_element_boundary().


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