![]() |
|
#include <refineable_elements.h>
Public Member Functions | |
RefineableElement () | |
virtual | ~RefineableElement () |
Destructor, delete the allocated storage for the hanging equations. More... | |
RefineableElement (const RefineableElement &)=delete | |
Broken copy constructor. More... | |
void | operator= (const RefineableElement &)=delete |
Broken assignment operator. More... | |
Tree * | tree_pt () |
Access function: Pointer to quadtree representation of this element. More... | |
void | set_tree_pt (Tree *my_tree_pt) |
Set pointer to quadtree representation of this element. More... | |
virtual unsigned | required_nsons () const |
bool | refinement_is_enabled () |
Flag to indicate suppression of any refinement. More... | |
void | disable_refinement () |
Suppress of any refinement for this element. More... | |
void | enable_refinement () |
Emnable refinement for this element. More... | |
template<class ELEMENT > | |
void | split (Vector< ELEMENT * > &son_pt) const |
int | local_hang_eqn (Node *const &node_pt, const unsigned &i) |
virtual void | build (Mesh *&mesh_pt, Vector< Node * > &new_node_pt, bool &was_already_built, std::ofstream &new_nodes_file)=0 |
void | set_refinement_level (const int &refine_level) |
Set the refinement level. More... | |
unsigned | refinement_level () const |
Return the Refinement level. More... | |
void | select_for_refinement () |
Select the element for refinement. More... | |
void | deselect_for_refinement () |
Deselect the element for refinement. More... | |
void | select_sons_for_unrefinement () |
Unrefinement will be performed by merging the four sons of this element. More... | |
void | deselect_sons_for_unrefinement () |
bool | to_be_refined () |
Has the element been selected for refinement? More... | |
bool | sons_to_be_unrefined () |
Has the element been selected for unrefinement? More... | |
virtual void | rebuild_from_sons (Mesh *&mesh_pt)=0 |
virtual void | unbuild () |
virtual void | deactivate_element () |
virtual bool | nodes_built () |
Return true if all the nodes have been built, false if not. More... | |
long | number () const |
Element number (for debugging/plotting) More... | |
void | set_number (const long &mynumber) |
Set element number (for debugging/plotting) More... | |
virtual unsigned | ncont_interpolated_values () const =0 |
virtual void | get_interpolated_values (const Vector< double > &s, Vector< double > &values) |
virtual void | get_interpolated_values (const unsigned &t, const Vector< double > &s, Vector< double > &values)=0 |
virtual Node * | interpolating_node_pt (const unsigned &n, const int &value_id) |
virtual double | local_one_d_fraction_of_interpolating_node (const unsigned &n1d, const unsigned &i, const int &value_id) |
virtual Node * | get_interpolating_node_at_local_coordinate (const Vector< double > &s, const int &value_id) |
virtual unsigned | ninterpolating_node (const int &value_id) |
virtual unsigned | ninterpolating_node_1d (const int &value_id) |
virtual void | interpolating_basis (const Vector< double > &s, Shape &psi, const int &value_id) const |
virtual void | check_integrity (double &max_error)=0 |
void | identify_field_data_for_interactions (std::set< std::pair< Data *, unsigned >> &paired_field_data) |
void | assign_nodal_local_eqn_numbers (const bool &store_local_dof_pt) |
virtual RefineableElement * | root_element_pt () |
virtual RefineableElement * | father_element_pt () const |
Return a pointer to the father element. More... | |
void | get_father_at_refinement_level (unsigned &refinement_level, RefineableElement *&father_at_reflevel_pt) |
virtual void | initial_setup (Tree *const &adopted_father_pt=0, const unsigned &initial_p_order=0) |
virtual void | pre_build (Mesh *&mesh_pt, Vector< Node * > &new_node_pt) |
Pre-build the element. More... | |
virtual void | further_build () |
Further build: e.g. deal with interpolation of internal values. More... | |
virtual void | setup_hanging_nodes (Vector< std::ofstream * > &output_stream) |
virtual void | further_setup_hanging_nodes () |
void | get_dresidual_dnodal_coordinates (RankThreeTensor< double > &dresidual_dnodal_coordinates) |
unsigned | nshape_controlling_nodes () |
std::map< Node *, unsigned > | shape_controlling_node_lookup () |
![]() | |
void | set_dimension (const unsigned &dim) |
void | set_nodal_dimension (const unsigned &nodal_dim) |
void | set_nnodal_position_type (const unsigned &nposition_type) |
Set the number of types required to interpolate the coordinate. More... | |
void | set_n_node (const unsigned &n) |
int | nodal_local_eqn (const unsigned &n, const unsigned &i) const |
double | dJ_eulerian_at_knot (const unsigned &ipt, Shape &psi, DenseMatrix< double > &djacobian_dX) const |
FiniteElement () | |
Constructor. More... | |
virtual | ~FiniteElement () |
FiniteElement (const FiniteElement &)=delete | |
Broken copy constructor. More... | |
virtual bool | local_coord_is_valid (const Vector< double > &s) |
Broken assignment operator. More... | |
virtual void | move_local_coord_back_into_element (Vector< double > &s) const |
void | get_centre_of_gravity_and_max_radius_in_terms_of_zeta (Vector< double > &cog, double &max_radius) const |
virtual void | local_coordinate_of_node (const unsigned &j, Vector< double > &s) const |
virtual void | local_fraction_of_node (const unsigned &j, Vector< double > &s_fraction) |
virtual double | local_one_d_fraction_of_node (const unsigned &n1d, const unsigned &i) |
virtual void | set_macro_elem_pt (MacroElement *macro_elem_pt) |
MacroElement * | macro_elem_pt () |
Access function to pointer to macro element. More... | |
void | get_x (const Vector< double > &s, Vector< double > &x) const |
void | get_x (const unsigned &t, const Vector< double > &s, Vector< double > &x) |
virtual void | get_x_from_macro_element (const Vector< double > &s, Vector< double > &x) const |
virtual void | get_x_from_macro_element (const unsigned &t, const Vector< double > &s, Vector< double > &x) |
virtual void | set_integration_scheme (Integral *const &integral_pt) |
Set the spatial integration scheme. More... | |
Integral *const & | integral_pt () const |
Return the pointer to the integration scheme (const version) More... | |
virtual void | shape (const Vector< double > &s, Shape &psi) const =0 |
virtual void | shape_at_knot (const unsigned &ipt, Shape &psi) const |
virtual void | dshape_local (const Vector< double > &s, Shape &psi, DShape &dpsids) const |
virtual void | dshape_local_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsids) const |
virtual void | d2shape_local (const Vector< double > &s, Shape &psi, DShape &dpsids, DShape &d2psids) const |
virtual void | d2shape_local_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsids, DShape &d2psids) const |
virtual double | J_eulerian (const Vector< double > &s) const |
virtual double | J_eulerian_at_knot (const unsigned &ipt) const |
void | check_J_eulerian_at_knots (bool &passed) const |
void | check_jacobian (const double &jacobian) const |
double | dshape_eulerian (const Vector< double > &s, Shape &psi, DShape &dpsidx) const |
virtual double | dshape_eulerian_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsidx) const |
virtual double | dshape_eulerian_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsi, DenseMatrix< double > &djacobian_dX, RankFourTensor< double > &d_dpsidx_dX) const |
double | d2shape_eulerian (const Vector< double > &s, Shape &psi, DShape &dpsidx, DShape &d2psidx) const |
virtual double | d2shape_eulerian_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsidx, DShape &d2psidx) const |
virtual void | describe_local_dofs (std::ostream &out, const std::string ¤t_string) const |
virtual void | describe_nodal_local_dofs (std::ostream &out, const std::string ¤t_string) const |
virtual void | assign_all_generic_local_eqn_numbers (const bool &store_local_dof_pt) |
Node *& | node_pt (const unsigned &n) |
Return a pointer to the local node n. More... | |
Node *const & | node_pt (const unsigned &n) const |
Return a pointer to the local node n (const version) More... | |
unsigned | nnode () const |
Return the number of nodes. More... | |
virtual unsigned | nnode_1d () const |
double | raw_nodal_position (const unsigned &n, const unsigned &i) const |
double | raw_nodal_position (const unsigned &t, const unsigned &n, const unsigned &i) const |
double | raw_dnodal_position_dt (const unsigned &n, const unsigned &i) const |
double | raw_dnodal_position_dt (const unsigned &n, const unsigned &j, const unsigned &i) const |
double | raw_nodal_position_gen (const unsigned &n, const unsigned &k, const unsigned &i) const |
double | raw_nodal_position_gen (const unsigned &t, const unsigned &n, const unsigned &k, const unsigned &i) const |
double | raw_dnodal_position_gen_dt (const unsigned &n, const unsigned &k, const unsigned &i) const |
double | raw_dnodal_position_gen_dt (const unsigned &j, const unsigned &n, const unsigned &k, const unsigned &i) const |
double | nodal_position (const unsigned &n, const unsigned &i) const |
double | nodal_position (const unsigned &t, const unsigned &n, const unsigned &i) const |
double | dnodal_position_dt (const unsigned &n, const unsigned &i) const |
Return the i-th component of nodal velocity: dx/dt at local node n. More... | |
double | dnodal_position_dt (const unsigned &n, const unsigned &j, const unsigned &i) const |
double | nodal_position_gen (const unsigned &n, const unsigned &k, const unsigned &i) const |
double | nodal_position_gen (const unsigned &t, const unsigned &n, const unsigned &k, const unsigned &i) const |
double | dnodal_position_gen_dt (const unsigned &n, const unsigned &k, const unsigned &i) const |
double | dnodal_position_gen_dt (const unsigned &j, const unsigned &n, const unsigned &k, const unsigned &i) const |
virtual void | disable_ALE () |
virtual void | enable_ALE () |
virtual unsigned | required_nvalue (const unsigned &n) const |
unsigned | nnodal_position_type () const |
bool | has_hanging_nodes () const |
unsigned | nodal_dimension () const |
Return the required Eulerian dimension of the nodes in this element. More... | |
virtual unsigned | nvertex_node () const |
virtual Node * | vertex_node_pt (const unsigned &j) const |
virtual Node * | construct_node (const unsigned &n) |
virtual Node * | construct_node (const unsigned &n, TimeStepper *const &time_stepper_pt) |
virtual Node * | construct_boundary_node (const unsigned &n) |
virtual Node * | construct_boundary_node (const unsigned &n, TimeStepper *const &time_stepper_pt) |
int | get_node_number (Node *const &node_pt) const |
virtual Node * | get_node_at_local_coordinate (const Vector< double > &s) const |
double | raw_nodal_value (const unsigned &n, const unsigned &i) const |
double | raw_nodal_value (const unsigned &t, const unsigned &n, const unsigned &i) const |
double | nodal_value (const unsigned &n, const unsigned &i) const |
double | nodal_value (const unsigned &t, const unsigned &n, const unsigned &i) const |
unsigned | dim () const |
virtual ElementGeometry::ElementGeometry | element_geometry () const |
Return the geometry type of the element (either Q or T usually). More... | |
virtual double | interpolated_x (const Vector< double > &s, const unsigned &i) const |
Return FE interpolated coordinate x[i] at local coordinate s. More... | |
virtual double | interpolated_x (const unsigned &t, const Vector< double > &s, const unsigned &i) const |
virtual void | interpolated_x (const Vector< double > &s, Vector< double > &x) const |
Return FE interpolated position x[] at local coordinate s as Vector. More... | |
virtual void | interpolated_x (const unsigned &t, const Vector< double > &s, Vector< double > &x) const |
virtual double | interpolated_dxdt (const Vector< double > &s, const unsigned &i, const unsigned &t) |
virtual void | interpolated_dxdt (const Vector< double > &s, const unsigned &t, Vector< double > &dxdt) |
unsigned | ngeom_data () const |
Data * | geom_data_pt (const unsigned &j) |
void | position (const Vector< double > &zeta, Vector< double > &r) const |
void | position (const unsigned &t, const Vector< double > &zeta, Vector< double > &r) const |
void | dposition_dt (const Vector< double > &zeta, const unsigned &t, Vector< double > &drdt) |
virtual double | zeta_nodal (const unsigned &n, const unsigned &k, const unsigned &i) const |
void | interpolated_zeta (const Vector< double > &s, Vector< double > &zeta) const |
void | locate_zeta (const Vector< double > &zeta, GeomObject *&geom_object_pt, Vector< double > &s, const bool &use_coordinate_as_initial_guess=false) |
virtual void | node_update () |
virtual void | identify_geometric_data (std::set< Data * > &geometric_data_pt) |
virtual double | s_min () const |
Min value of local coordinate. More... | |
virtual double | s_max () const |
Max. value of local coordinate. More... | |
double | size () const |
virtual double | compute_physical_size () const |
virtual void | point_output_data (const Vector< double > &s, Vector< double > &data) |
void | point_output (std::ostream &outfile, const Vector< double > &s) |
virtual unsigned | nplot_points_paraview (const unsigned &nplot) const |
virtual unsigned | nsub_elements_paraview (const unsigned &nplot) const |
void | output_paraview (std::ofstream &file_out, const unsigned &nplot) const |
virtual void | write_paraview_output_offset_information (std::ofstream &file_out, const unsigned &nplot, unsigned &counter) const |
virtual void | write_paraview_type (std::ofstream &file_out, const unsigned &nplot) const |
virtual void | write_paraview_offsets (std::ofstream &file_out, const unsigned &nplot, unsigned &offset_sum) const |
virtual unsigned | nscalar_paraview () const |
virtual void | scalar_value_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const |
virtual void | scalar_value_fct_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) const |
virtual void | scalar_value_fct_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) const |
virtual std::string | scalar_name_paraview (const unsigned &i) const |
virtual void | output (std::ostream &outfile) |
virtual void | output (std::ostream &outfile, const unsigned &n_plot) |
virtual void | output (const unsigned &t, std::ostream &outfile, const unsigned &n_plot) const |
virtual void | output (FILE *file_pt) |
virtual void | output (FILE *file_pt, const unsigned &n_plot) |
virtual void | output_fct (std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) |
Output an exact solution over the element. More... | |
virtual void | output_fct (std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) |
Output a time-dependent exact solution over the element. More... | |
virtual void | output_fct (std::ostream &outfile, const unsigned &n_plot, const double &time, const SolutionFunctorBase &exact_soln) const |
Output a time-dependent exact solution over the element. More... | |
virtual void | get_s_plot (const unsigned &i, const unsigned &nplot, Vector< double > &s, const bool &shifted_to_interior=false) const |
virtual std::string | tecplot_zone_string (const unsigned &nplot) const |
virtual void | write_tecplot_zone_footer (std::ostream &outfile, const unsigned &nplot) const |
virtual void | write_tecplot_zone_footer (FILE *file_pt, const unsigned &nplot) const |
virtual unsigned | nplot_points (const unsigned &nplot) const |
virtual void | compute_error (FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm) |
Calculate the norm of the error and that of the exact solution. More... | |
virtual void | compute_error (FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm) |
Calculate the norm of the error and that of the exact solution. More... | |
virtual void | compute_error (FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_error (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, double &error, 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, 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_abs_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error) |
void | integrate_fct (FiniteElement::SteadyExactSolutionFctPt integrand_fct_pt, Vector< double > &integral) |
Integrate Vector-valued function over element. More... | |
void | integrate_fct (FiniteElement::UnsteadyExactSolutionFctPt integrand_fct_pt, const double &time, Vector< double > &integral) |
Integrate Vector-valued time-dep function over element. More... | |
virtual void | build_face_element (const int &face_index, FaceElement *face_element_pt) |
virtual unsigned | self_test () |
virtual unsigned | get_bulk_node_number (const int &face_index, const unsigned &i) const |
virtual int | face_outer_unit_normal_sign (const int &face_index) const |
Get the sign of the outer unit normal on the face given by face_index. More... | |
virtual unsigned | nnode_on_face () const |
void | face_node_number_error_check (const unsigned &i) const |
Range check for face node numbers. More... | |
virtual CoordinateMappingFctPt | face_to_bulk_coordinate_fct_pt (const int &face_index) const |
virtual BulkCoordinateDerivativesFctPt | bulk_coordinate_derivatives_fct_pt (const int &face_index) const |
![]() | |
GeneralisedElement () | |
Constructor: Initialise all pointers and all values to zero. More... | |
virtual | ~GeneralisedElement () |
Virtual destructor to clean up any memory allocated by the object. More... | |
GeneralisedElement (const GeneralisedElement &)=delete | |
Broken copy constructor. More... | |
void | operator= (const GeneralisedElement &)=delete |
Broken assignment operator. More... | |
Data *& | internal_data_pt (const unsigned &i) |
Return a pointer to i-th internal data object. More... | |
Data *const & | internal_data_pt (const unsigned &i) const |
Return a pointer to i-th internal data object (const version) More... | |
Data *& | external_data_pt (const unsigned &i) |
Return a pointer to i-th external data object. More... | |
Data *const & | external_data_pt (const unsigned &i) const |
Return a pointer to i-th external data object (const version) More... | |
unsigned long | eqn_number (const unsigned &ieqn_local) const |
int | local_eqn_number (const unsigned long &ieqn_global) const |
unsigned | add_external_data (Data *const &data_pt, const bool &fd=true) |
bool | external_data_fd (const unsigned &i) const |
void | exclude_external_data_fd (const unsigned &i) |
void | include_external_data_fd (const unsigned &i) |
void | flush_external_data () |
Flush all external data. More... | |
void | flush_external_data (Data *const &data_pt) |
Flush the object addressed by data_pt from the external data array. More... | |
unsigned | ninternal_data () const |
Return the number of internal data objects. More... | |
unsigned | nexternal_data () const |
Return the number of external data objects. More... | |
unsigned | ndof () const |
Return the number of equations/dofs in the element. More... | |
void | dof_vector (const unsigned &t, Vector< double > &dof) |
Return the vector of dof values at time level t. More... | |
void | dof_pt_vector (Vector< double * > &dof_pt) |
Return the vector of pointers to dof values. More... | |
void | set_internal_data_time_stepper (const unsigned &i, TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
void | assign_internal_eqn_numbers (unsigned long &global_number, Vector< double * > &Dof_pt) |
void | describe_dofs (std::ostream &out, const std::string ¤t_string) const |
void | add_internal_value_pt_to_map (std::map< unsigned, double * > &map_of_value_pt) |
virtual void | assign_local_eqn_numbers (const bool &store_local_dof_pt) |
virtual void | complete_setup_of_dependencies () |
virtual void | get_residuals (Vector< double > &residuals) |
virtual void | get_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
virtual void | get_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &mass_matrix) |
virtual void | get_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix) |
virtual void | get_dresiduals_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam) |
virtual void | get_djacobian_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam) |
virtual void | get_djacobian_and_dmass_matrix_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam) |
virtual void | get_hessian_vector_products (Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product) |
virtual void | get_inner_products (Vector< std::pair< unsigned, unsigned >> const &history_index, Vector< double > &inner_product) |
virtual void | get_inner_product_vectors (Vector< unsigned > const &history_index, Vector< Vector< double >> &inner_product_vector) |
virtual void | compute_norm (Vector< double > &norm) |
virtual void | compute_norm (double &norm) |
virtual unsigned | ndof_types () const |
virtual void | get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const |
![]() | |
GeomObject () | |
Default constructor. More... | |
GeomObject (const unsigned &ndim) | |
GeomObject (const unsigned &nlagrangian, const unsigned &ndim) | |
GeomObject (const unsigned &nlagrangian, const unsigned &ndim, TimeStepper *time_stepper_pt) | |
GeomObject (const GeomObject &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const GeomObject &)=delete |
Broken assignment operator. More... | |
virtual | ~GeomObject () |
(Empty) destructor More... | |
unsigned | nlagrangian () const |
Access function to # of Lagrangian coordinates. More... | |
unsigned | ndim () const |
Access function to # of Eulerian coordinates. More... | |
void | set_nlagrangian_and_ndim (const unsigned &n_lagrangian, const unsigned &n_dim) |
Set # of Lagrangian and Eulerian coordinates. More... | |
TimeStepper *& | time_stepper_pt () |
TimeStepper * | time_stepper_pt () const |
virtual void | position (const double &t, const Vector< double > &zeta, Vector< double > &r) const |
virtual void | dposition (const Vector< double > &zeta, DenseMatrix< double > &drdzeta) const |
virtual void | d2position (const Vector< double > &zeta, RankThreeTensor< double > &ddrdzeta) const |
virtual void | d2position (const Vector< double > &zeta, Vector< double > &r, DenseMatrix< double > &drdzeta, RankThreeTensor< double > &ddrdzeta) const |
Static Public Member Functions | |
static double & | max_integrity_tolerance () |
Max. allowed discrepancy in element integrity check. More... | |
Protected Member Functions | |
void | assemble_local_to_eulerian_jacobian (const DShape &dpsids, DenseMatrix< double > &jacobian) const |
void | assemble_local_to_eulerian_jacobian2 (const DShape &d2psids, DenseMatrix< double > &jacobian2) const |
void | assemble_eulerian_base_vectors (const DShape &dpsids, DenseMatrix< double > &interpolated_G) const |
double | local_to_eulerian_mapping_diagonal (const DShape &dpsids, DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
void | assign_hanging_local_eqn_numbers (const bool &store_local_dof_pt) |
Assign the local equation numbers for hanging node variables. More... | |
virtual void | fill_in_jacobian_from_nodal_by_fd (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
![]() | |
template<unsigned DIM> | |
double | invert_jacobian (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
virtual double | invert_jacobian_mapping (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
virtual double | local_to_eulerian_mapping (const DShape &dpsids, DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
double | local_to_eulerian_mapping (const DShape &dpsids, DenseMatrix< double > &inverse_jacobian) const |
virtual void | dJ_eulerian_dnodal_coordinates (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
template<unsigned DIM> | |
void | dJ_eulerian_dnodal_coordinates_templated_helper (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
virtual void | d_dshape_eulerian_dnodal_coordinates (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
template<unsigned DIM> | |
void | d_dshape_eulerian_dnodal_coordinates_templated_helper (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
virtual void | transform_derivatives (const DenseMatrix< double > &inverse_jacobian, DShape &dbasis) const |
void | transform_derivatives_diagonal (const DenseMatrix< double > &inverse_jacobian, DShape &dbasis) const |
virtual void | transform_second_derivatives (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<unsigned DIM> | |
void | transform_second_derivatives_template (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<unsigned DIM> | |
void | transform_second_derivatives_diagonal (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
void | fill_in_jacobian_from_nodal_by_fd (DenseMatrix< double > &jacobian) |
virtual void | update_before_nodal_fd () |
virtual void | reset_after_nodal_fd () |
virtual void | update_in_nodal_fd (const unsigned &i) |
virtual void | reset_in_nodal_fd (const unsigned &i) |
void | fill_in_contribution_to_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
template<> | |
double | invert_jacobian (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
Zero-d specialisation of function to calculate inverse of jacobian mapping. More... | |
template<> | |
double | invert_jacobian (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
One-d specialisation of function to calculate inverse of jacobian mapping. More... | |
template<> | |
double | invert_jacobian (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
Two-d specialisation of function to calculate inverse of jacobian mapping. More... | |
template<> | |
double | invert_jacobian (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
template<> | |
void | dJ_eulerian_dnodal_coordinates_templated_helper (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
template<> | |
void | dJ_eulerian_dnodal_coordinates_templated_helper (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
template<> | |
void | dJ_eulerian_dnodal_coordinates_templated_helper (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
template<> | |
void | dJ_eulerian_dnodal_coordinates_templated_helper (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
template<> | |
void | d_dshape_eulerian_dnodal_coordinates_templated_helper (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
template<> | |
void | d_dshape_eulerian_dnodal_coordinates_templated_helper (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
template<> | |
void | d_dshape_eulerian_dnodal_coordinates_templated_helper (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
template<> | |
void | d_dshape_eulerian_dnodal_coordinates_templated_helper (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
template<> | |
void | transform_second_derivatives_template (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<> | |
void | transform_second_derivatives_template (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<> | |
void | transform_second_derivatives_diagonal (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<> | |
void | transform_second_derivatives_diagonal (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
![]() | |
unsigned | add_internal_data (Data *const &data_pt, const bool &fd=true) |
bool | internal_data_fd (const unsigned &i) const |
void | exclude_internal_data_fd (const unsigned &i) |
void | include_internal_data_fd (const unsigned &i) |
void | clear_global_eqn_numbers () |
void | add_global_eqn_numbers (std::deque< unsigned long > const &global_eqn_numbers, std::deque< double * > const &global_dof_pt) |
virtual void | assign_internal_and_external_local_eqn_numbers (const bool &store_local_dof_pt) |
virtual void | assign_additional_local_eqn_numbers () |
int | internal_local_eqn (const unsigned &i, const unsigned &j) const |
int | external_local_eqn (const unsigned &i, const unsigned &j) |
virtual void | fill_in_contribution_to_residuals (Vector< double > &residuals) |
void | fill_in_jacobian_from_internal_by_fd (Vector< double > &residuals, DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
void | fill_in_jacobian_from_internal_by_fd (DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
void | fill_in_jacobian_from_external_by_fd (Vector< double > &residuals, DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
void | fill_in_jacobian_from_external_by_fd (DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
virtual void | update_before_internal_fd () |
virtual void | reset_after_internal_fd () |
virtual void | update_in_internal_fd (const unsigned &i) |
virtual void | reset_in_internal_fd (const unsigned &i) |
virtual void | update_before_external_fd () |
virtual void | reset_after_external_fd () |
virtual void | update_in_external_fd (const unsigned &i) |
virtual void | reset_in_external_fd (const unsigned &i) |
virtual void | fill_in_contribution_to_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &mass_matrix) |
virtual void | fill_in_contribution_to_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix) |
virtual void | fill_in_contribution_to_dresiduals_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam) |
virtual void | fill_in_contribution_to_djacobian_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam) |
virtual void | fill_in_contribution_to_djacobian_and_dmass_matrix_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam) |
virtual void | fill_in_contribution_to_hessian_vector_products (Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product) |
virtual void | fill_in_contribution_to_inner_products (Vector< std::pair< unsigned, unsigned >> const &history_index, Vector< double > &inner_product) |
virtual void | fill_in_contribution_to_inner_product_vectors (Vector< unsigned > const &history_index, Vector< Vector< double >> &inner_product_vector) |
Static Protected Member Functions | |
static void | check_value_id (const int &n_continuously_interpolated_values, const int &value_id) |
Protected Attributes | |
Tree * | Tree_pt |
A pointer to a general tree object. More... | |
unsigned | Refine_level |
Refinement level. More... | |
bool | To_be_refined |
Flag for refinement. More... | |
bool | Refinement_is_enabled |
Flag to indicate suppression of any refinement. More... | |
bool | Sons_to_be_unrefined |
Flag for unrefinement. More... | |
long | Number |
Global element number – for plotting/validation purposes. More... | |
![]() | |
MacroElement * | Macro_elem_pt |
Pointer to the element's macro element (NULL by default) More... | |
![]() | |
unsigned | NLagrangian |
Number of Lagrangian (intrinsic) coordinates. More... | |
unsigned | Ndim |
Number of Eulerian coordinates. More... | |
TimeStepper * | Geom_object_time_stepper_pt |
Static Protected Attributes | |
static double | Max_integrity_tolerance = 1.0e-8 |
Max. allowed discrepancy in element integrity check. More... | |
![]() | |
static const unsigned | Default_Initial_Nvalue = 0 |
Default value for the number of values at a node. More... | |
static const double | Node_location_tolerance = 1.0e-14 |
static const unsigned | N2deriv [] = {0, 1, 3, 6} |
![]() | |
static DenseMatrix< double > | Dummy_matrix |
static std::deque< double * > | Dof_pt_deque |
Private Attributes | |
std::map< Node *, int > * | Local_hang_eqn |
std::map< Node *, unsigned > | Shape_controlling_node_lookup |
Additional Inherited Members | |
![]() | |
typedef void(* | SteadyExactSolutionFctPt) (const Vector< double > &, Vector< double > &) |
typedef void(* | UnsteadyExactSolutionFctPt) (const double &, const Vector< double > &, Vector< double > &) |
![]() | |
static double | Tolerance_for_singular_jacobian = 1.0e-16 |
Tolerance below which the jacobian is considered singular. More... | |
static bool | Accept_negative_jacobian = false |
static bool | Suppress_output_while_checking_for_inverted_elements |
![]() | |
static bool | Suppress_warning_about_repeated_internal_data |
static bool | Suppress_warning_about_repeated_external_data = true |
static double | Default_fd_jacobian_step = 1.0e-8 |
RefineableElements are FiniteElements that may be subdivided into children to provide a better local approximation to the solution. After non-uniform refinement adjacent elements need not necessarily have nodes in common. A node that does not have a counterpart in its neighbouring element is known as a hanging node and its position and any data that it stores must be constrained to ensure inter-element continuity.
Generic data and function interfaces associated with refinement are defined in this class.
Additional data includes:
Additional functions perform the following generic tasks:
In addition, there are a number of interfaces that specify element-specific tasks. These should be overloaded in RefineableElements of particular geometric types and perform the following tasks:
In mixed element different sets of nodes are used to interpolate different unknowns. Interfaces are provided for functions that can be used to find the position of the nodes that interpolate the different unknowns. These functions are used to setup hanging node information automatically in particular elements, e.g. Taylor Hood Navier–Stokes. The default implementation assumes that the elements are isoparameteric.
|
inline |
Constructor, calls the FiniteElement constructor and initialises the member data
|
virtual |
Destructor, delete the allocated storage for the hanging equations.
Destructor (needed here because of IBM xlC compiler under AIX) Delete the storage allocated for the local equations.
References Local_hang_eqn.
|
delete |
Broken copy constructor.
|
protectedvirtual |
Assemble the covariant Eulerian base vectors, assuming that the derivatives of the shape functions with respect to the local coordinates have already been constructed. Overload the standard version to account for hanging nodes.
Assemble the covariant Eulerian base vectors and return them in the matrix interpolated_G. The derivatives of the shape functions with respect to the local coordinate should already have been calculated before calling this function
Reimplemented from oomph::FiniteElement.
References oomph::FiniteElement::dim(), i, j, k, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_dimension(), and oomph::FiniteElement::nodal_position_gen().
|
protectedvirtual |
Assemble the jacobian matrix for the mapping from local to Eulerian coordinates, given the derivatives of the shape function w.r.t the local coordinates. Overload the standard version to use the hanging information for the Eulerian coordinates.
Internal function that is used to assemble the jacobian of the mapping from local coordinates (s) to the eulerian coordinates (x), given the derivatives of the shape functions.
Reimplemented from oomph::FiniteElement.
References oomph::FiniteElement::dim(), el_dim, i, j, k, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_dimension(), oomph::FiniteElement::nodal_position_gen(), OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
protectedvirtual |
Assemble the the "jacobian" matrix of second derivatives of the mapping from local to Eulerian coordinates, given the second derivatives of the shape functions w.r.t. local coordinates. Overload the standard version to use the hanging information for the Eulerian coordinates.
Internal function that is used to assemble the jacobian of second derivatives of the the mapping from local coordinates (s) to the eulerian coordinates (x), given the second derivatives of the shape functions.
Reimplemented from oomph::FiniteElement.
References oomph::FiniteElement::dim(), el_dim, i, j, k, oomph::FiniteElement::N2deriv, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), and oomph::FiniteElement::nodal_position_gen().
|
protected |
Assign the local equation numbers for hanging node variables.
Assign the local hang eqn.
References oomph::GeneralisedElement::add_global_eqn_numbers(), oomph::GeneralisedElement::Dof_pt_deque, oomph::Data::eqn_number(), oomph::GeneralisedElement::eqn_number(), oomph::Node::hanging_pt(), oomph::Node::is_hanging(), oomph::Data::Is_pinned, j, oomph::GeneralisedElement::local_eqn_number(), Local_hang_eqn, m, oomph::HangInfo::master_node_pt(), n, ncont_interpolated_values(), oomph::GeneralisedElement::ndof(), oomph::HangInfo::nmaster(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_local_eqn(), oomph::FiniteElement::node_pt(), oomph::Data::nvalue(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, Shape_controlling_node_lookup, and oomph::Data::value_pt().
Referenced by assign_nodal_local_eqn_numbers().
|
inlinevirtual |
Overload the function that assigns local equation numbers for the Data stored at the nodes so that hanging data is taken into account
Reimplemented from oomph::FiniteElement.
References assign_hanging_local_eqn_numbers(), and oomph::FiniteElement::assign_nodal_local_eqn_numbers().
|
pure virtual |
Interface to function that builds the element: i.e. construct the nodes, assign their positions, apply boundary conditions, etc. The required procedures depend on the geometrical type of the element and must be implemented in specific refineable elements. Any new nodes created during the build process are returned in the vector new_node_pt.
Implemented in oomph::RefineableSolidQElement< 2 >, oomph::RefineableQElement< 2 >, oomph::RefineableSolidQElement< 1 >, oomph::RefineableQElement< 1 >, oomph::NonRefineableElementWithHangingNodes, oomph::RefineableSolidQElement< 3 >, and oomph::RefineableQElement< 3 >.
|
pure virtual |
Check the integrity of the element: Continuity of positions values, etc. Essentially, check that the approximation of the functions is consistent when viewed from both sides of the element boundaries Must be overloaded for each different geometric element
Implemented in oomph::RefineableQElement< 2 >, oomph::RefineableQElement< 1 >, oomph::NonRefineableElementWithHangingNodes, oomph::RefineableQElement< 3 >, oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >, oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >, and oomph::PRefineableQElement< 1, INITIAL_NNODE_1D >.
|
staticprotected |
Static helper function that is used to check that the value_id is in range
Helper function that is used to check that the value_id is in the range allowed by the element. The number of continuously interpolated values and the value_id must be passed as arguments.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by oomph::RefineableQPVDElementWithContinuousPressure< DIM >::get_interpolating_node_at_local_coordinate(), oomph::RefineableQPVDElementWithContinuousPressure< DIM >::interpolating_basis(), oomph::RefineableQPVDElementWithContinuousPressure< DIM >::interpolating_node_pt(), oomph::RefineableQPVDElementWithContinuousPressure< DIM >::local_one_d_fraction_of_interpolating_node(), oomph::RefineableQPVDElementWithContinuousPressure< DIM >::ninterpolating_node(), and oomph::RefineableQPVDElementWithContinuousPressure< DIM >::ninterpolating_node_1d().
|
virtual |
Final operations that must be performed when the element is no longer active in the mesh, but still resident in the QuadTree.
Deactivate the element by marking setting all local pointers to obsolete nodes to zero
References n, oomph::FiniteElement::nnode(), and oomph::FiniteElement::node_pt().
Referenced by oomph::Tree::deactivate_object().
|
inline |
Deselect the element for refinement.
References To_be_refined.
Referenced by oomph::TreeBasedRefineableMeshBase::adapt().
|
inline |
No unrefinement will be performed by merging the four sons of this element
References Sons_to_be_unrefined.
Referenced by oomph::TreeBasedRefineableMeshBase::adapt(), and oomph::Tree::merge_sons_if_required().
|
inline |
Suppress of any refinement for this element.
References Refinement_is_enabled.
|
inline |
Emnable refinement for this element.
References Refinement_is_enabled.
|
inlinevirtual |
Return a pointer to the father element.
References oomph::Tree::father_pt(), oomph::Tree::object_pt(), and Tree_pt.
Referenced by oomph::RefineableLinearisedAxisymmetricNavierStokesEquations::further_build(), oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement::further_build(), oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement::further_build(), oomph::RefineableDoubleBuoyantQCrouzeixRaviartElement< DIM >::further_build(), oomph::RefineablePolarStreamfunctionEquations::further_build(), oomph::RefineableAdvectionDiffusionEquations< DIM >::further_build(), oomph::RefineableGeneralisedAdvectionDiffusionEquations< DIM >::further_build(), oomph::RefineableAdvectionDiffusionReactionEquations< NREAGENT, DIM >::further_build(), oomph::RefineableAxisymAdvectionDiffusionEquations::further_build(), oomph::RefineableGeneralisedAxisymAdvectionDiffusionEquations::further_build(), oomph::RefineableAxisymmetricNavierStokesEquations::further_build(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::further_build(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::further_build(), oomph::RefineableSolidElement::further_build(), oomph::RefineableHelmholtzEquations< DIM >::further_build(), oomph::RefineableLinearElasticityEquations< DIM >::further_build(), oomph::RefineableLinearWaveEquations< DIM >::further_build(), oomph::RefineableLinearisedNavierStokesEquations::further_build(), oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >::further_build(), oomph::RefineableNavierStokesEquations< DIM >::further_build(), oomph::RefineablePMLHelmholtzEquations< DIM >::further_build(), oomph::RefineablePoissonEquations< DIM >::further_build(), oomph::RefineablePolarNavierStokesEquations::further_build(), oomph::RefineablePVDEquations< DIM >::further_build(), oomph::RefineablePVDEquationsWithPressure< DIM >::further_build(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::further_build(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::further_build(), oomph::RefineableSpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >::further_build(), oomph::RefineableSpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >::further_build(), oomph::RefineableSphericalAdvectionDiffusionEquations::further_build(), oomph::RefineableSphericalNavierStokesEquations::further_build(), oomph::RefineableTimeHarmonicLinearElasticityEquations< DIM >::further_build(), oomph::RefineableUnsteadyHeatEquations< DIM >::further_build(), oomph::RefineableYoungLaplaceEquations::further_build(), oomph::RefineableQDPVDElement< DIM, NNODE_1D >::further_build(), and unbuild().
|
protectedvirtual |
Calculate the contributions to the jacobian from the nodal degrees of freedom using finite differences. This version is overloaded to take hanging node information into account
This function calculates the entries of Jacobian matrix, used in the Newton method, associated with the nodal degrees of freedom. This is done by finite differences to handle the general case Overload the standard case to include hanging node case
Reimplemented from oomph::FiniteElement.
References oomph::GeneralisedElement::Default_fd_jacobian_step, oomph::GeneralisedElement::get_residuals(), oomph::Node::hanging_pt(), i, oomph::Node::is_hanging(), local_hang_eqn(), m, oomph::HangInfo::master_node_pt(), n, oomph::GeneralisedElement::ndof(), oomph::HangInfo::nmaster(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_local_eqn(), oomph::FiniteElement::node_pt(), oomph::Data::nvalue(), oomph::FiniteElement::reset_after_nodal_fd(), oomph::FiniteElement::reset_in_nodal_fd(), oomph::FiniteElement::update_before_nodal_fd(), oomph::FiniteElement::update_in_nodal_fd(), and oomph::Data::value_pt().
|
inlinevirtual |
Further build: e.g. deal with interpolation of internal values.
Reimplemented in oomph::RefineableQDPVDElement< DIM, NNODE_1D >, oomph::RefineableYoungLaplaceEquations, oomph::RefineableUnsteadyHeatEquations< DIM >, oomph::RefineableTimeHarmonicLinearElasticityEquations< DIM >, oomph::RefineableQSphericalCrouzeixRaviartElement, oomph::RefineableSphericalNavierStokesEquations, oomph::RefineableSphericalAdvectionDiffusionEquations, oomph::RefineableSpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >, oomph::RefineableSpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >, oomph::RefineableSpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >, oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >, oomph::RefineableSpaceTimeNavierStokesEquations< DIM >, oomph::RefineableSpaceTimeNavierStokesEquations< DIM >, oomph::RefineableSpaceTimeNavierStokesEquations< DIM >, oomph::RefineableQPVDElementWithPressure< DIM >, oomph::RefineableQPVDElementWithPressure< DIM >, oomph::RefineableQPVDElementWithPressure< DIM >, oomph::RefineablePVDEquationsWithPressure< DIM >, oomph::RefineablePVDEquations< DIM >, oomph::RefineablePolarCrouzeixRaviartElement, oomph::RefineablePolarNavierStokesEquations, oomph::PRefineableQPoissonElement< DIM >, oomph::RefineablePoissonEquations< DIM >, oomph::RefineablePMLHelmholtzEquations< DIM >, oomph::RefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< 2 >, oomph::RefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< 2 >, oomph::PRefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< 2 >, oomph::RefineableNavierStokesEquations< DIM >, oomph::PRefineableQCrouzeixRaviartElement< DIM >, oomph::PRefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedQCrouzeixRaviartElement, oomph::RefineableLinearisedNavierStokesEquations, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, oomph::RefineableLinearisedAxisymmetricNavierStokesEquations, oomph::RefineableLinearWaveEquations< DIM >, oomph::PRefineableQLinearElasticityElement< DIM >, oomph::RefineableLinearElasticityEquations< DIM >, oomph::RefineableHelmholtzEquations< DIM >, oomph::RefineableSolidElement, oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >, oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement, oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations, oomph::RefineableAxisymmetricQCrouzeixRaviartElement, oomph::RefineableAxisymmetricNavierStokesEquations, oomph::RefineableGeneralisedAxisymAdvectionDiffusionEquations, oomph::RefineableAxisymAdvectionDiffusionEquations, oomph::RefineableAdvectionDiffusionReactionEquations< NREAGENT, DIM >, oomph::RefineableGeneralisedAdvectionDiffusionEquations< DIM >, oomph::RefineableAdvectionDiffusionEquations< DIM >, oomph::RefineablePolarStreamfunctionEquations, ModalPRefineableQPoissonElement< DIM >, RefineableModalPoissonEquations< DIM >, oomph::RefineableDoubleBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement, RefineableQCrouzeixRaviartElementWithTwoExternalElement< DIM >, RefineableQAxisymCrouzeixRaviartBoussinesqElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, RefineableQAxisymCrouzeixRaviartBoussinesqElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, RefineableQCrouzeixRaviartElementWithExternalElement< DIM >, RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, and oomph::RefineableLinearisedAxisymmetricNavierStokesEquations.
Referenced by oomph::RefineableSolidElement::further_build().
|
inlinevirtual |
Perform additional hanging node procedures for variables that are not interpolated by all nodes (e.g. lower order interpolations for the pressure in Taylor Hood).
Reimplemented in oomph::RefineableQElement< 2 >, oomph::RefineableQElement< 3 >, oomph::RefineableQYoungLaplaceElement< NNODE_1D >, oomph::RefineableQUnsteadyHeatElement< DIM, NNODE_1D >, oomph::RefineableQTimeHarmonicLinearElasticityElement< DIM, NNODE_1D >, oomph::RefineableQSphericalCrouzeixRaviartElement, oomph::RefineableQSphericalTaylorHoodElement, oomph::RefineableQSphericalAdvectionDiffusionElement< NNODE_1D >, oomph::RefineableQSphericalAdvectionDiffusionElement< 3 >, oomph::RefineableQUnsteadyHeatMixedOrderSpaceTimeElement< SPATIAL_DIM, NNODE_1D >, oomph::RefineableQUnsteadyHeatSpaceTimeElement< SPATIAL_DIM, NNODE_1D >, oomph::RefineableQUnsteadyHeatSpaceTimeElement< SPATIAL_DIM, NNODE_1D >, oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQPVDElementWithContinuousPressure< DIM >, oomph::RefineableQPVDElementWithPressure< DIM >, oomph::RefineableQPVDElement< DIM, NNODE_1D >, oomph::RefineablePolarCrouzeixRaviartElement, oomph::RefineablePolarTaylorHoodElement, oomph::RefineableQSpectralPoissonElement< DIM, NNODE_1D >, oomph::RefineableQPoissonElement< DIM, NNODE_1D >, oomph::RefineableQPMLHelmholtzElement< DIM, NNODE_1D >, oomph::RefineableQPMLHelmholtzElement< 2, NNODE_1D >, oomph::PRefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< 2 >, oomph::RefineableQTaylorHoodElement< DIM >, oomph::RefineableQTaylorHoodElement< 2 >, oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedQTaylorHoodElement, oomph::RefineableLinearisedQCrouzeixRaviartElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, oomph::RefineableQLinearWaveElement< DIM, NNODE_1D >, oomph::RefineableQLinearElasticityElement< DIM, NNODE_1D >, oomph::RefineableQHelmholtzElement< DIM, NNODE_1D >, oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >, oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >, oomph::PRefineableQElement< 1, INITIAL_NNODE_1D >, oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >, oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement, oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement, oomph::RefineableAxisymmetricQCrouzeixRaviartElement, oomph::RefineableAxisymmetricQTaylorHoodElement, oomph::RefineableQGeneralisedAxisymAdvectionDiffusionElement< NNODE_1D >, oomph::RefineableQAxisymAdvectionDiffusionElement< NNODE_1D >, oomph::RefineableQAxisymAdvectionDiffusionElement< 3 >, oomph::RefineableQAdvectionDiffusionReactionElement< NREAGENT, DIM, NNODE_1D >, oomph::RefineableQAdvectionDiffusionReactionElement< 2, DIM, 3 >, oomph::RefineableQSUPGAdvectionDiffusionElement< DIM, NNODE_1D >, oomph::RefineableQGeneralisedAdvectionDiffusionElement< DIM, NNODE_1D >, oomph::RefineableQAdvectionDiffusionElement< DIM, NNODE_1D >, oomph::RefineableQAdvectionDiffusionElement< DIM, 3 >, oomph::RefineablePolarStreamfunctionElement, oomph::RefineableDoubleBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, and oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement.
|
virtual |
Compute derivatives of elemental residual vector with respect to nodal coordinates. Default implementation by FD can be overwritten for specific elements. dresidual_dnodal_coordinates(l,i,j) = d res(l) / dX_{ij} This version is overloaded from the version in FiniteElement and takes hanging nodes into account – j in the above loop loops over all the nodes that actively control the shape of the element (i.e. they are non-hanging or master nodes of hanging nodes in this element).
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >, oomph::RefineableSpaceTimeNavierStokesEquations< DIM >, oomph::RefineableSpaceTimeNavierStokesEquations< DIM >, oomph::RefineableSpaceTimeNavierStokesEquations< DIM >, oomph::RefineablePoissonEquations< DIM >, and oomph::RefineableNavierStokesEquations< DIM >.
References oomph::GeneralisedElement::Default_fd_jacobian_step, oomph::GeneralisedElement::get_residuals(), i, oomph::Node::ndim(), oomph::GeneralisedElement::ndof(), oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), oomph::Node::perform_auxiliary_node_update_fct(), res, Shape_controlling_node_lookup, and oomph::Node::x().
|
inline |
Return a pointer to the "father" element at the specified refinement level
References oomph::Tree::father_pt(), get_father_at_refinement_level(), oomph::Tree::object_pt(), refinement_level(), and Tree_pt.
Referenced by get_father_at_refinement_level().
|
pure virtual |
Get all continously interpolated function values at previous timestep in this element as a Vector. (t=0: present; t>0: prev. timestep) Note: Vector sets is own size to ensure that that this function can be used in black-box fashion.
Implemented in oomph::RefineableYoungLaplaceEquations, oomph::RefineableUnsteadyHeatEquations< DIM >, oomph::RefineableTimeHarmonicLinearElasticityEquations< DIM >, oomph::RefineableQSphericalCrouzeixRaviartElement, oomph::RefineableQSphericalTaylorHoodElement, oomph::RefineableSphericalAdvectionDiffusionEquations, oomph::RefineableSpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >, oomph::RefineableSpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >, oomph::RefineableSpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >, oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQPVDElementWithContinuousPressure< DIM >, oomph::RefineablePVDEquationsWithPressure< DIM >, oomph::RefineablePVDEquations< DIM >, oomph::RefineablePolarCrouzeixRaviartElement, oomph::RefineablePolarTaylorHoodElement, oomph::RefineablePoissonEquations< DIM >, oomph::RefineablePMLHelmholtzEquations< DIM >, oomph::PRefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< 2 >, oomph::RefineableQTaylorHoodElement< DIM >, oomph::RefineableQTaylorHoodElement< 2 >, oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedQTaylorHoodElement, oomph::RefineableLinearisedQCrouzeixRaviartElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, oomph::RefineableLinearWaveEquations< DIM >, oomph::RefineableLinearElasticityEquations< DIM >, oomph::RefineableHelmholtzEquations< DIM >, oomph::NonRefineableElementWithHangingNodes, oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >, oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement, oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement, oomph::RefineableAxisymmetricQCrouzeixRaviartElement, oomph::RefineableAxisymmetricQTaylorHoodElement, oomph::RefineableGeneralisedAxisymAdvectionDiffusionEquations, oomph::RefineableAxisymAdvectionDiffusionEquations, oomph::RefineableAdvectionDiffusionReactionEquations< NREAGENT, DIM >, oomph::RefineableGeneralisedAdvectionDiffusionEquations< DIM >, oomph::RefineableAdvectionDiffusionEquations< DIM >, oomph::RefineablePolarStreamfunctionEquations, RefineableModalPoissonEquations< DIM >, oomph::RefineableDoubleBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, and oomph::SpectralPeriodicOrbitElement< NNODE_1D >.
|
inlinevirtual |
Get all continously interpolated function values in this element as a Vector. Note: Vector sets is own size to ensure that that this function can be used in black-box fashion.
Reimplemented in oomph::RefineableYoungLaplaceEquations, oomph::RefineableUnsteadyHeatEquations< DIM >, oomph::RefineableTimeHarmonicLinearElasticityEquations< DIM >, oomph::RefineableQSphericalCrouzeixRaviartElement, oomph::RefineableQSphericalTaylorHoodElement, oomph::RefineableSphericalAdvectionDiffusionEquations, oomph::RefineableSpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >, oomph::RefineableSpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >, oomph::RefineableSpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >, oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQPVDElementWithContinuousPressure< DIM >, oomph::RefineablePVDEquationsWithPressure< DIM >, oomph::RefineablePVDEquations< DIM >, oomph::RefineablePolarCrouzeixRaviartElement, oomph::RefineablePolarTaylorHoodElement, oomph::RefineablePoissonEquations< DIM >, oomph::RefineablePMLHelmholtzEquations< DIM >, oomph::PRefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< 2 >, oomph::RefineableQTaylorHoodElement< DIM >, oomph::RefineableQTaylorHoodElement< 2 >, oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedQTaylorHoodElement, oomph::RefineableLinearisedQCrouzeixRaviartElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, oomph::RefineableLinearWaveEquations< DIM >, oomph::RefineableLinearElasticityEquations< DIM >, oomph::RefineableHelmholtzEquations< DIM >, oomph::NonRefineableElementWithHangingNodes, oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >, oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement, oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement, oomph::RefineableAxisymmetricQCrouzeixRaviartElement, oomph::RefineableAxisymmetricQTaylorHoodElement, oomph::RefineableGeneralisedAxisymAdvectionDiffusionEquations, oomph::RefineableAxisymAdvectionDiffusionEquations, oomph::RefineableAdvectionDiffusionReactionEquations< NREAGENT, DIM >, oomph::RefineableGeneralisedAdvectionDiffusionEquations< DIM >, oomph::RefineableAdvectionDiffusionEquations< DIM >, oomph::RefineablePolarStreamfunctionEquations, RefineableModalPoissonEquations< DIM >, oomph::RefineableDoubleBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, and oomph::SpectralPeriodicOrbitElement< NNODE_1D >.
References s.
Referenced by oomph::RefineableQElement< 3 >::build(), oomph::RefineableQElement< 1 >::build(), oomph::RefineableQElement< 2 >::build(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::check_integrity(), oomph::RefineableQElement< 3 >::check_integrity(), oomph::RefineableQElement< 1 >::check_integrity(), oomph::RefineableQElement< 2 >::check_integrity(), oomph::PRefineableQElement< 1, INITIAL_NNODE_1D >::p_refine(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::p_refine(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::p_refine(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::pre_build(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::pre_build(), oomph::PRefineableQElement< 1, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::RefineableQSpectralElement< 3 >::rebuild_from_sons(), oomph::RefineableQSpectralElement< 1 >::rebuild_from_sons(), and oomph::RefineableQSpectralElement< 2 >::rebuild_from_sons().
|
inlinevirtual |
Return a pointer to the node that interpolates the value-id-th unknown at local coordinate s. If there is not a node at that position, then return 0.
Reimplemented in oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQPVDElementWithContinuousPressure< DIM >, oomph::RefineablePolarTaylorHoodElement, oomph::RefineableQTaylorHoodElement< DIM >, oomph::RefineableQTaylorHoodElement< 2 >, oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >, oomph::RefineableQSphericalTaylorHoodElement, oomph::RefineableLinearisedQTaylorHoodElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement, oomph::RefineableAxisymmetricQTaylorHoodElement, and oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement.
References oomph::FiniteElement::get_node_at_local_coordinate(), and s.
Referenced by oomph::RefineableQElement< 3 >::oc_hang_helper(), and oomph::RefineableQElement< 2 >::quad_hang_helper().
|
virtual |
The purpose of this function is to identify all possible Data that can affect the fields interpolated by the FiniteElement. This must be overloaded to include data from any hanging nodes correctly
Reimplemented from oomph::FiniteElement.
References oomph::Node::hanging_pt(), i, oomph::GeneralisedElement::internal_data_pt(), oomph::Node::is_hanging(), m, oomph::HangInfo::master_node_pt(), n, oomph::GeneralisedElement::ninternal_data(), oomph::HangInfo::nmaster(), oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), and oomph::Data::nvalue().
|
inlinevirtual |
Initial setup of the element: e.g. set the appropriate internal p-order. If an adopted father is specified, information from this is used instead of using the father found from the tree.
Reimplemented in oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >, oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >, and oomph::PRefineableQElement< 1, INITIAL_NNODE_1D >.
|
inlinevirtual |
Return the basis functions that are used to interpolate the value_id-th unknown. By default assume isoparameteric interpolation
Reimplemented in oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQPVDElementWithContinuousPressure< DIM >, oomph::RefineablePolarTaylorHoodElement, oomph::RefineableQTaylorHoodElement< DIM >, oomph::RefineableQTaylorHoodElement< 2 >, oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >, oomph::RefineableQSphericalTaylorHoodElement, oomph::RefineableLinearisedQTaylorHoodElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement, oomph::RefineableAxisymmetricQTaylorHoodElement, and oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement.
References s, and oomph::FiniteElement::shape().
Referenced by oomph::RefineableQElement< 3 >::oc_hang_helper(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::oc_hang_helper(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::quad_hang_helper(), and oomph::RefineableQElement< 2 >::quad_hang_helper().
|
inlinevirtual |
In mixed elements, different sets of nodes are used to interpolate different unknowns. This function returns the n-th node that interpolates the value_id-th unknown. Default implementation is that all variables use the positional nodes, i.e. isoparametric elements. Note that any overloaded versions of this function MUST provide a set of nodes for the position, which always has the value_id -1.
Reimplemented in oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQPVDElementWithContinuousPressure< DIM >, oomph::RefineablePolarTaylorHoodElement, oomph::RefineableQTaylorHoodElement< DIM >, oomph::RefineableQTaylorHoodElement< 2 >, oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >, oomph::RefineableQSphericalTaylorHoodElement, oomph::RefineableLinearisedQTaylorHoodElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement, oomph::RefineableAxisymmetricQTaylorHoodElement, and oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement.
References n, and oomph::FiniteElement::node_pt().
Referenced by oomph::RefineableQElement< 3 >::oc_hang_helper(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::oc_hang_helper(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::quad_hang_helper(), and oomph::RefineableQElement< 2 >::quad_hang_helper().
Access function that returns the local equation number for the hanging node variables (values stored at master nodes). The local equation number corresponds to the i-th unknown stored at the node addressed by node_pt
References i, Local_hang_eqn, ncont_interpolated_values(), oomph::FiniteElement::node_pt(), OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by oomph::RefineableYoungLaplaceEquations::fill_in_contribution_to_residuals(), oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution(), oomph::RefineablePolarStreamfunctionEquations::fill_in_generic_residual_contribution(), oomph::RefineableAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_axi_adv_diff(), oomph::RefineableAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_cons_axisym_adv_diff(), oomph::RefineableLinearisedAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_linearised_axi_nst(), oomph::RefineableLinearisedNavierStokesEquations::fill_in_generic_residual_contribution_linearised_nst(), oomph::RefineableSphericalAdvectionDiffusionEquations::fill_in_generic_residual_contribution_spherical_adv_diff(), oomph::RefineableSphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), fill_in_jacobian_from_nodal_by_fd(), oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableDoubleBuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_by_fd(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::refineable_fill_in_generic_contribution_to_residuals_displ_lagr_multiplier(), oomph::RefineableFSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::refineable_fill_in_generic_contribution_to_residuals_fsi_displ_lagr_multiplier(), and oomph::RefineableNavierStokesFluxControlElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction().
|
inlinevirtual |
Return the local one dimensional fraction of the n1d-th node in the direction of the local coordinate s[i] that is used to interpolate the value_id-th continuously interpolated unknown. Default assumes isoparametric interpolation for all unknowns
Reimplemented in oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQPVDElementWithContinuousPressure< DIM >, oomph::RefineablePolarTaylorHoodElement, oomph::RefineableQTaylorHoodElement< DIM >, oomph::RefineableQTaylorHoodElement< 2 >, oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >, oomph::RefineableQSphericalTaylorHoodElement, oomph::RefineableLinearisedQTaylorHoodElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement, oomph::RefineableAxisymmetricQTaylorHoodElement, and oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement.
References i, and oomph::FiniteElement::local_one_d_fraction_of_node().
|
protectedvirtual |
Calculate the mapping from local to Eulerian coordinates given the derivatives of the shape functions w.r.t the local coordinates. assuming that the coordinates are aligned in the direction of the local coordinates, i.e. there are no cross terms and the jacobian is diagonal. This funciton returns the determinant of the jacobian, the jacobian and the inverse jacobian. Overload the standard version to take hanging info into account.
Calculate the mapping from local to eulerian coordinates assuming that the coordinates are aligned in the direction of the local coordinates, i.e. there are no cross terms and the jacobian is diagonal. The local derivatives are passed as dpsids and the jacobian and inverse jacobian are returned.
Reimplemented from oomph::FiniteElement.
References oomph::FiniteElement::check_jacobian(), oomph::FiniteElement::dim(), el_dim, i, j, k, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_dimension(), oomph::FiniteElement::nodal_position_gen(), OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
inlinestatic |
Max. allowed discrepancy in element integrity check.
References Max_integrity_tolerance.
Referenced by oomph::TreeBasedRefineableMeshBase::adapt_mesh(), and oomph::TreeBasedRefineableMeshBase::p_adapt_mesh().
|
pure virtual |
Number of continuously interpolated values. Note: We assume that they are located at the beginning of the value_pt Vector! (Used for interpolation to son elements, for integrity check and post-processing – we can only expect the continously interpolated values to be continous across element boundaries).
Implemented in oomph::RefineableQYoungLaplaceElement< NNODE_1D >, oomph::RefineableQUnsteadyHeatElement< DIM, NNODE_1D >, oomph::RefineableTimeHarmonicLinearElasticityEquations< DIM >, oomph::RefineableQSphericalCrouzeixRaviartElement, oomph::RefineableQSphericalTaylorHoodElement, oomph::RefineableQSphericalAdvectionDiffusionElement< NNODE_1D >, oomph::RefineableQSphericalAdvectionDiffusionElement< 3 >, oomph::RefineableQUnsteadyHeatMixedOrderSpaceTimeElement< SPATIAL_DIM, NNODE_1D >, oomph::RefineableQUnsteadyHeatSpaceTimeElement< SPATIAL_DIM, NNODE_1D >, oomph::RefineableQUnsteadyHeatSpaceTimeElement< SPATIAL_DIM, NNODE_1D >, oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::RefineableNavierStokesMixedOrderSpaceTimeTractionElement< ELEMENT >, oomph::RefineableNavierStokesSpaceTimeTractionElement< ELEMENT >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableNavierStokesSpaceTimeTractionElement< ELEMENT >, oomph::RefineableNavierStokesSpaceTimeTractionElement< ELEMENT >, oomph::RefineableFSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >, oomph::RefineableImposeDisplacementByLagrangeMultiplierElement< ELEMENT >, oomph::RefineableSolidTractionElement< ELEMENT >, oomph::RefineableQPVDElementWithContinuousPressure< DIM >, oomph::RefineableQPVDElementWithPressure< DIM >, oomph::RefineablePVDEquationsWithPressure< DIM >, oomph::RefineablePVDEquations< DIM >, oomph::RefineablePolarCrouzeixRaviartElement, oomph::RefineablePolarTaylorHoodElement, oomph::RefineableQSpectralPoissonElement< DIM, NNODE_1D >, oomph::PRefineableQPoissonElement< DIM >, oomph::RefineableQPoissonElement< DIM, NNODE_1D >, oomph::RefineableQPMLHelmholtzElement< DIM, NNODE_1D >, oomph::RefineableQPMLHelmholtzElement< 2, NNODE_1D >, oomph::PRefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< 2 >, oomph::RefineableQTaylorHoodElement< DIM >, oomph::RefineableQTaylorHoodElement< 2 >, oomph::RefineableNavierStokesFluxControlElement< ELEMENT >, oomph::RefineableNavierStokesTractionElement< ELEMENT >, oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedQTaylorHoodElement, oomph::RefineableLinearisedQCrouzeixRaviartElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, oomph::RefineableQLinearWaveElement< DIM, NNODE_1D >, oomph::PRefineableQLinearElasticityElement< DIM >, oomph::RefineableLinearElasticityEquations< DIM >, oomph::RefineableQHelmholtzElement< DIM, NNODE_1D >, oomph::SpectralPeriodicOrbitElement< NNODE_1D >, oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >, oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement, oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement, oomph::RefineableAxisymmetricQCrouzeixRaviartElement, oomph::RefineableAxisymmetricQTaylorHoodElement, oomph::RefineableQGeneralisedAxisymAdvectionDiffusionElement< NNODE_1D >, oomph::RefineableQAxisymAdvectionDiffusionElement< NNODE_1D >, oomph::RefineableQAxisymAdvectionDiffusionElement< 3 >, oomph::RefineableQAdvectionDiffusionReactionElement< NREAGENT, DIM, NNODE_1D >, oomph::RefineableQAdvectionDiffusionReactionElement< 2, DIM, 3 >, oomph::RefineableQSUPGAdvectionDiffusionElement< DIM, NNODE_1D >, oomph::RefineableQGeneralisedAdvectionDiffusionElement< DIM, NNODE_1D >, oomph::RefineableQAdvectionDiffusionElement< DIM, NNODE_1D >, oomph::RefineableQAdvectionDiffusionElement< DIM, 3 >, oomph::RefineablePolarStreamfunctionElement, ModalPRefineableQPoissonElement< DIM >, oomph::RefineableDoubleBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, and oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement.
Referenced by assign_hanging_local_eqn_numbers(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::check_integrity(), oomph::RefineableQElement< 3 >::check_integrity(), oomph::RefineableQElement< 1 >::check_integrity(), oomph::RefineableQElement< 2 >::check_integrity(), and local_hang_eqn().
|
inlinevirtual |
Return the number of nodes that are used to interpolate the value_id-th unknown. Default is to assume isoparametric elements.
Reimplemented in oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQPVDElementWithContinuousPressure< DIM >, oomph::RefineablePolarTaylorHoodElement, oomph::RefineableQTaylorHoodElement< DIM >, oomph::RefineableQTaylorHoodElement< 2 >, oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >, oomph::RefineableQSphericalTaylorHoodElement, oomph::RefineableLinearisedQTaylorHoodElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement, oomph::RefineableAxisymmetricQTaylorHoodElement, and oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement.
References oomph::FiniteElement::nnode().
Referenced by oomph::RefineableQElement< 3 >::oc_hang_helper(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::oc_hang_helper(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::quad_hang_helper(), and oomph::RefineableQElement< 2 >::quad_hang_helper().
|
inlinevirtual |
Return the number of nodes in a one_d direction that are used to interpolate the value_id-th unknown. Default is to assume an isoparametric mapping.
Reimplemented in oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQPVDElementWithContinuousPressure< DIM >, oomph::RefineablePolarTaylorHoodElement, oomph::RefineableQTaylorHoodElement< DIM >, oomph::RefineableQTaylorHoodElement< 2 >, oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >, oomph::RefineableQSphericalTaylorHoodElement, oomph::RefineableLinearisedQTaylorHoodElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement, oomph::RefineableAxisymmetricQTaylorHoodElement, and oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement.
References oomph::FiniteElement::nnode_1d().
Referenced by oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::oc_hang_helper(), and oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::quad_hang_helper().
|
inlinevirtual |
Return true if all the nodes have been built, false if not.
Reimplemented in oomph::RefineableQSpectralElement< 2 >, oomph::RefineableQSpectralElement< 1 >, oomph::PRefineableElement, and oomph::RefineableQSpectralElement< 3 >.
References oomph::FiniteElement::node_pt().
Referenced by oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::check_integrity(), oomph::RefineableQElement< 3 >::check_integrity(), oomph::RefineableQElement< 1 >::check_integrity(), oomph::RefineableQElement< 2 >::check_integrity(), oomph::OcTree::doc_face_neighbours(), oomph::BinaryTree::doc_neighbours(), oomph::QuadTree::doc_neighbours(), oomph::OcTree::doc_true_edge_neighbours(), oomph::RefineableQElement< 3 >::node_created_by_neighbour(), oomph::RefineableQElement< 1 >::node_created_by_neighbour(), and oomph::RefineableQElement< 2 >::node_created_by_neighbour().
|
inline |
Number of shape-controlling nodes = the number of non-hanging nodes plus the number of master nodes associated with hanging nodes.
References Shape_controlling_node_lookup.
Referenced by oomph::ElementWithMovingNodes::fill_in_jacobian_from_geometric_data(), oomph::ElementWithMovingNodes::get_dnodal_coordinates_dgeom_dofs(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), and oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates().
|
inline |
Element number (for debugging/plotting)
References Number.
Referenced by oomph::OcTree::doc_face_neighbours(), oomph::BinaryTree::doc_neighbours(), oomph::QuadTree::doc_neighbours(), and oomph::OcTree::doc_true_edge_neighbours().
|
delete |
Broken assignment operator.
|
inlinevirtual |
Pre-build the element.
Reimplemented in oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >, oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >, and oomph::PRefineableQElement< 1, INITIAL_NNODE_1D >.
|
pure virtual |
Rebuild the element, e.g. set internal values in line with those of the sons that have now merged
Implemented in oomph::RefineableQYoungLaplaceElement< NNODE_1D >, oomph::RefineableQUnsteadyHeatElement< DIM, NNODE_1D >, oomph::RefineableQTimeHarmonicLinearElasticityElement< DIM, NNODE_1D >, oomph::RefineableQSphericalCrouzeixRaviartElement, oomph::RefineableQSphericalTaylorHoodElement, oomph::RefineableQSphericalAdvectionDiffusionElement< NNODE_1D >, oomph::RefineableQSphericalAdvectionDiffusionElement< 3 >, oomph::RefineableQUnsteadyHeatMixedOrderSpaceTimeElement< SPATIAL_DIM, NNODE_1D >, oomph::RefineableQUnsteadyHeatSpaceTimeElement< SPATIAL_DIM, NNODE_1D >, oomph::RefineableQUnsteadyHeatSpaceTimeElement< SPATIAL_DIM, NNODE_1D >, oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >, oomph::RefineableQPVDElementWithContinuousPressure< DIM >, oomph::RefineableQPVDElementWithPressure< DIM >, oomph::RefineableQPVDElementWithPressure< DIM >, oomph::RefineableQPVDElementWithPressure< DIM >, oomph::RefineableQPVDElement< DIM, NNODE_1D >, oomph::RefineablePolarCrouzeixRaviartElement, oomph::RefineablePolarTaylorHoodElement, oomph::RefineableQPoissonElement< DIM, NNODE_1D >, oomph::RefineableQPMLHelmholtzElement< DIM, NNODE_1D >, oomph::RefineableQPMLHelmholtzElement< 2, NNODE_1D >, oomph::RefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< 2 >, oomph::RefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< 2 >, oomph::PRefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< DIM >, oomph::RefineableQCrouzeixRaviartElement< 2 >, oomph::RefineableQTaylorHoodElement< DIM >, oomph::RefineableQTaylorHoodElement< 2 >, oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedQTaylorHoodElement, oomph::RefineableLinearisedQCrouzeixRaviartElement, oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, oomph::RefineableQLinearWaveElement< DIM, NNODE_1D >, oomph::RefineableQLinearElasticityElement< DIM, NNODE_1D >, oomph::RefineableQHelmholtzElement< DIM, NNODE_1D >, oomph::RefineableQSpectralElement< 2 >, oomph::RefineableQSpectralElement< 1 >, oomph::NonRefineableElementWithHangingNodes, oomph::RefineableQSpectralElement< 3 >, oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >, oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >, oomph::PRefineableQElement< 1, INITIAL_NNODE_1D >, oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >, oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >, oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement, oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement, oomph::RefineableAxisymmetricQCrouzeixRaviartElement, oomph::RefineableAxisymmetricQTaylorHoodElement, oomph::RefineableQGeneralisedAxisymAdvectionDiffusionElement< NNODE_1D >, oomph::RefineableQAxisymAdvectionDiffusionElement< NNODE_1D >, oomph::RefineableQAxisymAdvectionDiffusionElement< 3 >, oomph::RefineableQAdvectionDiffusionReactionElement< NREAGENT, DIM, NNODE_1D >, oomph::RefineableQAdvectionDiffusionReactionElement< 2, DIM, 3 >, oomph::RefineableQSUPGAdvectionDiffusionElement< DIM, NNODE_1D >, oomph::RefineableQGeneralisedAdvectionDiffusionElement< DIM, NNODE_1D >, oomph::RefineableQAdvectionDiffusionElement< DIM, NNODE_1D >, oomph::RefineableQAdvectionDiffusionElement< DIM, 3 >, oomph::RefineablePolarStreamfunctionElement, oomph::RefineableDoubleBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement, RefineableBuoyantQCrouzeixRaviartElement< DIM >, oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement, and oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement.
Referenced by oomph::Tree::merge_sons_if_required().
|
inline |
Flag to indicate suppression of any refinement.
References Refinement_is_enabled.
Referenced by oomph::TreeBasedRefineableMeshBase::adapt().
|
inline |
Return the Refinement level.
References Refine_level.
Referenced by oomph::TreeBasedRefineableMeshBase::adapt(), get_father_at_refinement_level(), oomph::RefineableBrickMesh< ELEMENT >::setup_octree_forest(), and oomph::RefineableQuadMesh< ELEMENT >::setup_quadtree_forest().
|
inlinevirtual |
Set the number of sons that can be constructed by the element The default is none
Reimplemented in oomph::RefineableQElement< 2 >, oomph::RefineableQElement< 1 >, and oomph::RefineableQElement< 3 >.
Referenced by split().
|
inlinevirtual |
Pointer to the root element in refinement hierarchy (must be implemented in specific elements that do refinement via tree-like refinement structure. Here we provide a default implementation that is appropriate for cases where tree-like refinement doesn't exist or if the element doesn't have root in that tree (i.e. if it's a root itself): We return "this".
References oomph::Tree::object_pt(), oomph::Tree::root_pt(), and Tree_pt.
|
inline |
Select the element for refinement.
References To_be_refined.
Referenced by oomph::TreeBasedRefineableMeshBase::adapt().
|
inline |
Unrefinement will be performed by merging the four sons of this element.
References Sons_to_be_unrefined.
Referenced by oomph::TreeBasedRefineableMeshBase::adapt().
|
inline |
|
inline |
|
inline |
Set pointer to quadtree representation of this element.
References Tree_pt.
Referenced by oomph::Tree::Tree().
|
inlinevirtual |
Mark up any hanging nodes that arise as a result of non-uniform refinement. Any hanging nodes will be documented in files addressed by the streams in the vector output_stream, if the streams are open.
Reimplemented in oomph::RefineableQElement< 2 >, oomph::RefineableQElement< 1 >, and oomph::RefineableQElement< 3 >.
Return lookup scheme for unique number associated with any of the nodes that actively control the shape of the element (i.e. they are either non-hanging nodes of this element or master nodes of hanging nodes.
References Shape_controlling_node_lookup.
Referenced by oomph::ElementWithMovingNodes::get_dnodal_coordinates_dgeom_dofs(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), and oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates().
|
inline |
Has the element been selected for unrefinement?
References Sons_to_be_unrefined.
Referenced by oomph::Tree::merge_sons_if_required().
|
inline |
Split the element into the number of sons to be constructed and return a vector of pointers to the sons. Elements are allocated, but they are not given any properties. The refinement level of the sons is one higher than that of the father elemern.
References i, Refine_level, and required_nsons().
Referenced by oomph::Tree::split_if_required().
|
inline |
Has the element been selected for refinement?
References To_be_refined.
Referenced by oomph::Tree::split_if_required().
|
inline |
Access function: Pointer to quadtree representation of this element.
References Tree_pt.
Referenced by oomph::TreeBasedRefineableMeshBase::adapt(), oomph::RefineablePolarTaylorHoodElement::get_interpolated_values(), and oomph::RefineablePolarCrouzeixRaviartElement::get_interpolated_values().
|
inlinevirtual |
Unbuild the element, i.e. mark the nodes that were created during its creation for possible deletion
References father_element_pt(), oomph::FiniteElement::get_node_number(), n, oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), and oomph::Node::set_non_obsolete().
Referenced by oomph::Tree::merge_sons_if_required().
Storage for local equation numbers of hanging node variables (values stored at master nodes). It is essential that these are indexed by a Node pointer because the Node may be internal or external to the element. local equation number = Local_hang_eqn(master_node_pt,ival)
Referenced by assign_hanging_local_eqn_numbers(), local_hang_eqn(), and ~RefineableElement().
|
staticprotected |
Max. allowed discrepancy in element integrity check.
Referenced by max_integrity_tolerance().
|
protected |
Global element number – for plotting/validation purposes.
Referenced by number(), and set_number().
|
protected |
Refinement level.
Referenced by refinement_level(), set_refinement_level(), and split().
|
protected |
Flag to indicate suppression of any refinement.
Referenced by disable_refinement(), enable_refinement(), and refinement_is_enabled().
Lookup scheme for unique number associated with any of the nodes that actively control the shape of the element (i.e. they are either non-hanging nodes of this element or master nodes of hanging nodes.
Referenced by assign_hanging_local_eqn_numbers(), get_dresidual_dnodal_coordinates(), nshape_controlling_nodes(), and shape_controlling_node_lookup().
|
protected |
Flag for unrefinement.
Referenced by deselect_sons_for_unrefinement(), select_sons_for_unrefinement(), and sons_to_be_unrefined().
|
protected |
Flag for refinement.
Referenced by deselect_for_refinement(), select_for_refinement(), and to_be_refined().
|
protected |
A pointer to a general tree object.
Referenced by father_element_pt(), get_father_at_refinement_level(), root_element_pt(), set_tree_pt(), and tree_pt().