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>
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... | |
ExtrudedMacroElement * | macro_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... | |
MacroElement * | macro_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 | |
Domain * | Domain_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... | |
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.
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.
oomph::ExtrudedDomain::ExtrudedDomain | ( | Domain * | domain_pt, |
const unsigned & | n_extruded_element, | ||
const double & | extrusion_length | ||
) |
Constructor.
Definition at line 35 of file extruded_domain.cc.
References Domain_pt, i, oomph::Domain::Macro_element_pt, N_extruded_element, and oomph::Domain::nmacro_element().
oomph::ExtrudedDomain::ExtrudedDomain | ( | Domain * | domain_pt, |
const unsigned & | n_extruded_element, | ||
const double & | t_min, | ||
const double & | t_max | ||
) |
Constructor.
Definition at line 63 of file extruded_domain.cc.
References Domain_pt, i, oomph::Domain::Macro_element_pt, N_extruded_element, and oomph::Domain::nmacro_element().
|
inline |
Destructor: Empty; the extruded macro elements will be deleted in Domain.
Definition at line 72 of file extruded_domain.h.
|
delete |
Broken copy constructor.
|
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().
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().
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.
|
delete |
Broken assignment operator.
|
private |
Pointer to the Domain.
Definition at line 101 of file extruded_domain.h.
Referenced by ExtrudedDomain(), and macro_element_boundary().
|
private |
Definition at line 104 of file extruded_domain.h.
Referenced by ExtrudedDomain(), and macro_element_boundary().
|
private |
The maximum t-value.
Definition at line 110 of file extruded_domain.h.
Referenced by macro_element_boundary().
|
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().