![]() |
|
#include <extruded_cube_mesh_from_quad_mesh_with_macro_elements.template.h>
Public Member Functions | |
ExtrudedCubeMeshFromQuadMesh (QuadMeshBase *quad_mesh_pt, const unsigned &nz, const double &lz, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
ExtrudedCubeMeshFromQuadMesh (QuadMeshBase *quad_mesh_pt, const unsigned &nz, const double &zmin, const double &zmax, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
~ExtrudedCubeMeshFromQuadMesh () | |
virtual double | z_spacing_function (const unsigned &z_element, const unsigned &z_node) const |
Vector< std::pair< unsigned, int > > | get_element_boundary_information (QuadMeshBase *quad_mesh_pt, FiniteElement *quad_el_pt) |
const unsigned & | nz () const |
Access function for number of elements in z-direction (const version) More... | |
![]() | |
BrickMeshBase () | |
Constructor (empty) More... | |
BrickMeshBase (const BrickMeshBase &)=delete | |
Broken copy constructor. More... | |
virtual | ~BrickMeshBase () |
Broken assignment operator. More... | |
void | setup_boundary_element_info () |
void | setup_boundary_element_info (std::ostream &outfile) |
![]() | |
Mesh () | |
Default constructor. More... | |
Mesh (const Vector< Mesh * > &sub_mesh_pt) | |
void | merge_meshes (const Vector< Mesh * > &sub_mesh_pt) |
virtual void | reset_boundary_element_info (Vector< unsigned > &ntmp_boundary_elements, Vector< Vector< unsigned >> &ntmp_boundary_elements_in_region, Vector< FiniteElement * > &deleted_elements) |
Virtual function to perform the reset boundary elements info rutines. More... | |
template<class BULK_ELEMENT > | |
void | doc_boundary_coordinates (const unsigned &b, std::ofstream &the_file) |
virtual void | scale_mesh (const double &factor) |
Mesh (const Mesh &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const Mesh &)=delete |
Broken assignment operator. More... | |
virtual | ~Mesh () |
Virtual Destructor to clean up all memory. More... | |
void | flush_element_and_node_storage () |
void | flush_element_storage () |
void | flush_node_storage () |
Node *& | node_pt (const unsigned long &n) |
Return pointer to global node n. More... | |
Node * | node_pt (const unsigned long &n) const |
Return pointer to global node n (const version) More... | |
GeneralisedElement *& | element_pt (const unsigned long &e) |
Return pointer to element e. More... | |
GeneralisedElement * | element_pt (const unsigned long &e) const |
Return pointer to element e (const version) More... | |
const Vector< GeneralisedElement * > & | element_pt () const |
Return reference to the Vector of elements. More... | |
Vector< GeneralisedElement * > & | element_pt () |
Return reference to the Vector of elements. More... | |
FiniteElement * | finite_element_pt (const unsigned &e) const |
Node *& | boundary_node_pt (const unsigned &b, const unsigned &n) |
Return pointer to node n on boundary b. More... | |
Node * | boundary_node_pt (const unsigned &b, const unsigned &n) const |
Return pointer to node n on boundary b. More... | |
void | set_nboundary (const unsigned &nbound) |
Set the number of boundaries in the mesh. More... | |
void | remove_boundary_nodes () |
Clear all pointers to boundary nodes. More... | |
void | remove_boundary_nodes (const unsigned &b) |
void | remove_boundary_node (const unsigned &b, Node *const &node_pt) |
Remove a node from the boundary b. More... | |
void | add_boundary_node (const unsigned &b, Node *const &node_pt) |
Add a (pointer to) a node to the b-th boundary. More... | |
void | copy_boundary_node_data_from_nodes () |
bool | boundary_coordinate_exists (const unsigned &i) const |
Indicate whether the i-th boundary has an intrinsic coordinate. More... | |
unsigned long | nelement () const |
Return number of elements in the mesh. More... | |
unsigned long | nnode () const |
Return number of nodes in the mesh. More... | |
unsigned | ndof_types () const |
Return number of dof types in mesh. More... | |
unsigned | elemental_dimension () const |
Return number of elemental dimension in mesh. More... | |
unsigned | nodal_dimension () const |
Return number of nodal dimension in mesh. More... | |
void | add_node_pt (Node *const &node_pt) |
Add a (pointer to a) node to the mesh. More... | |
void | add_element_pt (GeneralisedElement *const &element_pt) |
Add a (pointer to) an element to the mesh. More... | |
virtual void | node_update (const bool &update_all_solid_nodes=false) |
virtual void | reorder_nodes (const bool &use_old_ordering=true) |
virtual void | get_node_reordering (Vector< Node * > &reordering, const bool &use_old_ordering=true) const |
template<class BULK_ELEMENT , template< class > class FACE_ELEMENT> | |
void | build_face_mesh (const unsigned &b, Mesh *const &face_mesh_pt) |
unsigned | self_test () |
Self-test: Check elements and nodes. Return 0 for OK. More... | |
void | max_and_min_element_size (double &max_size, double &min_size) |
double | total_size () |
void | check_inverted_elements (bool &mesh_has_inverted_elements, std::ofstream &inverted_element_file) |
void | check_inverted_elements (bool &mesh_has_inverted_elements) |
unsigned | check_for_repeated_nodes (const double &epsilon=1.0e-12) |
Vector< Node * > | prune_dead_nodes () |
unsigned | nboundary () const |
Return number of boundaries. More... | |
unsigned long | nboundary_node (const unsigned &ibound) const |
Return number of nodes on a particular boundary. More... | |
FiniteElement * | boundary_element_pt (const unsigned &b, const unsigned &e) const |
Return pointer to e-th finite element on boundary b. More... | |
Node * | get_some_non_boundary_node () const |
unsigned | nboundary_element (const unsigned &b) const |
Return number of finite elements that are adjacent to boundary b. More... | |
int | face_index_at_boundary (const unsigned &b, const unsigned &e) const |
virtual void | dump (std::ofstream &dump_file, const bool &use_old_ordering=true) const |
Dump the data in the mesh into a file for restart. More... | |
void | dump (const std::string &dump_file_name, const bool &use_old_ordering=true) const |
Dump the data in the mesh into a file for restart. More... | |
virtual void | read (std::ifstream &restart_file) |
Read solution from restart file. More... | |
void | output_paraview (std::ofstream &file_out, const unsigned &nplot) const |
void | output_fct_paraview (std::ofstream &file_out, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) const |
void | output_fct_paraview (std::ofstream &file_out, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) const |
void | output (std::ostream &outfile) |
Output for all elements. More... | |
void | output (std::ostream &outfile, const unsigned &n_plot) |
Output at f(n_plot) points in each element. More... | |
void | output (FILE *file_pt) |
Output for all elements (C-style output) More... | |
void | output (FILE *file_pt, const unsigned &nplot) |
Output at f(n_plot) points in each element (C-style output) More... | |
void | output (const std::string &output_filename) |
Output for all elements. More... | |
void | output (const std::string &output_filename, const unsigned &n_plot) |
Output at f(n_plot) points in each element. More... | |
void | output_fct (std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt) |
Output a given Vector function at f(n_plot) points in each element. More... | |
void | output_fct (std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt) |
void | output_boundaries (std::ostream &outfile) |
Output the nodes on the boundaries (into separate tecplot zones) More... | |
void | output_boundaries (const std::string &output_filename) |
void | assign_initial_values_impulsive () |
Assign initial values for an impulsive start. More... | |
void | shift_time_values () |
void | calculate_predictions () |
void | set_nodal_and_elemental_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
virtual void | set_mesh_level_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
void | set_consistent_pinned_values_for_continuation (ContinuationStorageScheme *const &continuation_stepper_pt) |
Set consistent values for pinned data in continuation. More... | |
bool | does_pointer_correspond_to_mesh_data (double *const ¶meter_pt) |
Does the double pointer correspond to any mesh data. More... | |
void | set_nodal_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
Set the timestepper associated with the nodal data in the mesh. More... | |
void | set_elemental_internal_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
virtual void | compute_norm (double &norm) |
virtual void | compute_norm (Vector< double > &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm) |
virtual void | compute_error (FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm) |
virtual void | compute_error (FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_error (FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm) |
Returns the norm of the error and that of the exact solution. More... | |
virtual void | compute_error (FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, Vector< double > &error, Vector< double > &norm) |
bool | is_mesh_distributed () const |
Boolean to indicate if Mesh has been distributed. More... | |
OomphCommunicator * | communicator_pt () const |
void | delete_all_external_storage () |
Wipe the storage for all externally-based elements. More... | |
Protected Member Functions | |
void | build_mesh (QuadMeshBase *quad_mesh_pt, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) |
Generic mesh construction function: contains all the hard work. More... | |
![]() | |
unsigned long | assign_global_eqn_numbers (Vector< double * > &Dof_pt) |
Assign (global) equation numbers to the nodes. More... | |
void | describe_dofs (std::ostream &out, const std::string ¤t_string) const |
void | describe_local_dofs (std::ostream &out, const std::string ¤t_string) const |
void | assign_local_eqn_numbers (const bool &store_local_dof_pt) |
Assign local equation numbers in all elements. More... | |
void | convert_to_boundary_node (Node *&node_pt, const Vector< FiniteElement * > &finite_element_pt) |
void | convert_to_boundary_node (Node *&node_pt) |
Protected Attributes | |
unsigned | N_node_1d |
The number of nodes in each direction. More... | |
unsigned | Nz |
Number of elements in the z-direction. More... | |
double | Zmin |
Minimum value of z coordinate. More... | |
double | Zmax |
Maximum value of z coordinate. More... | |
Vector< ExtrudedDomain * > | Extruded_domain_pt |
Vector of pointers to extruded domain objects. More... | |
![]() | |
Vector< Vector< Node * > > | Boundary_node_pt |
bool | Lookup_for_elements_next_boundary_is_setup |
Vector< Vector< FiniteElement * > > | Boundary_element_pt |
Vector< Vector< int > > | Face_index_at_boundary |
Vector< Node * > | Node_pt |
Vector of pointers to nodes. More... | |
Vector< GeneralisedElement * > | Element_pt |
Vector of pointers to generalised elements. More... | |
std::vector< bool > | Boundary_coordinate_exists |
Additional Inherited Members | |
![]() | |
typedef void(FiniteElement::* | SteadyExactSolutionFctPt) (const Vector< double > &x, Vector< double > &soln) |
typedef void(FiniteElement::* | UnsteadyExactSolutionFctPt) (const double &time, const Vector< double > &x, Vector< double > &soln) |
![]() | |
static Steady< 0 > | Default_TimeStepper |
The Steady Timestepper. More... | |
static bool | Suppress_warning_about_empty_mesh_level_time_stepper_function |
Static boolean flag to control warning about mesh level timesteppers. More... | |
Mesh class that takes a 2D mesh consisting of quadrilateral elements and "extrudes" it in the z-direction.
|
inline |
Constructor: Pass a mesh consisting of quad elements, specify the number of elements in the z direction, and the corresponding length in this direction. Assumes that the back lower left corner is located at (0,0,0). Timestepper defaults to the Steady timestepper.
References oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::build_mesh().
|
inline |
Constructor: Pass a mesh consisting of quad elements, specify the number of elements in the z direction, and the corresponding minimum and maximum z-value of the mesh. Again, timestepper defaults to Steady.
References oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::build_mesh().
|
inline |
Destructor: If the underlying spatial domain was made up of any macro elements then we will have created an extruded domain which in turn creates extruded macro elements. As we're responsible for creating the domain, we need to kill it and it'll kill the extruded macro elements...
References oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::Extruded_domain_pt, and i.
|
protected |
Generic mesh construction function: contains all the hard work.
Generic mesh construction. This function contains all the details of the mesh generation process, including all the tedious loops, counting spacing and boundary functions. NOTE: The boundary number of the extruded mesh will follow the same numbering as the input quad mesh. The newly created "front" and "back" face of the 3D mesh will added after those boundaries. For example, if the input mesh has 4 boundaries; b_0, b_1, b_2 & b_3 then the extruded mesh will have 6 boundaries; eb_0, eb_1, eb_2, eb_3, eb_4 & eb_5 where eb_4 is the "front" face and eb5 is the "back" face. The boundaries eb_i here satisfy eb_i = (b_i) x [Zmin,Zmax].
/ Check if the node that we're about to construct lies on the
References b, oomph::Mesh::boundary_node_pt(), oomph::MacroElement::domain_pt(), e(), oomph::QuadTreeNames::E, oomph::Mesh::finite_element_pt(), oomph::Node::get_boundaries_pt(), i, int(), oomph::Node::is_hanging(), oomph::Node::is_on_boundary(), oomph::FiniteElement::macro_elem_pt(), oomph::MacroElement::macro_element_number(), oomph::ExtrudedDomain::macro_element_pt(), oomph::MeshExtrusionHelpers::Mesh_extrusion_helper, n, oomph::QuadTreeNames::N, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_node(), oomph::Mesh::nelement(), oomph::Domain::nmacro_element(), oomph::FiniteElement::nnode(), oomph::Mesh::nnode(), oomph::FiniteElement::nnode_1d(), oomph::FiniteElement::node_pt(), oomph::Mesh::node_pt(), Global_Parameters::Nz, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, oomph::QuadTreeNames::S, oomph::QElementBase::s_macro_ll(), oomph::QElementBase::s_macro_ur(), oomph::TimingHelpers::timer(), oomph::QuadTreeNames::W, oomph::Node::x(), Global_Parameters::Zmax, and Global_Parameters::Zmin.
Referenced by oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::ExtrudedCubeMeshFromQuadMesh().
Vector< std::pair< unsigned, int > > oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::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. If the element lies on a boundary then the user will be given the corresponding boundary index and the index of the face of quad_el_pt attached to the boundary. If the element does NOT lie on any boundaries, this function simply returns a vector of size zero.
References b, oomph::Mesh::boundary_element_pt(), e(), oomph::Mesh::face_index_at_boundary(), oomph::Mesh::nboundary(), and oomph::Mesh::nboundary_element().
|
inline |
Access function for number of elements in z-direction (const version)
References oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::Nz.
|
inlinevirtual |
Return the value of the z-coordinate at the node given by the local node number, znode.
References oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::N_node_1d, oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::Nz, oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::Zmax, and oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::Zmin.
|
protected |
Vector of pointers to extruded domain objects.
Referenced by oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::~ExtrudedCubeMeshFromQuadMesh().
|
protected |
The number of nodes in each direction.
Referenced by oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::z_spacing_function().
|
protected |
Number of elements in the z-direction.
Referenced by oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::nz(), and oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::z_spacing_function().
|
protected |
Maximum value of z coordinate.
Referenced by oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::z_spacing_function().
|
protected |
Minimum value of z coordinate.
Referenced by oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::z_spacing_function().