27 #ifndef OOMPH_EXTRUDED_CUBE_MESH_FROM_QUAD_MESH_WITH_MACRO_ELEMENTS_HEADER
28 #define OOMPH_EXTRUDED_CUBE_MESH_FROM_QUAD_MESH_WITH_MACRO_ELEMENTS_HEADER
32 #include <oomph-lib-config.h>
36 #include "../generic/mesh.h"
37 #include "../generic/quad_mesh.h"
38 #include "../generic/brick_mesh.h"
39 #include "../generic/refineable_brick_mesh.h"
40 #include "../generic/extruded_domain.h"
41 #include "../generic/extruded_macro_element.h"
52 namespace MeshExtrusionHelpers
97 template<
class ELEMENT>
107 QuadMeshBase* quad_mesh_pt,
110 TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper)
123 QuadMeshBase* quad_mesh_pt,
127 TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper)
149 for (
unsigned i = 0; i < n_extruded_domain; i++)
164 const unsigned& z_node)
const
170 return (
Zmin + z_step * ((
N_node_1d - 1) * z_element + z_node));
181 QuadMeshBase* quad_mesh_pt, FiniteElement* quad_el_pt);
184 const unsigned&
nz()
const
208 TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper);
219 template<
class ELEMENT>
222 public virtual RefineableBrickMesh<ELEMENT>
231 QuadMeshBase* quad_mesh_pt,
234 TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper)
236 quad_mesh_pt,
nz, lz, time_stepper_pt)
240 this->setup_octree_forest();
249 QuadMeshBase* quad_mesh_pt,
253 TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper)
255 quad_mesh_pt,
nz, zmin, zmax, time_stepper_pt)
259 this->setup_octree_forest();
Mesh class that takes a 2D mesh consisting of quadrilateral elements and "extrudes" it in the z-direc...
double Zmin
Minimum value of z coordinate.
void build_mesh(QuadMeshBase *quad_mesh_pt, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Generic mesh construction function: contains all the hard work.
virtual double z_spacing_function(const unsigned &z_element, const unsigned &z_node) const
Return the value of the z-coordinate at the node given by the local node number, znode.
Vector< ExtrudedDomain * > Extruded_domain_pt
Vector of pointers to extruded domain objects.
ExtrudedCubeMeshFromQuadMesh(QuadMeshBase *quad_mesh_pt, const unsigned &nz, const double &zmin, const double &zmax, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass a mesh consisting of quad elements, specify the number of elements in the z directi...
Vector< std::pair< unsigned, int > > get_element_boundary_information(QuadMeshBase *quad_mesh_pt, FiniteElement *quad_el_pt)
Get all the boundary information of an element using the input (quad_mesh_pt) mesh....
~ExtrudedCubeMeshFromQuadMesh()
Destructor: If the underlying spatial domain was made up of any macro elements then we will have crea...
unsigned Nz
Number of elements in the z-direction.
unsigned N_node_1d
The number of nodes in each direction.
const unsigned & nz() const
Access function for number of elements in z-direction (const version)
double Zmax
Maximum value of z coordinate.
ExtrudedCubeMeshFromQuadMesh(QuadMeshBase *quad_mesh_pt, const unsigned &nz, const double &lz, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass a mesh consisting of quad elements, specify the number of elements in the z directi...
Class to contain any helpers for the mesh extrusion. At the moment this only used to decide on whethe...
bool Doc_mesh_setup_time
Boolean to indicate whether or not to doc the progress.
void disable_doc_mesh_setup_time()
Disable doc-ing of the mesh setup.
bool doc_mesh_setup_time()
Return the value of the Doc_mesh_setup_time flag.
ExtrusionHelper()
Constructor (empty)
void enable_doc_mesh_setup_time()
Enable doc-ing of the mesh setup.
///////////////////////////////////////////////////////////////////////// ///////////////////////////...
RefineableExtrudedCubeMeshFromQuadMesh(QuadMeshBase *quad_mesh_pt, const unsigned &nz, const double &zmin, const double &zmax, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass a mesh consisting of quad elements, specify the number of elements in the z directi...
RefineableExtrudedCubeMeshFromQuadMesh(QuadMeshBase *quad_mesh_pt, const unsigned &nz, const double &lz, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass a mesh consisting of quad elements, specify the number of elements in the z directi...
class oomph::MeshExtrusionHelpers::ExtrusionHelper Mesh_extrusion_helper
////////////////////////////////////////////////////////////////////// //////////////////////////////...