![]() |
|
Algebraic version of CylinderWithFlagMesh. More...
#include <cylinder_with_flag_mesh.template.h>
Public Member Functions | |
AlgebraicCylinderWithFlagMesh (Circle *cylinder_pt, GeomObject *top_flag_pt, GeomObject *bottom_flag_pt, GeomObject *tip_flag_pt, const double &length, const double &height, const double &flag_length, const double &flag_height, const double ¢re_x, const double ¢re_y, const double &a, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
virtual | ~AlgebraicCylinderWithFlagMesh () |
Destructor: empty. More... | |
void | set_bottom_flag_pt (GeomObject *bottom_flag_pt) |
void | set_top_flag_pt (GeomObject *top_flag_pt) |
void | set_tip_flag_pt (GeomObject *tip_flag_pt) |
GeomObject * | bottom_flag_pt () const |
GeomObject * | top_flag_pt () const |
GeomObject * | tip_flag_pt () const |
void | update_node_update (AlgebraicNode *&node_pt) |
void | algebraic_node_update (const unsigned &t, AlgebraicNode *&node_pt) |
The algebraic node update function. More... | |
![]() | |
AlgebraicMesh () | |
AlgebraicMesh (const AlgebraicMesh &)=delete | |
Broken copy constructor. More... | |
~AlgebraicMesh () | |
Broken assignment operator. More... | |
AlgebraicNode * | node_pt (const unsigned long &n) |
Return a pointer to the n-th global AlgebraicNode. More... | |
void | node_update (const bool &update_all_solid_nodes=false) |
unsigned | self_test () |
Self test: check consistentency of multiple node updates. More... | |
void | add_geom_object_list_pt (GeomObject *geom_object_pt) |
unsigned | ngeom_object_list_pt () |
Return number of geometric objects associated with AlgebraicMesh. More... | |
GeomObject * | geom_object_list_pt (const unsigned &i) |
Access function to the ith GeomObject. More... | |
![]() | |
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 | 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... | |
![]() | |
CylinderWithFlagMesh (Circle *cylinder_pt, GeomObject *top_flag_pt, GeomObject *bottom_flag_pt, GeomObject *tip_flag_pt, const double &length, const double &height, const double &flag_length, const double &flag_height, const double ¢re_x, const double ¢re_y, const double &a, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
virtual | ~CylinderWithFlagMesh () |
Destructor: Kill the domain. More... | |
CylinderWithFlagDomain * | domain_pt () |
Access function to the domain. More... | |
![]() | |
QuadMeshBase () | |
Constructor (empty) More... | |
QuadMeshBase (const QuadMeshBase &node)=delete | |
Broken copy constructor. More... | |
void | operator= (const QuadMeshBase &)=delete |
Broken assignment operator. More... | |
virtual | ~QuadMeshBase () |
Destructor (empty) More... | |
void | setup_boundary_element_info () |
void | setup_boundary_element_info (std::ostream &outfile) |
Protected Member Functions | |
void | setup_algebraic_node_update () |
Function to setup the algebraic node update. More... | |
void | node_update_I (const unsigned &t, AlgebraicNode *&node_pt) |
Helper function. More... | |
void | node_update_II (const unsigned &t, AlgebraicNode *&node_pt) |
Helper function. More... | |
void | node_update_III (const unsigned &t, AlgebraicNode *&node_pt) |
Helper function. More... | |
void | node_update_IV (const unsigned &t, AlgebraicNode *&node_pt) |
Helper function. More... | |
void | node_update_V (const unsigned &t, AlgebraicNode *&node_pt) |
Helper function. More... | |
void | node_update_VI (const unsigned &t, AlgebraicNode *&node_pt) |
Helper function. More... | |
void | node_update_VII (const unsigned &t, AlgebraicNode *&node_pt) |
Helper function. More... | |
void | node_update_VIII (const unsigned &t, AlgebraicNode *&node_pt) |
Helper function. More... | |
void | node_update_IX (const unsigned &t, AlgebraicNode *&node_pt) |
Helper function. 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) |
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... | |
Algebraic version of CylinderWithFlagMesh.
/////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
|
inline |
Constructor. Pass the pointers to the GeomObjects that parametrise the cylinder, the three edges of the flag, the length and height of the domain, the length and height of the flag, the coordinates of the centre of the cylinder and its radius. Timestepper defaults to Steady default timestepper.
References oomph::AlgebraicMesh::add_geom_object_list_pt(), oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::bottom_flag_pt(), oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::tip_flag_pt(), and oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::top_flag_pt().
|
inlinevirtual |
|
virtual |
The algebraic node update function.
Update nodal position at time level t (t=0: present; t>0: previous)
Implements oomph::AlgebraicMesh.
References oomph::AlgebraicNode::node_update_fct_id(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and plotPSD::t.
|
inline |
Read-only access to geometric object that defines the bottom face of the flag
References oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::Bottom_flag_pt.
Referenced by oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::AlgebraicCylinderWithFlagMesh(), and oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::set_bottom_flag_pt().
|
protected |
Helper function.
Node update for region I.
References GlobalParameters::Height, oomph::GeomObject::position(), UniformPSDSelfTest::r, plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), oomph::Node::x(), and Eigen::zeta().
|
protected |
Helper function.
Node update for region II.
References GlobalParameters::Height, oomph::GeomObject::position(), UniformPSDSelfTest::r, plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), oomph::Node::x(), and Eigen::zeta().
|
protected |
Helper function.
Node update for region III.
References GlobalParameters::Height, Global_Physical_Variables::Length, oomph::GeomObject::position(), UniformPSDSelfTest::r, plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), oomph::Node::x(), and Eigen::zeta().
|
protected |
Helper function.
Node update for region IV.
References Global_Parameters::Centre_x, Global_Parameters::Centre_y, GlobalParameters::Height, Global_Physical_Variables::Length, p1, oomph::GeomObject::position(), sqrt(), plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), oomph::Node::x(), and Eigen::zeta().
|
protected |
Helper function.
Node update for region IX.
Extreme angles on circle
References Eigen::bfloat16_impl::asin(), Eigen::bfloat16_impl::atan(), GlobalParameters::Cylinder_pt, GlobalParameters::Height, Global_Physical_Variables::Length, OscillatingCylinder::position(), oomph::GeomObject::position(), plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), oomph::Node::x(), and Eigen::zeta().
|
protected |
Helper function.
Node update for region V.
References Global_Parameters::Centre_x, Global_Parameters::Centre_y, GlobalParameters::Height, Global_Physical_Variables::Length, p1, oomph::GeomObject::position(), sqrt(), plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), oomph::Node::x(), and Eigen::zeta().
|
protected |
Helper function.
Node update for region VI.
References GlobalParameters::Height, Global_Physical_Variables::Length, p1, oomph::GeomObject::position(), plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), oomph::Node::x(), and Eigen::zeta().
|
protected |
Helper function.
Node update for region VII.
References GlobalParameters::Height, Global_Physical_Variables::Length, p1, oomph::GeomObject::position(), plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), oomph::Node::x(), and Eigen::zeta().
|
protected |
Helper function.
Node update for region VIII.
Extreme angles on circle
References Eigen::bfloat16_impl::asin(), Eigen::bfloat16_impl::atan(), GlobalParameters::Cylinder_pt, GlobalParameters::Height, Global_Physical_Variables::Length, OscillatingCylinder::position(), oomph::GeomObject::position(), plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), oomph::Node::x(), and Eigen::zeta().
|
inline |
Set geometric object that defines the bottom face of the flag
References oomph::CylinderWithFlagDomain::bottom_flag_pt(), oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::bottom_flag_pt(), oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::Bottom_flag_pt, and oomph::CylinderWithFlagMesh< ELEMENT >::domain_pt().
|
inline |
Set the geometric object that defines the tip of the flag
References oomph::CylinderWithFlagMesh< ELEMENT >::domain_pt(), oomph::CylinderWithFlagDomain::tip_flag_pt(), oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::tip_flag_pt(), and oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::Tip_flag_pt.
|
inline |
Set the geometric object that defines the top face of the flag
References oomph::CylinderWithFlagMesh< ELEMENT >::domain_pt(), oomph::CylinderWithFlagDomain::top_flag_pt(), oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::top_flag_pt(), and oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::Top_flag_pt.
|
protected |
Function to setup the algebraic node update.
Setup algebraic node update.
/////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
set the size ??
References Flag_definition::Bottom_flag_pt, i, k, oomph::FiniteElement::local_coordinate_of_node(), oomph::GeomObject::locate_zeta(), oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), s, Flag_definition::Tip_flag_pt, Flag_definition::Top_flag_pt, oomph::Node::x(), and Eigen::zeta().
Referenced by oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::AlgebraicCylinderWithFlagMesh().
|
inline |
Read-only access to geometric object that defines the tip of the flag
References oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::Tip_flag_pt.
Referenced by oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::AlgebraicCylinderWithFlagMesh(), and oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::set_tip_flag_pt().
|
inline |
Read-only access to geometric object that defines the top face of the flag
References oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::Top_flag_pt.
Referenced by oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::AlgebraicCylinderWithFlagMesh(), and oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::set_top_flag_pt().
|
inlinevirtual |
Update the geometric references that are used to update node after mesh adaptation. Empty – no update of node update required without adaptativity
Implements oomph::AlgebraicMesh.
Reimplemented in oomph::RefineableAlgebraicCylinderWithFlagMesh< ELEMENT >, and oomph::RefineableAlgebraicCylinderWithFlagMesh< FLUID_ELEMENT >.
|
protected |
radius of the cylinder
|
protected |
Bottom flag.
Referenced by oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::bottom_flag_pt(), and oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::set_bottom_flag_pt().
|
protected |
x position of the centre of the cylinder
|
protected |
x position of the centre of the cylinder
|
protected |
Cylinder.
|
protected |
Flag thickness.
|
protected |
Flag length.
|
protected |
Height of the domain.
|
protected |
Length of the domain.
|
protected |
|
protected |