![]() |
|
AlgebraicMesh version of RefineableQuarterTubeMesh. More...
#include <quarter_tube_mesh.template.h>
Public Member Functions | |
AlgebraicRefineableQuarterTubeMesh (GeomObject *wall_pt, const Vector< double > &xi_lo, const double &fract_mid, const Vector< double > &xi_hi, const unsigned &nlayer, const double centre_box_size=1.0, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
unsigned | self_test () |
Run self-test for algebraic mesh – return 0/1 for OK/failure. More... | |
QuarterTubeDomain::AxialSpacingFctPt & | axial_spacing_fct_pt () |
void | node_update (const bool &update_all_solid_nodes=false) |
void | algebraic_node_update (const unsigned &t, AlgebraicNode *&node_pt) |
void | update_node_update (AlgebraicNode *&node_pt) |
![]() | |
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... | |
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... | |
![]() | |
RefineableQuarterTubeMesh (GeomObject *wall_pt, const Vector< double > &xi_lo, const double &fract_mid, const Vector< double > &xi_hi, const unsigned &nlayer, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
virtual | ~RefineableQuarterTubeMesh () |
Destructor: empty. More... | |
![]() | |
QuarterTubeMesh (GeomObject *wall_pt, const Vector< double > &xi_lo, const double &fract_mid, const Vector< double > &xi_hi, const unsigned &nlayer, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
virtual | ~QuarterTubeMesh () |
Destructor: empty. More... | |
GeomObject *& | wall_pt () |
Access function to GeomObject representing wall. More... | |
QuarterTubeDomain * | domain_pt () |
Access function to domain. More... | |
QuarterTubeDomain::BLSquashFctPt & | bl_squash_fct_pt () |
QuarterTubeDomain * | domain_pt () const |
Access function to underlying domain. 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) |
![]() | |
RefineableBrickMesh () | |
Constructor: Setup static octree data. More... | |
RefineableBrickMesh (const RefineableBrickMesh &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const RefineableBrickMesh &)=delete |
Broken assignment operator. More... | |
virtual | ~RefineableBrickMesh () |
Destructor: More... | |
virtual void | setup_tree_forest () |
void | setup_octree_forest () |
Do what it says... More... | |
![]() | |
TreeBasedRefineableMesh () | |
Constructor, call the constructor of the base class. More... | |
TreeBasedRefineableMesh (const TreeBasedRefineableMesh &dummy)=delete | |
Broken copy constructor. More... | |
virtual | ~TreeBasedRefineableMesh () |
Empty virtual destructor. More... | |
![]() | |
TreeBasedRefineableMeshBase () | |
Constructor. More... | |
TreeBasedRefineableMeshBase (const TreeBasedRefineableMeshBase &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const TreeBasedRefineableMeshBase &)=delete |
Broken assignment operator. More... | |
virtual | ~TreeBasedRefineableMeshBase () |
Empty Destructor: More... | |
void | adapt (const Vector< double > &elemental_error) |
void | p_adapt (const Vector< double > &elemental_error) |
void | refine_uniformly (DocInfo &doc_info) |
Refine mesh uniformly and doc process. More... | |
void | refine_uniformly () |
Refine mesh uniformly. More... | |
void | p_refine_uniformly (DocInfo &doc_info) |
p-refine mesh uniformly and doc process More... | |
void | p_refine_uniformly () |
p-refine mesh uniformly More... | |
unsigned | unrefine_uniformly () |
void | p_unrefine_uniformly (DocInfo &doc_info) |
p-unrefine mesh uniformly More... | |
TreeForest * | forest_pt () |
Return pointer to the Forest represenation of the mesh. More... | |
void | doc_adaptivity_targets (std::ostream &outfile) |
Doc the targets for mesh adaptation. More... | |
unsigned & | max_refinement_level () |
Access fct for max. permissible refinement level (relative to base mesh) More... | |
unsigned & | min_refinement_level () |
Access fct for min. permissible refinement level (relative to base mesh) More... | |
unsigned & | max_p_refinement_level () |
unsigned & | min_p_refinement_level () |
virtual void | adapt_mesh (DocInfo &doc_info) |
virtual void | adapt_mesh () |
void | p_adapt_mesh (DocInfo &doc_info) |
void | p_adapt_mesh () |
virtual void | refine_selected_elements (const Vector< unsigned > &elements_to_be_refined) |
virtual void | refine_selected_elements (const Vector< RefineableElement * > &elements_to_be_refined) |
void | p_refine_selected_elements (const Vector< unsigned > &elements_to_be_refined) |
p-refine mesh by refining the elements identified by their numbers. More... | |
void | p_refine_selected_elements (const Vector< PRefineableElement * > &elements_to_be_refined_pt) |
p-refine mesh by refining the elements identified by their pointers. More... | |
virtual void | refine_base_mesh_as_in_reference_mesh (TreeBasedRefineableMeshBase *const &ref_mesh_pt) |
Refine to same degree as the reference mesh. More... | |
virtual bool | refine_base_mesh_as_in_reference_mesh_minus_one (TreeBasedRefineableMeshBase *const &ref_mesh_pt) |
virtual void | refine_as_in_reference_mesh (TreeBasedRefineableMeshBase *const &ref_mesh_pt) |
virtual void | get_refinement_levels (unsigned &min_refinement_level, unsigned &max_refinement_level) |
Get max/min refinement levels in mesh. More... | |
virtual void | get_elements_at_refinement_level (unsigned &refinement_level, Vector< RefineableElement * > &level_elements) |
virtual void | get_refinement_pattern (Vector< Vector< unsigned >> &to_be_refined) |
void | refine_base_mesh (Vector< Vector< unsigned >> &to_be_refined) |
Refine base mesh according to specified refinement pattern. More... | |
virtual void | refine (std::ifstream &restart_file) |
Refine mesh according to refinement pattern in restart file. More... | |
virtual void | dump_refinement (std::ostream &outfile) |
Dump refinement pattern to allow for rebuild. More... | |
virtual void | read_refinement (std::ifstream &restart_file, Vector< Vector< unsigned >> &to_be_refined) |
Read refinement pattern to allow for rebuild. More... | |
unsigned | uniform_refinement_level_when_pruned () const |
unsigned & | uniform_refinement_level_when_pruned () |
Level to which the mesh was uniformly refined when it was pruned. More... | |
![]() | |
bool | adapt_flag () |
RefineableMeshBase () | |
RefineableMeshBase (const RefineableMeshBase &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const RefineableMeshBase &)=delete |
Broken assignment operator. More... | |
virtual | ~RefineableMeshBase () |
Empty Destructor: More... | |
unsigned | nrefined () |
Access fct for number of elements that were refined. More... | |
unsigned | nunrefined () |
Access fct for number of elements that were unrefined. More... | |
unsigned & | nrefinement_overruled () |
unsigned & | max_keep_unrefined () |
ErrorEstimator *& | spatial_error_estimator_pt () |
Access to spatial error estimator. More... | |
ErrorEstimator * | spatial_error_estimator_pt () const |
Access to spatial error estimator (const version. More... | |
double & | min_permitted_error () |
double & | max_permitted_error () |
double & | min_error () |
double & | max_error () |
DocInfo *& | doc_info_pt () |
Access fct for pointer to DocInfo. More... | |
void | enable_adaptation () |
Enable adaptation. More... | |
void | disable_adaptation () |
Disable adaptation. More... | |
void | enable_p_adaptation () |
Enable adaptation. More... | |
void | disable_p_adaptation () |
Disable adaptation. More... | |
void | enable_additional_synchronisation_of_hanging_nodes () |
Enable additional synchronisation of hanging nodes. More... | |
void | disable_additional_synchronisation_of_hanging_nodes () |
Disable additional synchronisation of hanging nodes. More... | |
bool | is_adaptation_enabled () const |
Return whether the mesh is to be adapted. More... | |
bool | is_p_adaptation_enabled () const |
Return whether the mesh is to be adapted. More... | |
bool | is_additional_synchronisation_of_hanging_nodes_disabled () const |
Return whether additional synchronisation is enabled. More... | |
DocInfo | doc_info () |
Access fct for DocInfo. More... | |
void | p_unrefine_uniformly (DocInfo &doc_info) |
p-unrefine mesh uniformly More... | |
Private Types | |
enum | { Central_region , Lower_right_region , Upper_left_region } |
Remesh function ids. More... | |
Private Member Functions | |
void | node_update_central_region (const unsigned &t, AlgebraicNode *&node_pt) |
void | node_update_lower_right_region (const unsigned &t, AlgebraicNode *&node_pt) |
void | node_update_upper_left_region (const unsigned &t, AlgebraicNode *&node_pt) |
void | setup_algebraic_node_update () |
Setup algebraic update operation for all nodes. More... | |
void | update_node_update_in_region (AlgebraicNode *&node_pt, int ®ion_id) |
Private Attributes | |
double | Centre_box_size |
Size of centre box. More... | |
double | Lambda_x |
Fractional width of central region. More... | |
double | Lambda_y |
Fractional height of central region. More... | |
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... | |
![]() | |
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) |
![]() | |
void | complete_hanging_nodes (const int &ncont_interpolated_values) |
Complete the hanging node scheme recursively. More... | |
void | complete_hanging_nodes_recursively (Node *&nod_pt, Vector< Node * > &master_nodes, Vector< double > &hang_weights, const int &ival) |
Auxiliary routine for recursive hanging node completion. 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 |
![]() | |
QuarterTubeDomain * | Domain_pt |
Pointer to domain. More... | |
GeomObject * | Wall_pt |
Pointer to the geometric object that represents the curved wall. More... | |
Vector< double > | Xi_lo |
Lower limits for the coordinates along the wall. More... | |
double | Fract_mid |
Fraction along wall where outer ring is to be divided. More... | |
Vector< double > | Xi_hi |
Upper limits for the coordinates along the wall. More... | |
![]() | |
unsigned | Uniform_refinement_level_when_pruned |
Level to which the mesh was uniformly refined when it was pruned. More... | |
unsigned | Max_refinement_level |
Max. permissible refinement level (relative to base mesh) More... | |
unsigned | Min_refinement_level |
Min. permissible refinement level (relative to base mesh) More... | |
unsigned | Max_p_refinement_level |
Max. permissible p-refinement level (relative to base mesh) More... | |
unsigned | Min_p_refinement_level |
Min. permissible p-refinement level (relative to base mesh) More... | |
TreeForest * | Forest_pt |
Forest representation of the mesh. More... | |
![]() | |
ErrorEstimator * | Spatial_error_estimator_pt |
Pointer to spatial error estimator. More... | |
double | Max_permitted_error |
Max. error (i.e. split elements if their error is larger) More... | |
double | Min_permitted_error |
Min. error (i.e. (try to) merge elements if their error is smaller) More... | |
double | Min_error |
Min.actual error. More... | |
double | Max_error |
Max. actual error. More... | |
unsigned | Nrefined |
Stats: Number of elements that were refined. More... | |
unsigned | Nunrefined |
Stats: Number of elements that were unrefined. More... | |
bool | Adapt_flag |
Flag that requests adaptation. More... | |
bool | P_adapt_flag |
Flag that requests p-adaptation. More... | |
bool | Additional_synchronisation_of_hanging_nodes_not_required |
Flag that disables additional synchronisation of hanging nodes. More... | |
DocInfo * | Doc_info_pt |
Pointer to DocInfo. More... | |
unsigned | Max_keep_unrefined |
unsigned | Nrefinement_overruled |
AlgebraicMesh version of RefineableQuarterTubeMesh.
Algebraic 3D quarter tube mesh class.
The mesh boundaries are numbered as follows:
Cross section through mesh looking along tube.........
---___ | ---____ | - BOUNDARY 3 | / | [Region 2] / | | / | | N / | | |_ E / | BOUNDARY 1 |------------ | | | | | [Region 0] | [Region 1] | ^ | | | / \ direction of | N | N | | 2nd Lagrangian | |_ E | |_ E | | coordinate |____________|____________| | along wall GeomObject BOUNDARY 2
The Domain is built of slices each consisting of three MacroElements as sketched. The local coordinates are such that the (E)astern direction coincides with the positive s_0 direction, while the (N)orther direction coincides with the positive s_1 direction. The positive s_2 direction points down the tube.
Elements need to be derived from AlgebraicElementBase. In addition to the refinement procedures available for the RefineableQuarterTubeMesh which forms the basis for this mesh, three algebraic node update functions are implemented for the nodes in the three regions defined by the Domain MacroElements. Note: it is assumed the cross section down the tube is uniform when setup_algebraic_node_update() is called.
|
private |
|
inline |
Constructor: Pass pointer to geometric object, start and end coordinates of the geometric object and the fraction along the 2nd Lagrangian coordinate at which the dividing line between region 1 and region 2 is to be placed, and timestepper (defaults to (Steady) default timestepper defined in Mesh). Sets up the refineable mesh (by calling the constructor for the underlying RefineableQuarterTubeMesh).
References oomph::AlgebraicMesh::add_geom_object_list_pt(), plotDoE::name, oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::setup_algebraic_node_update(), oomph::Global_string_for_annotation::string(), and oomph::QuarterTubeMesh< ELEMENT >::wall_pt().
|
inlinevirtual |
Implement the algebraic node update function for a node at time level t (t=0: present; t>0: previous): Update with the node's first (default) update function.
Implements oomph::AlgebraicMesh.
References oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::Central_region, oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::Lower_right_region, oomph::AlgebraicMesh::node_pt(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_central_region(), oomph::AlgebraicNode::node_update_fct_id(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_lower_right_region(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_upper_left_region(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::Global_string_for_annotation::string(), plotPSD::t, and oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::Upper_left_region.
|
inlinevirtual |
Broken version of the QuarterTubeDomain function Function is broken because axial spacing isn't implemented yet for the Algebraic version of the RefineableQuarterTubeMesh. Note: this function must be used BEFORE algebraic_node_update(...) is called.
Reimplemented from oomph::QuarterTubeMesh< ELEMENT >.
References oomph::QuarterTubeDomain::axial_spacing_fct_pt(), oomph::QuarterTubeMesh< ELEMENT >::Domain_pt, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and oomph::Global_string_for_annotation::string().
|
inlinevirtual |
Resolve mesh update: Update current nodal positions via algebraic node update. [Doesn't make sense to use this mesh with SolidElements anyway, so we buffer the case if update_all_solid_nodes is set to true.]
Reimplemented from oomph::AlgebraicMesh.
References oomph::AlgebraicMesh::node_update(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and oomph::Global_string_for_annotation::string().
Referenced by oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::AlgebraicRefineableQuarterTubeMesh().
|
private |
Algebraic update function for a node that is located in the central region
Algebraic update function: Update in central region according to wall shape at time level t (t=0: present; t>0: previous)
References oomph::GeomObject::ndim(), oomph::TimeStepper::nprev_values(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::GeomObject::position(), oomph::Node::position_time_stepper_pt(), oomph::Global_string_for_annotation::string(), plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), and oomph::Node::x().
Referenced by oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::algebraic_node_update().
|
private |
Algebraic update function for a node that is located in the lower-right region
Algebraic update function: Update in lower-right region according to wall shape at time level t (t=0: present; t>0: previous)
References oomph::GeomObject::ndim(), oomph::TimeStepper::nprev_values(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::GeomObject::position(), oomph::Node::position_time_stepper_pt(), oomph::Global_string_for_annotation::string(), plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), and oomph::Node::x().
Referenced by oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::algebraic_node_update().
|
private |
Algebraic update function for a node that is located in the upper-left region
Algebraic update function: Update in upper left region according to wall shape at time level t (t=0: present; t>0: previous)
References oomph::AlgebraicNode::geom_object_pt(), oomph::GeomObject::ndim(), oomph::TimeStepper::nprev_values(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::GeomObject::position(), oomph::Node::position_time_stepper_pt(), oomph::Global_string_for_annotation::string(), plotPSD::t, oomph::AlgebraicNode::vector_geom_object_pt(), oomph::AlgebraicNode::vector_ref_value(), and oomph::Node::x().
Referenced by oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::algebraic_node_update().
|
inline |
Run self-test for algebraic mesh – return 0/1 for OK/failure.
References oomph::AlgebraicMesh::self_test().
|
private |
Setup algebraic update operation for all nodes.
//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// Setup algebraic node update data, based on 3 regions, each undergoing a different node update strategy. These regions are defined by the three MacroElements in each of the nlayer slices of the QuarterTubeDomain used to build the mesh. The Mesh is suspended from the ‘wall’ GeomObject pointed to by wall_pt. The lower right edge of the mesh is located at the wall's coordinate xi[1]==xi_lo[1], the upper left edge at xi[1]=xi_hi[1], i.e. a view looking down the tube length. The dividing line between the two outer regions is located at the fraction fract_mid between these two coordinates. Node updating strategy:
References e(), oomph::Mesh::element_pt(), oomph::Mesh::finite_element_pt(), n, plotDoE::name, oomph::Mesh::nelement(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nnode_1d(), oomph::FiniteElement::node_pt(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::Global_string_for_annotation::string(), plotDoE::x, oomph::Node::x(), and y.
Referenced by oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::AlgebraicRefineableQuarterTubeMesh().
|
inlinevirtual |
Update the node update info for specified algebraic node following any spatial mesh adaptation.
Implements oomph::AlgebraicMesh.
References i, oomph::AlgebraicMesh::node_pt(), oomph::AlgebraicNode::node_update_fct_id(), and oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::update_node_update_in_region().
|
private |
Update algebraic node update function for nodes in the region defined by region_id
Update algebraic update function for nodes in region defined by region_id.
References oomph::AlgebraicNode::add_node_update_info(), oomph::AlgebraicNode::kill_node_update_info(), oomph::AlgebraicNode::vector_geom_object_pt(), and oomph::AlgebraicNode::vector_ref_value().
Referenced by oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::update_node_update().
|
private |
Size of centre box.
|
private |
Fractional width of central region.
|
private |
Fractional height of central region.