![]() |
|
#include <bretherton_spine_mesh.template.h>
Public Member Functions | |
BrethertonSpineMesh (const unsigned &nx1, const unsigned &nx2, const unsigned &nx3, const unsigned &nh, const unsigned &nhalf, const double &h, GeomObject *lower_wall_pt, GeomObject *upper_wall_pt, const double &zeta_start, const double &zeta_transition_start, const double &zeta_transition_end, const double &zeta_end, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
FiniteElement *& | interface_element_pt (const unsigned long &i) |
Access functions for pointers to interface elements. More... | |
unsigned long | ninterface_element () const |
Number of elements on interface. More... | |
FiniteElement *& | bulk_element_pt (const unsigned long &i) |
Access functions for pointers to elements in bulk. More... | |
unsigned long | nbulk () const |
Number of elements in bulk. More... | |
unsigned | nfree_surface_spines () |
double | find_distance_to_free_surface (GeomObject *const &fs_geom_object_pt, Vector< double > &initial_zeta, const Vector< double > &spine_base, const Vector< double > &spine_end) |
Recalculate the spine lengths after repositioning. More... | |
void | reposition_spines (const double &zeta_lo_transition_start, const double &zeta_lo_transition_end, const double &zeta_up_transition_start, const double &zeta_up_transition_end) |
Reposition the spines in response to changes in geometry. More... | |
void | pin_all_spines () |
void | spine_node_update (SpineNode *spine_node_pt) |
ELEMENT * | control_element_pt () |
double | spine_centre_fraction () const |
Read the value of the spine centre's vertical fraction. More... | |
void | set_spine_centre_fraction_pt (double *const &fraction_pt) |
Set the pointer to the spine centre's vertial fraction. More... | |
![]() | |
SingleLayerSpineMesh (const unsigned &nx, const unsigned &ny, const double &lx, const double &h, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
SingleLayerSpineMesh (const unsigned &nx, const unsigned &ny, const double &lx, const double &h, const bool &periodic_in_x, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
![]() | |
RectangularQuadMesh (const unsigned &nx, const unsigned &ny, const double &lx, const double &ly, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
RectangularQuadMesh (const unsigned &nx, const unsigned &ny, const double &xmin, const double &xmax, const double &ymin, const double &ymax, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
RectangularQuadMesh (const unsigned &nx, const unsigned &ny, const double &lx, const double &ly, const bool &periodic_in_x, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
RectangularQuadMesh (const unsigned &nx, const unsigned &ny, const double &xmin, const double &xmax, const double &ymin, const double &ymax, const bool &periodic_in_x, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
const unsigned & | nx () const |
Return number of elements in x direction. More... | |
const unsigned & | ny () const |
Return number of elements in y direction. More... | |
const double | x_min () const |
Return the minimum value of x coordinate. More... | |
const double | x_max () const |
Return the maximum value of x coordinate. More... | |
const double | y_min () const |
Return the minimum value of y coordinate. More... | |
const double | y_max () const |
Return the maximum value of y coordinate. More... | |
virtual void | element_reorder () |
virtual double | x_spacing_function (unsigned xelement, unsigned xnode, unsigned yelement, unsigned ynode) |
virtual double | y_spacing_function (unsigned xelement, unsigned xnode, unsigned yelement, unsigned ynode) |
![]() | |
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) |
![]() | |
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... | |
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) |
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... | |
![]() | |
virtual | ~SpineMesh () |
Destructor to clean up the memory allocated to the spines. More... | |
Spine *& | spine_pt (const unsigned long &i) |
Return the i-th spine in the mesh. More... | |
const Spine * | spine_pt (const unsigned long &i) const |
Return the i-th spine in the mesh (const version) More... | |
unsigned long | nspine () const |
Return the number of spines in the mesh. More... | |
void | add_spine_pt (Spine *const &spine_pt) |
Add a spine to the mesh. More... | |
SpineNode * | node_pt (const unsigned long &n) |
Return a pointer to the n-th global SpineNode. More... | |
SpineNode * | element_node_pt (const unsigned long &e, const unsigned &n) |
unsigned long | assign_global_spine_eqn_numbers (Vector< double * > &Dof_pt) |
Assign spines to Spine_pt vector of element. More... | |
void | describe_spine_dofs (std::ostream &out, const std::string ¤t_string) const |
void | set_mesh_level_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
void | set_spine_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
Assign time stepper to spines data. More... | |
void | set_consistent_pinned_spine_values_for_continuation (ContinuationStorageScheme *const &continuation_stepper_pt) |
bool | does_pointer_correspond_to_spine_data (double *const ¶meter_pt) |
void | node_update (const bool &update_all_solid_nodes=false) |
void | dump (std::ofstream &dump_file) const |
Overload the dump function so that the spine data is dumped. More... | |
void | read (std::ifstream &restart_file) |
Overload the read function so that the spine data is also read. More... | |
Protected Member Functions | |
void | spine_node_update_film_lower (SpineNode *spine_node_pt) |
void | spine_node_update_horizontal_transition_lower (SpineNode *spine_node_pt) |
void | spine_node_update_vertical_transition_lower (SpineNode *spine_node_pt) |
void | spine_node_update_vertical_transition_upper (SpineNode *spine_node_pt) |
void | spine_node_update_horizontal_transition_upper (SpineNode *spine_node_pt) |
void | spine_node_update_film_upper (SpineNode *spine_node_pt) |
void | spine_node_update_channel (SpineNode *spine_node_pt) |
void | initial_element_reorder () |
![]() | |
virtual void | build_single_layer_mesh (TimeStepper *time_stepper_pt) |
![]() | |
void | build_mesh (TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) |
Generic mesh construction function: contains all the hard work. More... | |
RectangularQuadMesh (const unsigned &nx, const unsigned &ny, const double &xmin, const double &xmax, const double &ymin, const double &ymax, const bool &periodic_in_x, const bool &build, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
![]() | |
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 | Nx1 |
Number of elements along wall in deposited film region. More... | |
unsigned | Nx2 |
Number of elements along wall in horizontal transition region. More... | |
unsigned | Nx3 |
Number of elements along wall in channel region. More... | |
unsigned | Nhalf |
unsigned | Nh |
Number of elements across the deposited film. More... | |
double | H |
Thickness of deposited film. More... | |
GeomObject * | Upper_wall_pt |
Pointer to geometric object that represents the upper wall. More... | |
GeomObject * | Lower_wall_pt |
Pointer to geometric object that represents the lower wall. More... | |
double | Zeta_start |
Start coordinate on wall. More... | |
double | Zeta_end |
Wall coordinate of end of liquid filled region (inflow) More... | |
double | Zeta_transition_start |
Wall coordinate of start of the transition region. More... | |
double | Zeta_transition_end |
Wall coordinate of end of transition region. More... | |
double * | Spine_centre_fraction_pt |
Pointer to vertical fraction of the spine centre. More... | |
double | Default_spine_centre_fraction |
Default spine fraction. More... | |
ELEMENT * | Control_element_pt |
Vector< FiniteElement * > | Bulk_element_pt |
Vector of pointers to element in the fluid layer. More... | |
Vector< FiniteElement * > | Interface_element_pt |
Vector of pointers to interface elements. More... | |
![]() | |
unsigned | Nx |
Nx: number of elements in x-direction. More... | |
unsigned | Ny |
Ny: number of elements in y-direction. More... | |
unsigned | Np |
Np: number of (linear) points in the element. More... | |
double | Xmin |
Minimum value of x coordinate. More... | |
double | Xmax |
Maximum value of x coordinate. More... | |
double | Ymin |
Minimum value of y coordinate. More... | |
double | Ymax |
Maximum value of y coordinate. More... | |
bool | Xperiodic |
![]() | |
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 |
![]() | |
Vector< Spine * > | Spine_pt |
A Spine mesh contains a Vector of pointers to spines. 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... | |
Mesh for 2D Bretherton problem – based on single layer mesh. Templated by spine-ified Navier-Stokes element type (e.g. SpineElement<QCrouzeixRaviartElement<2> > and the corresponding interface element (e.g. SpineLineFluidInterfaceElement<SpineElement<QCrouzeixRaviartElement<2> > >
oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh | ( | const unsigned & | nx1, |
const unsigned & | nx2, | ||
const unsigned & | nx3, | ||
const unsigned & | nh, | ||
const unsigned & | nhalf, | ||
const double & | h, | ||
GeomObject * | lower_wall_pt, | ||
GeomObject * | upper_wall_pt, | ||
const double & | zeta_start, | ||
const double & | zeta_transition_start, | ||
const double & | zeta_transition_end, | ||
const double & | zeta_end, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
Constructor. Arguments:
Constructor. Arguments:
|
inline |
Access functions for pointers to elements in bulk.
References oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::Bulk_element_pt, and i.
|
inline |
Pointer to control element (just under the symmetry line near the bubble tip, so the bubble tip is located at s=[1.0,1.0] in this element.
References oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::Control_element_pt.
double oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::find_distance_to_free_surface | ( | GeomObject *const & | fs_geom_object_pt, |
Vector< double > & | initial_zeta, | ||
const Vector< double > & | spine_base, | ||
const Vector< double > & | spine_end | ||
) |
Recalculate the spine lengths after repositioning.
Calculate the distance from the spine base to the free surface, i.e. the spine height.
References boost::multiprecision::fabs(), i, lambda, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, oomph::GeomObject::position(), Eigen::ArrayBase< Derived >::pow(), oomph::DoubleMatrixBase::solve(), and sqrt().
|
protected |
Initial reordering elements of the elements – before the channel mesh is added. Vertical stacks of elements, each topped by their interface element – this is (currently) identical to the version in the SingleLayerSpineMesh but it's important that the element reordering is maintained in exactly this form for the rest of the mesh generation process to work properly. Therefore we keep a copy of the function in here.
Reorder elements: Vertical stacks of elements, each topped by their interface element – this is (currently) identical to the version in the SingleLayerSpineMesh but it's important that element reordering is maintained in exactly this form so to be on the safe side, we move the function in here.
References e(), i, j, GlobalParameters::Nx, and GlobalParameters::Ny.
|
inline |
Access functions for pointers to interface elements.
References i, and oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::Interface_element_pt.
|
inline |
Number of elements in bulk.
References oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::Bulk_element_pt.
|
inline |
Number of free-surface spines (i.e. excluding the dummy spines in the channel region)
References oomph::Mesh::finite_element_pt(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::Nhalf, oomph::FiniteElement::nnode_1d(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::Nx1, and oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::Nx2.
|
inline |
Number of elements on interface.
References oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::Interface_element_pt.
|
inline |
Pin all spines so the mesh can be used for computation without free surfaces
References i, oomph::SpineMesh::nspine(), oomph::Data::pin(), oomph::Spine::spine_height_pt(), and oomph::SpineMesh::spine_pt().
void oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::reposition_spines | ( | const double & | zeta_lo_transition_start, |
const double & | zeta_lo_transition_end, | ||
const double & | zeta_up_transition_start, | ||
const double & | zeta_up_transition_end | ||
) |
Reposition the spines in response to changes in geometry.
Reposition the spines that emenate from the lower wall.
References e(), oomph::Mesh::element_pt(), oomph::Mesh::flush_element_and_node_storage(), oomph::Spine::height(), i, j, Global_Physical_Variables::Lower_wall_pt, oomph::Mesh::nelement(), oomph::oomph_info, oomph::GeomObject::position(), GlobalParameters::S0, oomph::Node::set_coordinates_on_boundary(), oomph::Spine::set_geom_object_pt(), oomph::Spine::set_geom_parameter(), oomph::SpineNode::spine_pt(), Global_Physical_Variables::Upper_wall_pt, and Eigen::zeta().
|
inline |
Set the pointer to the spine centre's vertial fraction.
References oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::Spine_centre_fraction_pt.
|
inline |
Read the value of the spine centre's vertical fraction.
References oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::Spine_centre_fraction_pt.
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_horizontal_transition_lower(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_horizontal_transition_upper(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_vertical_transition_lower(), and oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_vertical_transition_upper().
|
inlinevirtual |
General node update function implements pure virtual function defined in SpineMesh base class and performs specific update actions, depending on the node update fct id stored for each node.
Reimplemented from oomph::SingleLayerSpineMesh< ELEMENT >.
References oomph::SpineNode::node_update_fct_id(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_channel(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_film_lower(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_film_upper(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_horizontal_transition_lower(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_horizontal_transition_upper(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_vertical_transition_lower(), and oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_vertical_transition_upper().
|
inlineprotected |
Update function for the nodes in the channel region ahead of the finger tip: Nodes are evenly distributed along vertical lines between the top and bottom walls
References oomph::SpineNode::fraction(), oomph::Spine::geom_object_pt(), oomph::Spine::geom_parameter(), oomph::GeomObject::position(), oomph::SpineNode::spine_pt(), w, and oomph::Node::x().
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update().
|
inlineprotected |
Update function for the deposited film region in the lower part of the domain: Vertical spines
References oomph::SpineNode::fraction(), oomph::Spine::geom_object_pt(), oomph::Spine::geom_parameter(), oomph::SpineNode::h(), oomph::GeomObject::position(), oomph::SpineNode::spine_pt(), w, and oomph::Node::x().
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update().
|
inlineprotected |
Update function for the deposited film region in the upper part of the domain: Vertical spines
References oomph::SpineNode::fraction(), oomph::Spine::geom_object_pt(), oomph::Spine::geom_parameter(), oomph::SpineNode::h(), oomph::GeomObject::position(), oomph::SpineNode::spine_pt(), w, and oomph::Node::x().
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update().
|
inlineprotected |
Update function for the horizontal transitition region in the lower part of the domain: Spine points from wall to origin
References oomph::SpineNode::fraction(), oomph::Spine::geom_object_pt(), oomph::Spine::geom_parameter(), oomph::SpineNode::h(), N, oomph::GeomObject::position(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_centre_fraction(), oomph::SpineNode::spine_pt(), sqrt(), w, and oomph::Node::x().
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update().
|
inlineprotected |
Update function for the horizontal transitition region in the upper part of the domain: Spine points towards origin
References oomph::SpineNode::fraction(), oomph::Spine::geom_object_pt(), oomph::Spine::geom_parameter(), oomph::SpineNode::h(), N, oomph::GeomObject::position(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_centre_fraction(), oomph::SpineNode::spine_pt(), sqrt(), w, and oomph::Node::x().
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update().
|
inlineprotected |
Update function for the vertical transitition region in the lower part of the domain: Spine points to origin
References oomph::SpineNode::fraction(), oomph::Spine::geom_object_pt(), oomph::Spine::geom_parameter(), oomph::SpineNode::h(), N, oomph::GeomObject::position(), GlobalParameters::S0, oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_centre_fraction(), oomph::SpineNode::spine_pt(), sqrt(), w, and oomph::Node::x().
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update().
|
inlineprotected |
Update function for the vertical transitition region in the upper part of the domain: Spine points to origin
References oomph::SpineNode::fraction(), oomph::Spine::geom_object_pt(), oomph::Spine::geom_parameter(), oomph::SpineNode::h(), N, oomph::GeomObject::position(), GlobalParameters::S0, oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_centre_fraction(), oomph::SpineNode::spine_pt(), sqrt(), w, and oomph::Node::x().
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update().
|
protected |
Vector of pointers to element in the fluid layer.
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::bulk_element_pt(), and oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::nbulk().
|
protected |
Pointer to control element (just under the symmetry line near the bubble tip; the bubble tip is located at s=[1.0,1.0] in this element
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::control_element_pt().
|
protected |
Default spine fraction.
|
protected |
Thickness of deposited film.
|
protected |
Vector of pointers to interface elements.
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::interface_element_pt(), and oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::ninterface_element().
|
protected |
Pointer to geometric object that represents the lower wall.
|
protected |
Number of elements across the deposited film.
|
protected |
Number of elements in vertical transition region (there are twice as many elements across the channel)
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::nfree_surface_spines().
|
protected |
Number of elements along wall in deposited film region.
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::nfree_surface_spines().
|
protected |
Number of elements along wall in horizontal transition region.
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::nfree_surface_spines().
|
protected |
Number of elements along wall in channel region.
|
protected |
Pointer to vertical fraction of the spine centre.
Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::set_spine_centre_fraction_pt(), and oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_centre_fraction().
|
protected |
Pointer to geometric object that represents the upper wall.
|
protected |
Wall coordinate of end of liquid filled region (inflow)
|
protected |
Start coordinate on wall.
|
protected |
Wall coordinate of end of transition region.
|
protected |
Wall coordinate of start of the transition region.