![]() |
|
#include <elements.h>
Public Member Functions | |
FaceElement () | |
Constructor: Initialise all appropriate member data. More... | |
virtual | ~FaceElement () |
Empty virtual destructor. More... | |
FaceElement (const FaceElement &)=delete | |
Broken copy constructor. More... | |
const unsigned & | boundary_number_in_bulk_mesh () const |
Broken assignment operator. More... | |
void | set_boundary_number_in_bulk_mesh (const unsigned &b) |
Set function for the boundary number in bulk mesh. More... | |
double | zeta_nodal (const unsigned &n, const unsigned &k, const unsigned &i) const |
double | J_eulerian (const Vector< double > &s) const |
double | J_eulerian_at_knot (const unsigned &ipt) const |
void | check_J_eulerian_at_knots (bool &passed) const |
double | interpolated_x (const Vector< double > &s, const unsigned &i) const |
double | interpolated_x (const unsigned &t, const Vector< double > &s, const unsigned &i) const |
void | interpolated_x (const Vector< double > &s, Vector< double > &x) const |
void | interpolated_x (const unsigned &t, const Vector< double > &s, Vector< double > &x) const |
double | interpolated_dxdt (const Vector< double > &s, const unsigned &i, const unsigned &t) |
void | interpolated_dxdt (const Vector< double > &s, const unsigned &t, Vector< double > &dxdt) |
int & | normal_sign () |
int | normal_sign () const |
int & | face_index () |
int | face_index () const |
const Vector< double > * | tangent_direction_pt () const |
Public access function for the tangent direction pointer. More... | |
void | set_tangent_direction (Vector< double > *tangent_direction_pt) |
Set the tangent direction vector. More... | |
void | turn_on_warning_for_discontinuous_tangent () |
void | turn_off_warning_for_discontinuous_tangent () |
void | continuous_tangent_and_outer_unit_normal (const Vector< double > &s, Vector< Vector< double >> &tang_vec, Vector< double > &unit_normal) const |
void | continuous_tangent_and_outer_unit_normal (const unsigned &ipt, Vector< Vector< double >> &tang_vec, Vector< double > &unit_normal) const |
void | outer_unit_normal (const Vector< double > &s, Vector< double > &unit_normal) const |
Compute outer unit normal at the specified local coordinate. More... | |
void | outer_unit_normal (const unsigned &ipt, Vector< double > &unit_normal) const |
Compute outer unit normal at ipt-th integration point. More... | |
FiniteElement *& | bulk_element_pt () |
Pointer to higher-dimensional "bulk" element. More... | |
FiniteElement * | bulk_element_pt () const |
Pointer to higher-dimensional "bulk" element (const version) More... | |
CoordinateMappingFctPt & | face_to_bulk_coordinate_fct_pt () |
CoordinateMappingFctPt | face_to_bulk_coordinate_fct_pt () const |
BulkCoordinateDerivativesFctPt & | bulk_coordinate_derivatives_fct_pt () |
BulkCoordinateDerivativesFctPt | bulk_coordinate_derivatives_fct_pt () const |
Vector< double > | local_coordinate_in_bulk (const Vector< double > &s) const |
void | get_local_coordinate_in_bulk (const Vector< double > &s, Vector< double > &s_bulk) const |
void | get_ds_bulk_ds_face (const Vector< double > &s, DenseMatrix< double > &dsbulk_dsface, unsigned &interior_direction) const |
unsigned & | bulk_position_type (const unsigned &i) |
const unsigned & | bulk_position_type (const unsigned &i) const |
void | bulk_node_number_resize (const unsigned &i) |
Resize the storage for the bulk node numbers. More... | |
unsigned & | bulk_node_number (const unsigned &n) |
const unsigned & | bulk_node_number (const unsigned &n) const |
void | bulk_position_type_resize (const unsigned &i) |
Resize the storage for bulk_position_type to i entries. More... | |
unsigned & | nbulk_value (const unsigned &n) |
unsigned | nbulk_value (const unsigned &n) const |
void | nbulk_value_resize (const unsigned &i) |
void | resize_nodes (Vector< unsigned > &nadditional_data_values) |
void | output_zeta (std::ostream &outfile, const unsigned &nplot) |
Output boundary coordinate zeta. More... | |
![]() | |
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 |
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 | assign_nodal_local_eqn_numbers (const bool &store_local_dof_pt) |
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 | get_dresidual_dnodal_coordinates (RankThreeTensor< double > &dresidual_dnodal_coordinates) |
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... | |
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) |
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_field_data_for_interactions (std::set< std::pair< Data *, unsigned >> &paired_field_data) |
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 |
Protected Member Functions | |
void | add_additional_values (const Vector< unsigned > &nadditional_values, const unsigned &id) |
![]() | |
virtual void | assemble_local_to_eulerian_jacobian (const DShape &dpsids, DenseMatrix< double > &jacobian) const |
virtual void | assemble_local_to_eulerian_jacobian2 (const DShape &d2psids, DenseMatrix< double > &jacobian2) const |
virtual void | assemble_eulerian_base_vectors (const DShape &dpsids, DenseMatrix< double > &interpolated_G) const |
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 double | local_to_eulerian_mapping_diagonal (const DShape &dpsids, DenseMatrix< double > &jacobian, 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 |
virtual void | fill_in_jacobian_from_nodal_by_fd (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
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) |
Protected Attributes | |
unsigned | Boundary_number_in_bulk_mesh |
The boundary number in the bulk mesh to which this element is attached. More... | |
FiniteElement * | Bulk_element_pt |
Pointer to the associated higher-dimensional "bulk" element. More... | |
Vector< unsigned > | Bulk_node_number |
Vector< unsigned > | Nbulk_value |
Vector< double > * | Tangent_direction_pt |
![]() | |
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 |
Private Types | |
typedef void(* | CoordinateMappingFctPt) (const Vector< double > &s, Vector< double > &s_bulk) |
typedef void(* | BulkCoordinateDerivativesFctPt) (const Vector< double > &s, DenseMatrix< double > &ds_bulk_dsface, unsigned &interior_direction) |
Private Attributes | |
CoordinateMappingFctPt | Face_to_bulk_coordinate_fct_pt |
BulkCoordinateDerivativesFctPt | Bulk_coordinate_derivatives_fct_pt |
Vector< unsigned > | Bulk_position_type |
int | Normal_sign |
int | Face_index |
Index of the face. More... | |
Static Private Attributes | |
static bool | Ignore_discontinuous_tangent_warning = false |
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 |
![]() | |
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 |
FaceElements are elements that coincide with the faces of higher-dimensional "bulk" elements. They are used on boundaries where additional non-trivial boundary conditions need to be applied. Examples include free surfaces, and applied traction conditions. In many cases, FaceElements need to evaluate to quantities in the associated bulk elements. For instance, the evaluation of a shear stresses on 2D FaceElement requires the evaluation of velocity derivatives in the associated 3D volume element etc. Therefore we store a pointer to the associated bulk element, and information about the relation between the local coordinates in the face and bulk elements.
|
private |
Typedef for the function that returns the partial derivative of the local coordinates in the bulk element with respect to the coordinates along the face. In addition this function returns an index of one of the bulk local coordinates that varies away from the edge
|
private |
Typedef for the function that translates the face coordinate to the coordinate in the bulk element
|
inline |
Constructor: Initialise all appropriate member data.
References Bulk_position_type.
|
delete |
Broken copy constructor.
|
inlineprotected |
Helper function adding additional values for the unknowns associated with the FaceElement. This function also sets the map containing the position of the first entry of this face element's additional values.The inputs are the number of additional values and the face element's ID. Note the same number of additonal values are allocated at ALL nodes.
References n, oomph::FiniteElement::nnode(), and oomph::FiniteElement::node_pt().
Referenced by oomph::FSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::FSIImposeDisplacementByLagrangeMultiplierElement(), oomph::ImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::ImposeDisplacementByLagrangeMultiplierElement(), oomph::ImposeImpenetrabilityElement< ELEMENT >::ImposeImpenetrabilityElement(), oomph::ImposeParallelOutflowElement< ELEMENT >::ImposeParallelOutflowElement(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::LinearisedAxisymPoroelasticBJS_FSIElement(), oomph::LinearisedFSIAxisymmetricNStNoSlipBCElementElement< FLUID_BULK_ELEMENT, SOLID_BULK_ELEMENT >::LinearisedFSIAxisymmetricNStNoSlipBCElementElement(), oomph::SurfaceContactElementBase< ELEMENT >::SurfaceContactElementBase(), oomph::SurfaceMeltElement< ELEMENT >::SurfaceMeltElement(), and oomph::UnsteadyHeatFluxPseudoMeltElement< ELEMENT >::UnsteadyHeatFluxPseudoMeltElement().
|
inline |
Broken assignment operator.
Access function for the boundary number in bulk mesh
References Boundary_number_in_bulk_mesh.
Referenced by oomph::ImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::set_boundary_shape_geom_object_pt().
|
inline |
Return the pointer to the function that returns the derivatives of the bulk coordinates wrt the face coordinates
References Bulk_coordinate_derivatives_fct_pt.
Referenced by oomph::FiniteElement::build_face_element(), oomph::QHermiteElement< DIM >::build_face_element(), oomph::QSpectralElement< 1, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 2, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 3, NNODE_1D >::build_face_element(), oomph::TElement< 1, NNODE_1D >::build_face_element(), and oomph::TElement< 2, NNODE_1D >::build_face_element().
|
inline |
Return the pointer to the function that returns the derivatives of the bulk coordinates wrt the face coordinates (const version)
References Bulk_coordinate_derivatives_fct_pt.
|
inline |
Pointer to higher-dimensional "bulk" element.
References Bulk_element_pt.
Referenced by TurekProblem< FLUID_ELEMENT, SOLID_ELEMENT >::actions_before_distribute(), oomph::DGFaceElement::add_flux_contributions(), oomph::FiniteElement::build_face_element(), oomph::QHermiteElement< DIM >::build_face_element(), oomph::QSpectralElement< 1, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 2, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 3, NNODE_1D >::build_face_element(), oomph::TElement< 1, NNODE_1D >::build_face_element(), oomph::TElement< 2, NNODE_1D >::build_face_element(), oomph::TElement< 3, NNODE_1D >::build_face_element(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::contribution_to_total_porous_flux(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::contribution_to_total_porous_flux(), oomph::AxisymmetricVolumeConstraintBoundingElement::contribution_to_volume_flux(), RefineableYoungLaplaceProblem< ELEMENT >::doc_solution(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::drag_force(), oomph::ClampedSlidingHermiteBeamBoundaryConditionElement::fill_in_contribution_to_residuals(), oomph::ClampedHermiteShellBoundaryConditionElement::fill_in_contribution_to_residuals(), oomph::ImposeImpenetrabilityElement< ELEMENT >::fill_in_generic_contribution_to_residuals_parall_lagr_multiplier(), oomph::ImposeParallelOutflowElement< ELEMENT >::fill_in_generic_contribution_to_residuals_parall_lagr_multiplier(), oomph::HelmholtzAbsorbingBCElement< ELEMENT >::fill_in_generic_residual_contribution_helmholtz_abc(), oomph::PointFluidInterfaceBoundingElement::fill_in_generic_residual_contribution_interface_boundary(), oomph::LineFluidInterfaceBoundingElement::fill_in_generic_residual_contribution_interface_boundary(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::get_drag_and_torque(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_kinetic_energy_flux(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_rate_of_traction_work(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_rate_of_traction_work_components(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::get_volume_flux(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_volume_flux(), oomph::PMLHelmholtzPowerElement< ELEMENT >::global_flux_contribution(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_solid(), oomph::FourierDecomposedHelmholtzBCElementBase< ELEMENT >::global_power_contribution(), oomph::HelmholtzBCElementBase< ELEMENT >::global_power_contribution(), oomph::PMLFourierDecomposedHelmholtzPowerMonitorElement< ELEMENT >::global_power_contribution(), oomph::PMLHelmholtzPowerElement< ELEMENT >::global_power_contribution(), interpolated_dxdt(), interpolated_x(), oomph::SolidFaceElement::interpolated_xi(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::lagrangian_eulerian_translation_factor(), TwoDDGProblem< ELEMENT >::limit(), oomph::Multi_domain_functions::locate_zeta_for_local_coordinates(), oomph::RefineableNavierStokesTractionElement< ELEMENT >::ncont_interpolated_values(), oomph::RefineableNavierStokesFluxControlElement< ELEMENT >::ncont_interpolated_values(), oomph::RefineableSolidTractionElement< ELEMENT >::ncont_interpolated_values(), oomph::RefineableNavierStokesSpaceTimeTractionElement< ELEMENT >::ncont_interpolated_values(), oomph::RefineableNavierStokesMixedOrderSpaceTimeTractionElement< ELEMENT >::ncont_interpolated_values(), oomph::DGEulerFaceElement< ELEMENT >::numerical_flux(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::output(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::output(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::output(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::output(), oomph::ClampedHermiteShellBoundaryConditionElement::output(), oomph::PerturbedSpineLinearisedAxisymmetricFluidInterfaceElement< ELEMENT >::PerturbedSpineLinearisedAxisymmetricFluidInterfaceElement(), oomph::Problem::read(), oomph::RefineableNavierStokesFluxControlElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::FluidInterfaceBoundingElement::reset_after_external_fd(), oomph::FluidInterfaceBoundingElement::set_contact_angle(), oomph::FluidInterfaceAdditionalValues< SolubleSurfactantTransportInterfaceElement >::setup_equation_indices(), oomph::FourierDecomposedHelmholtzDtNMesh< ELEMENT >::setup_gamma(), oomph::HelmholtzDtNMesh< ELEMENT >::setup_gamma(), oomph::DGFaceElement::setup_neighbour_info(), oomph::DGElement::slope_limit(), and oomph::FluidInterfaceBoundingElement::update_in_external_fd().
|
inline |
Pointer to higher-dimensional "bulk" element (const version)
References Bulk_element_pt.
Return the bulk node number that corresponds to the n-th local node number
References Bulk_node_number, and n.
Referenced by oomph::DGFaceElement::add_flux_contributions(), oomph::FiniteElement::build_face_element(), oomph::QHermiteElement< DIM >::build_face_element(), oomph::QSpectralElement< 1, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 2, NNODE_1D >::build_face_element(), oomph::TBubbleEnrichedElement< DIM, NNODE_1D >::build_face_element(), oomph::TElement< 1, NNODE_1D >::build_face_element(), oomph::TElement< 2, NNODE_1D >::build_face_element(), oomph::TElement< 3, NNODE_1D >::build_face_element(), and oomph::PerturbedSpineLinearisedAxisymmetricFluidInterfaceElement< ELEMENT >::hijack_kinematic_conditions().
Return the bulk node number that corresponds to the n-th local node number (const version)
References Bulk_node_number, and n.
|
inline |
Resize the storage for the bulk node numbers.
References Bulk_node_number, and i.
Referenced by oomph::FiniteElement::build_face_element(), oomph::QHermiteElement< DIM >::build_face_element(), oomph::QSpectralElement< 1, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 2, NNODE_1D >::build_face_element(), oomph::TBubbleEnrichedElement< DIM, NNODE_1D >::build_face_element(), oomph::TElement< 1, NNODE_1D >::build_face_element(), oomph::TElement< 2, NNODE_1D >::build_face_element(), and oomph::TElement< 3, NNODE_1D >::build_face_element().
Return the position type in the "bulk" element that corresponds to position type i on the FaceElement.
References Bulk_position_type, and i.
Referenced by oomph::QHermiteElement< DIM >::build_face_element(), check_J_eulerian_at_knots(), oomph::ClampedHermiteShellBoundaryConditionElement::ClampedHermiteShellBoundaryConditionElement(), continuous_tangent_and_outer_unit_normal(), J_eulerian(), J_eulerian_at_knot(), and outer_unit_normal().
Return the position type in the "bulk" element that corresponds to the position type i on the FaceElement. Const version
References Bulk_position_type, and i.
|
inline |
Resize the storage for bulk_position_type to i entries.
References Bulk_position_type, and i.
Referenced by oomph::QHermiteElement< DIM >::build_face_element(), and oomph::ClampedHermiteShellBoundaryConditionElement::ClampedHermiteShellBoundaryConditionElement().
void oomph::FaceElement::check_J_eulerian_at_knots | ( | bool & | passed | ) | const |
Check that Jacobian of mapping between local and Eulerian coordinates at all integration points is positive.
References bulk_position_type(), oomph::FiniteElement::dim(), oomph::FiniteElement::dshape_local_at_knot(), i, oomph::FiniteElement::integral_pt(), j, k, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_dimension(), oomph::FiniteElement::nodal_position_gen(), oomph::Integral::nweight(), and OOMPH_EXCEPTION_LOCATION.
void oomph::FaceElement::continuous_tangent_and_outer_unit_normal | ( | const unsigned & | ipt, |
Vector< Vector< double >> & | tang_vec, | ||
Vector< double > & | unit_normal | ||
) | const |
Compute the tangent vector(s) and the outer unit normal vector at the ipt-th integration point. This is a wrapper around continuous_tangent_and_outer_unit_normal(...) with the integration points converted into local coordinates.
References continuous_tangent_and_outer_unit_normal(), oomph::FiniteElement::dim(), i, oomph::FiniteElement::integral_pt(), oomph::Integral::knot(), and s.
void oomph::FaceElement::continuous_tangent_and_outer_unit_normal | ( | const Vector< double > & | s, |
Vector< Vector< double >> & | tang_vec, | ||
Vector< double > & | unit_normal | ||
) | const |
Compute the tangent vector(s) and the outer unit normal vector at the specified local coordinate. In two spatial dimensions, a "tangent direction" is not required. In three spatial dimensions, a tangent direction is required (set via set_tangent_direction(...)), and we project the tanent direction on to the surface. The second tangent vector is taken to be the cross product of the projection and the unit normal.
References a, oomph::VectorHelpers::angle(), b, Bulk_element_pt, bulk_position_type(), calibrate::c, oomph::VectorHelpers::cross(), oomph::FiniteElement::dim(), oomph::VectorHelpers::dot(), oomph::FiniteElement::dshape_local(), get_ds_bulk_ds_face(), get_local_coordinate_in_bulk(), i, Ignore_discontinuous_tangent_warning, j, k, oomph::VectorHelpers::magnitude(), oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_dimension(), oomph::FiniteElement::nodal_position_gen(), WallFunction::normal(), Normal_sign, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::MathematicalConstants::Pi, s, oomph::FiniteElement::size(), sqrt(), and Tangent_direction_pt.
Referenced by continuous_tangent_and_outer_unit_normal(), and oomph::ImposeParallelOutflowElement< ELEMENT >::fill_in_generic_contribution_to_residuals_parall_lagr_multiplier().
|
inline |
Index of the face (a number that uniquely identifies the face in the element)
References Face_index.
Referenced by oomph::AdvectionDiffusionFluxElement< ELEMENT >::AdvectionDiffusionFluxElement(), oomph::AxisymmetricLinearElasticityTractionElement< ELEMENT >::AxisymmetricLinearElasticityTractionElement(), oomph::AxisymmetricNavierStokesTractionElement< ELEMENT >::AxisymmetricNavierStokesTractionElement(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::AxisymmetricPoroelasticityTractionElement(), oomph::AxisymmetricSolidTractionElement< ELEMENT >::AxisymmetricSolidTractionElement(), oomph::BiharmonicFluxElement< DIM >::BiharmonicFluxElement(), oomph::FiniteElement::build_face_element(), oomph::QHermiteElement< DIM >::build_face_element(), oomph::QSpectralElement< 1, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 2, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 3, NNODE_1D >::build_face_element(), oomph::TElement< 1, NNODE_1D >::build_face_element(), oomph::TElement< 2, NNODE_1D >::build_face_element(), oomph::TElement< 3, NNODE_1D >::build_face_element(), oomph::ClampedHermiteShellBoundaryConditionElement::ClampedHermiteShellBoundaryConditionElement(), oomph::ClampedSlidingHermiteBeamBoundaryConditionElement::ClampedSlidingHermiteBeamBoundaryConditionElement(), oomph::DarcyFaceElement< ELEMENT >::DarcyFaceElement(), oomph::DGEulerFaceElement< ELEMENT >::DGEulerFaceElement(), oomph::DGEulerFaceReflectionElement< ELEMENT >::DGEulerFaceReflectionElement(), oomph::DGScalarAdvectionFaceElement< ELEMENT >::DGScalarAdvectionFaceElement(), oomph::DummyFaceElement< ELEMENT >::DummyFaceElement(), oomph::ElasticAxisymmetricVolumeConstraintBoundingElement< ELEMENT >::ElasticAxisymmetricVolumeConstraintBoundingElement(), oomph::ElasticLineVolumeConstraintBoundingElement< ELEMENT >::ElasticLineVolumeConstraintBoundingElement(), oomph::ElasticSurfaceVolumeConstraintBoundingElement< ELEMENT >::ElasticSurfaceVolumeConstraintBoundingElement(), oomph::FaceElementAsGeomObject< ELEMENT >::FaceElementAsGeomObject(), oomph::FourierDecomposedHelmholtzBCElementBase< ELEMENT >::FourierDecomposedHelmholtzBCElementBase(), oomph::FourierDecomposedHelmholtzFluxElement< ELEMENT >::FourierDecomposedHelmholtzFluxElement(), oomph::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement(), oomph::FourierDecomposedTimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::FourierDecomposedTimeHarmonicLinElastLoadedByHelmholtzPressureBCElement(), oomph::FpPressureAdvDiffRobinBCElement< ELEMENT >::FpPressureAdvDiffRobinBCElement(), oomph::FpPressureAdvDiffRobinBCMixedOrderSpaceTimeElement< ELEMENT >::FpPressureAdvDiffRobinBCMixedOrderSpaceTimeElement(), oomph::FpPressureAdvDiffRobinBCSpaceTimeElement< ELEMENT >::FpPressureAdvDiffRobinBCSpaceTimeElement(), oomph::FSIAxisymmetricLinearElasticityTractionElement< ELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::FSIAxisymmetricLinearElasticityTractionElement(), oomph::FSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::FSIImposeDisplacementByLagrangeMultiplierElement(), oomph::HeatedPenetratorFluxElement< ELEMENT >::HeatedPenetratorFluxElement(), oomph::HelmholtzBCElementBase< ELEMENT >::HelmholtzBCElementBase(), oomph::HelmholtzFluxElement< ELEMENT >::HelmholtzFluxElement(), oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::HelmholtzFluxFromNormalDisplacementBCElement(), oomph::ImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::ImposeDisplacementByLagrangeMultiplierElement(), oomph::ImposeImpenetrabilityElement< ELEMENT >::ImposeImpenetrabilityElement(), oomph::ImposeParallelOutflowElement< ELEMENT >::ImposeParallelOutflowElement(), TwoDDGProblem< ELEMENT >::limit(), oomph::LinearElasticityTractionElement< ELEMENT >::LinearElasticityTractionElement(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::LinearisedAxisymPoroelasticBJS_FSIElement(), oomph::LinearisedFSIAxisymmetricNStNoSlipBCElementElement< FLUID_BULK_ELEMENT, SOLID_BULK_ELEMENT >::LinearisedFSIAxisymmetricNStNoSlipBCElementElement(), oomph::LinearWaveFluxElement< ELEMENT >::LinearWaveFluxElement(), oomph::NavierStokesFluxControlElement< ELEMENT >::NavierStokesFluxControlElement(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::NavierStokesImpedanceTractionElement(), oomph::NavierStokesMixedOrderSpaceTimeTractionElement< ELEMENT >::NavierStokesMixedOrderSpaceTimeTractionElement(), oomph::NavierStokesSpaceTimeTractionElement< ELEMENT >::NavierStokesSpaceTimeTractionElement(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::NavierStokesSurfaceDragTorqueElement(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::NavierStokesSurfacePowerElement(), oomph::NavierStokesTractionElement< ELEMENT >::NavierStokesTractionElement(), oomph::PerturbedSpineLinearisedAxisymmetricFluidInterfaceElement< ELEMENT >::PerturbedSpineLinearisedAxisymmetricFluidInterfaceElement(), oomph::PMLFourierDecomposedHelmholtzFluxElement< ELEMENT >::PMLFourierDecomposedHelmholtzFluxElement(), oomph::PMLFourierDecomposedHelmholtzPowerMonitorElement< ELEMENT >::PMLFourierDecomposedHelmholtzPowerMonitorElement(), oomph::PMLHelmholtzFluxElement< ELEMENT >::PMLHelmholtzFluxElement(), oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::PMLHelmholtzFluxFromNormalDisplacementBCElement(), oomph::PMLHelmholtzPowerElement< ELEMENT >::PMLHelmholtzPowerElement(), oomph::PMLTimeHarmonicLinearElasticityTractionElement< ELEMENT >::PMLTimeHarmonicLinearElasticityTractionElement(), oomph::PoissonFluxElement< ELEMENT >::PoissonFluxElement(), oomph::PolarNavierStokesTractionElement< ELEMENT >::PolarNavierStokesTractionElement(), oomph::PolarStreamfunctionTractionElement< ELEMENT >::PolarStreamfunctionTractionElement(), oomph::PolarStressIntegralElement< ELEMENT >::PolarStressIntegralElement(), oomph::PoroelasticityFaceElement< ELEMENT >::PoroelasticityFaceElement(), oomph::DGFaceElement::setup_neighbour_info(), oomph::SolidTractionElement< ELEMENT >::SolidTractionElement(), oomph::SphericalAdvectionDiffusionFluxElement< ELEMENT >::SphericalAdvectionDiffusionFluxElement(), oomph::SpineAxisymmetricVolumeConstraintBoundingElement< ELEMENT >::SpineAxisymmetricVolumeConstraintBoundingElement(), oomph::SpineLineVolumeConstraintBoundingElement< ELEMENT >::SpineLineVolumeConstraintBoundingElement(), oomph::SpineSurfaceVolumeConstraintBoundingElement< ELEMENT >::SpineSurfaceVolumeConstraintBoundingElement(), oomph::SteadyAxisymAdvectionDiffusionFluxElement< ELEMENT >::SteadyAxisymAdvectionDiffusionFluxElement(), oomph::SurfaceContactElementBase< ELEMENT >::SurfaceContactElementBase(), oomph::TimeHarmonicFourierDecomposedLinearElasticityTractionElement< ELEMENT >::TimeHarmonicFourierDecomposedLinearElasticityTractionElement(), oomph::TimeHarmonicLinearElasticityTractionElement< ELEMENT >::TimeHarmonicLinearElasticityTractionElement(), oomph::TimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::TimeHarmonicLinElastLoadedByHelmholtzPressureBCElement(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement(), oomph::UnsteadyHeatBaseFaceElement< ELEMENT >::UnsteadyHeatBaseFaceElement(), oomph::UnsteadyHeatFluxElement< ELEMENT >::UnsteadyHeatFluxElement(), oomph::UnsteadyHeatFluxPseudoMeltElement< ELEMENT >::UnsteadyHeatFluxPseudoMeltElement(), and oomph::YoungLaplaceContactAngleElement< ELEMENT >::YoungLaplaceContactAngleElement().
|
inline |
Index of the face (a number that uniquely identifies the face in the element) (const version)
References Face_index.
|
inline |
Return the pointer to the function that maps the face coordinate to the bulk coordinate
References Face_to_bulk_coordinate_fct_pt.
Referenced by oomph::FiniteElement::build_face_element(), oomph::QHermiteElement< DIM >::build_face_element(), oomph::QSpectralElement< 1, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 2, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 3, NNODE_1D >::build_face_element(), oomph::TElement< 1, NNODE_1D >::build_face_element(), oomph::TElement< 2, NNODE_1D >::build_face_element(), and oomph::TElement< 3, NNODE_1D >::build_face_element().
|
inline |
Return the pointer to the function that maps the face coordinate to the bulk coordinate (const version)
References Face_to_bulk_coordinate_fct_pt.
void oomph::FaceElement::get_ds_bulk_ds_face | ( | const Vector< double > & | s, |
DenseMatrix< double > & | dsbulk_dsface, | ||
unsigned & | interior_direction | ||
) | const |
Calculate the derivatives of the local coordinates in the bulk element with respect to the local coordinates in this FaceElement. In addition return the index of a bulk local coordinate that varies away from the face.
References Bulk_coordinate_derivatives_fct_pt, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and s.
Referenced by continuous_tangent_and_outer_unit_normal(), and outer_unit_normal().
void oomph::FaceElement::get_local_coordinate_in_bulk | ( | const Vector< double > & | s, |
Vector< double > & | s_bulk | ||
) | const |
Calculate the vector of local coordinate in the bulk element given the local coordinates in this FaceElement
Calculate the vector of local coordinates in bulk element, given the local coordinates in this FaceElement
References Face_to_bulk_coordinate_fct_pt, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and s.
Referenced by continuous_tangent_and_outer_unit_normal(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::drag_force(), oomph::ClampedSlidingHermiteBeamBoundaryConditionElement::fill_in_contribution_to_residuals(), oomph::PointFluidInterfaceBoundingElement::fill_in_generic_residual_contribution_interface_boundary(), oomph::LineFluidInterfaceBoundingElement::fill_in_generic_residual_contribution_interface_boundary(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::get_drag_and_torque(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_kinetic_energy_flux(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_rate_of_traction_work(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_rate_of_traction_work_components(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::get_volume_flux(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_volume_flux(), SCoupling< M, O >::getSCoupledElements(), TwoDDGProblem< ELEMENT >::limit(), oomph::Multi_domain_functions::locate_zeta_for_local_coordinates(), outer_unit_normal(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::output(), oomph::DGFaceElement::setup_neighbour_info(), and TFaceTestProblem< ELEMENT >::TFaceTestProblem().
|
inlinevirtual |
Return t-th time-derivative of the i-th FE-interpolated Eulerian coordinate at local coordinate s. Overloaded to get information from bulk.
Reimplemented from oomph::FiniteElement.
References bulk_element_pt(), oomph::FiniteElement::dim(), i, oomph::FiniteElement::interpolated_dxdt(), local_coordinate_in_bulk(), s, and plotPSD::t.
|
inlinevirtual |
Compte t-th time-derivative of the FE-interpolated Eulerian coordinate vector at local coordinate s. Overloaded to get information from bulk.
Reimplemented from oomph::FiniteElement.
References bulk_element_pt(), oomph::FiniteElement::dim(), oomph::FiniteElement::interpolated_dxdt(), local_coordinate_in_bulk(), s, and plotPSD::t.
|
inlinevirtual |
Return FE interpolated coordinate x[i] at local coordinate s at previous timestep t (t=0: present; t>0: previous timestep). Overloaded to get information from bulk.
Reimplemented from oomph::FiniteElement.
References bulk_element_pt(), oomph::FiniteElement::dim(), i, oomph::FiniteElement::interpolated_x(), local_coordinate_in_bulk(), s, and plotPSD::t.
|
inlinevirtual |
Return FE interpolated position x[] at local coordinate s at previous timestep t as Vector (t=0: present; t>0: previous timestep). Overloaded to get information from bulk.
Reimplemented from oomph::FiniteElement.
References bulk_element_pt(), oomph::FiniteElement::dim(), oomph::FiniteElement::interpolated_x(), local_coordinate_in_bulk(), s, plotPSD::t, and plotDoE::x.
|
inlinevirtual |
Return FE interpolated coordinate x[i] at local coordinate s. Overloaded to get information from bulk.
Reimplemented from oomph::FiniteElement.
References bulk_element_pt(), oomph::FiniteElement::dim(), i, oomph::FiniteElement::interpolated_x(), local_coordinate_in_bulk(), and s.
Referenced by oomph::SolubleSurfactantTransportInterfaceElement::add_additional_residual_contributions_interface(), oomph::BrickFromTetMesh< ELEMENT >::build_mesh(), FourierDecomposedHelmholtzProblem< ELEMENT >::check_gamma(), DarcyProblem< ELEMENT >::complete_problem_setup(), oomph::HelmholtzBCElementBase< ELEMENT >::compute_contribution_to_fourier_components(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::contribution_to_enclosed_volume(), oomph::LineVolumeConstraintBoundingElement::contribution_to_enclosed_volume(), oomph::AxisymmetricVolumeConstraintBoundingElement::contribution_to_enclosed_volume(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::contribution_to_total_porous_flux(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::contribution_to_total_porous_flux(), oomph::AxisymmetricVolumeConstraintBoundingElement::contribution_to_volume_flux(), UnstructuredFluidProblem< ELEMENT >::doc_boundary_coordinates(), oomph::Mesh::doc_boundary_coordinates(), DarcyProblem< ELEMENT >::doc_shape_functions(), PseudoElasticCollapsibleChannelProblem< FLUID_ELEMENT, SOLID_ELEMENT >::doc_solid_boundary_coordinates(), UnstructuredFSIProblem< FLUID_ELEMENT, SOLID_ELEMENT >::doc_solid_boundary_coordinates(), ContactProblem< ELEMENT >::doc_solution(), StefanBoltzmannProblem< ELEMENT >::doc_solution(), DiskShockWaveProblem< ELEMENT, TIMESTEPPER >::doc_solution(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::drag_force(), oomph::NavierStokesFluxControlElement< ELEMENT >::fill_in_generic_residual_contribution_fluid_traction(), oomph::FluidInterfaceElement::fill_in_generic_residual_contribution_interface(), oomph::PointFluidInterfaceBoundingElement::fill_in_generic_residual_contribution_interface_boundary(), oomph::LineVolumeConstraintBoundingElement::fill_in_generic_residual_contribution_volume_constraint(), oomph::AxisymmetricVolumeConstraintBoundingElement::fill_in_generic_residual_contribution_volume_constraint(), oomph::SurfaceVolumeConstraintBoundingElement::fill_in_generic_residual_contribution_volume_constraint(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::get_drag_and_torque(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_kinetic_energy_flux(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_rate_of_traction_work(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_rate_of_traction_work_components(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::get_volume_flux(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_volume_flux(), oomph::PMLHelmholtzPowerElement< ELEMENT >::global_flux_contribution(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_helmholtz(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_solid(), oomph::FourierDecomposedHelmholtzBCElementBase< ELEMENT >::global_power_contribution(), oomph::HelmholtzBCElementBase< ELEMENT >::global_power_contribution(), oomph::PMLFourierDecomposedHelmholtzPowerMonitorElement< ELEMENT >::global_power_contribution(), oomph::PMLHelmholtzPowerElement< ELEMENT >::global_power_contribution(), oomph::SurfactantTransportInterfaceElement::integrate_c(), oomph::SolubleSurfactantTransportInterfaceElement::l2_norm_of_height(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::lagrangian_eulerian_translation_factor(), TwoDDGProblem< ELEMENT >::limit(), oomph::LinearisedAxisymmetricFluidInterfaceElement::output(), oomph::NonlinearSurfaceContactElement< ELEMENT >::output(), oomph::LinearSurfaceContactElement< ELEMENT >::output(), oomph::UnsteadyHeatBaseFaceElement< ELEMENT >::output(), oomph::UnsteadyHeatFluxPseudoMeltElement< ELEMENT >::output(), oomph::SolubleSurfactantTransportInterfaceElement::output(), oomph::AxisymmetricLinearElasticityTractionElement< ELEMENT >::output(), oomph::AxisymmetricNavierStokesTractionElement< ELEMENT >::output(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::output(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::output(), oomph::FluidInterfaceElement::output(), oomph::SurfactantTransportInterfaceElement::output(), oomph::TimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::output(), oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::output(), oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::ClampedHermiteShellBoundaryConditionElement::output(), oomph::SolidTractionElement< ELEMENT >::output(), oomph::PMLTimeHarmonicLinearElasticityTractionElement< ELEMENT >::output(), oomph::PoissonFluxElement< ELEMENT >::output(), oomph::TimeHarmonicLinearElasticityTractionElement< ELEMENT >::output(), oomph::SurfaceMeltElement< ELEMENT >::output_melt(), oomph::NavierStokesEquations< DIM >::output_pressure_advection_diffusion_robin_elements(), oomph::SpaceTimeNavierStokesEquations< DIM >::output_pressure_advection_diffusion_robin_elements(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::output_pressure_advection_diffusion_robin_elements(), oomph::StefanBoltzmannUnsteadyHeatFluxElement< ELEMENT >::output_stefan_boltzmann_radiation(), output_zeta(), oomph::DGFaceElement::report_info(), oomph::AxisymmetricNavierStokesTractionElement< ELEMENT >::scalar_value_paraview(), AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_boundary_values(), oomph::Multi_domain_functions::setup_bulk_elements_adjacent_to_face_mesh(), oomph::FourierDecomposedHelmholtzDtNMesh< ELEMENT >::setup_gamma(), oomph::HelmholtzDtNMesh< ELEMENT >::setup_gamma(), TFaceTestProblem< ELEMENT >::TFaceTestProblem(), and oomph::ThinLayerBrickOnTetMesh< ELEMENT >::ThinLayerBrickOnTetMesh().
|
inlinevirtual |
Return FE interpolated position x[] at local coordinate s as Vector Overloaded to get information from bulk.
Reimplemented from oomph::FiniteElement.
References bulk_element_pt(), oomph::FiniteElement::dim(), oomph::FiniteElement::interpolated_x(), local_coordinate_in_bulk(), s, and plotDoE::x.
Return the Jacobian of mapping from local to global coordinates at local position s. Overloaded from FiniteElement.
Calculate the determinant of the Jacobian of the mapping between local and global coordinates at the position s. Overloaded from FiniteElement.
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::BiharmonicFluxElement< DIM >.
References bulk_position_type(), oomph::FiniteElement::dim(), oomph::FiniteElement::dshape_local(), i, j, k, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_dimension(), oomph::FiniteElement::nodal_position_gen(), OOMPH_EXCEPTION_LOCATION, s, and sqrt().
Referenced by oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::add_element_contribution_to_aux_integral(), oomph::FourierDecomposedHelmholtzBCElementBase< ELEMENT >::d_shape_and_test_local(), oomph::HelmholtzBCElementBase< ELEMENT >::d_shape_and_test_local(), oomph::PMLFourierDecomposedHelmholtzPowerMonitorElement< ELEMENT >::d_shape_and_test_local(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::drag_force(), oomph::ClampedHermiteShellBoundaryConditionElement::fill_in_contribution_to_residuals(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::get_drag_and_torque(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_kinetic_energy_flux(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_rate_of_traction_work(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_rate_of_traction_work_components(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::get_volume_flux(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_volume_flux(), oomph::PMLHelmholtzPowerElement< ELEMENT >::global_flux_contribution(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_helmholtz(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_solid(), oomph::FourierDecomposedHelmholtzBCElementBase< ELEMENT >::global_power_contribution(), oomph::HelmholtzBCElementBase< ELEMENT >::global_power_contribution(), oomph::PMLFourierDecomposedHelmholtzPowerMonitorElement< ELEMENT >::global_power_contribution(), oomph::PMLHelmholtzPowerElement< ELEMENT >::global_power_contribution(), oomph::SolubleSurfactantTransportInterfaceElement::integrated_C(), oomph::ClampedHermiteShellBoundaryConditionElement::output(), oomph::UnsteadyHeatBaseFaceElement< ELEMENT >::shape_and_test(), oomph::UnsteadyHeatFluxPseudoMeltElement< ELEMENT >::shape_and_test(), oomph::AdvectionDiffusionFluxElement< ELEMENT >::shape_and_test(), oomph::LinearisedFSIAxisymmetricNStNoSlipBCElementElement< FLUID_BULK_ELEMENT, SOLID_BULK_ELEMENT >::shape_and_test(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::shape_and_test(), oomph::FourierDecomposedHelmholtzBCElementBase< ELEMENT >::shape_and_test(), oomph::FourierDecomposedHelmholtzFluxElement< ELEMENT >::shape_and_test(), oomph::HelmholtzFluxElement< ELEMENT >::shape_and_test(), oomph::LinearWaveFluxElement< ELEMENT >::shape_and_test(), oomph::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::shape_and_test(), oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::shape_and_test(), oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::shape_and_test(), oomph::PMLFourierDecomposedHelmholtzFluxElement< ELEMENT >::shape_and_test(), oomph::PMLFourierDecomposedHelmholtzPowerMonitorElement< ELEMENT >::shape_and_test(), oomph::PMLHelmholtzFluxElement< ELEMENT >::shape_and_test(), oomph::PoissonFluxElement< ELEMENT >::shape_and_test(), oomph::SphericalAdvectionDiffusionFluxElement< ELEMENT >::shape_and_test(), oomph::SteadyAxisymAdvectionDiffusionFluxElement< ELEMENT >::shape_and_test(), oomph::UnsteadyHeatFluxElement< ELEMENT >::shape_and_test(), and oomph::HelmholtzBCElementBase< ELEMENT >::test_only().
Return the Jacobian of the mapping from local to global coordinates at the ipt-th integration point Overloaded from FiniteElement.
Compute the Jacobian of the mapping between the local and global coordinates at the ipt-th integration point. Overloaded from FiniteElement.
Reimplemented from oomph::FiniteElement.
References bulk_position_type(), oomph::FiniteElement::dim(), oomph::FiniteElement::dshape_local_at_knot(), i, j, k, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_dimension(), oomph::FiniteElement::nodal_position_gen(), OOMPH_EXCEPTION_LOCATION, and sqrt().
Referenced by oomph::DGFaceElement::add_flux_contributions(), oomph::ImposeImpenetrabilityElement< ELEMENT >::fill_in_generic_contribution_to_residuals_parall_lagr_multiplier(), oomph::ImposeParallelOutflowElement< ELEMENT >::fill_in_generic_contribution_to_residuals_parall_lagr_multiplier(), oomph::ClampedHermiteShellBoundaryConditionElement::output(), oomph::PolarStreamfunctionTractionElement< ELEMENT >::shape_and_test_at_knot(), oomph::NavierStokesFluxControlElement< ELEMENT >::shape_and_test_at_knot(), oomph::AdvectionDiffusionFluxElement< ELEMENT >::shape_and_test_at_knot(), oomph::LinearisedFSIAxisymmetricNStNoSlipBCElementElement< FLUID_BULK_ELEMENT, SOLID_BULK_ELEMENT >::shape_and_test_at_knot(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::shape_and_test_at_knot(), oomph::FourierDecomposedHelmholtzFluxElement< ELEMENT >::shape_and_test_at_knot(), oomph::HelmholtzFluxElement< ELEMENT >::shape_and_test_at_knot(), oomph::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::shape_and_test_at_knot(), oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::shape_and_test_at_knot(), oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::shape_and_test_at_knot(), oomph::NavierStokesTractionElement< ELEMENT >::shape_and_test_at_knot(), oomph::PMLFourierDecomposedHelmholtzFluxElement< ELEMENT >::shape_and_test_at_knot(), oomph::PMLHelmholtzFluxElement< ELEMENT >::shape_and_test_at_knot(), oomph::PoissonFluxElement< ELEMENT >::shape_and_test_at_knot(), oomph::PolarNavierStokesTractionElement< ELEMENT >::shape_and_test_at_knot(), oomph::PolarStressIntegralElement< ELEMENT >::shape_and_test_at_knot(), oomph::NavierStokesSpaceTimeTractionElement< ELEMENT >::shape_and_test_at_knot(), oomph::NavierStokesMixedOrderSpaceTimeTractionElement< ELEMENT >::shape_and_test_at_knot(), oomph::SphericalAdvectionDiffusionFluxElement< ELEMENT >::shape_and_test_at_knot(), oomph::SteadyAxisymAdvectionDiffusionFluxElement< ELEMENT >::shape_and_test_at_knot(), and oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::shape_and_test_at_knot().
Return vector of local coordinates in bulk element, given the local coordinates in this FaceElement
References Bulk_element_pt, oomph::FiniteElement::dim(), Face_to_bulk_coordinate_fct_pt, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and s.
Referenced by oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::contribution_to_total_porous_flux(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::contribution_to_total_porous_flux(), RefineableYoungLaplaceProblem< ELEMENT >::doc_solution(), oomph::ClampedHermiteShellBoundaryConditionElement::fill_in_contribution_to_residuals(), oomph::PMLHelmholtzPowerElement< ELEMENT >::global_flux_contribution(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_helmholtz(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_solid(), oomph::FourierDecomposedHelmholtzBCElementBase< ELEMENT >::global_power_contribution(), oomph::HelmholtzBCElementBase< ELEMENT >::global_power_contribution(), oomph::PMLFourierDecomposedHelmholtzPowerMonitorElement< ELEMENT >::global_power_contribution(), oomph::PMLHelmholtzPowerElement< ELEMENT >::global_power_contribution(), interpolated_dxdt(), interpolated_x(), oomph::SolidFaceElement::interpolated_xi(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::lagrangian_eulerian_translation_factor(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::output(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::output(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::output(), and oomph::ClampedHermiteShellBoundaryConditionElement::output().
Return the number of values originally stored at local node n (before the FaceElement added additional values to it (if it did))
References n, and Nbulk_value.
Referenced by oomph::FiniteElement::build_face_element(), oomph::QHermiteElement< DIM >::build_face_element(), oomph::QSpectralElement< 1, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 2, NNODE_1D >::build_face_element(), oomph::TBubbleEnrichedElement< DIM, NNODE_1D >::build_face_element(), oomph::TElement< 1, NNODE_1D >::build_face_element(), oomph::TElement< 2, NNODE_1D >::build_face_element(), oomph::TElement< 3, NNODE_1D >::build_face_element(), ContactProblem< ELEMENT >::create_displ_imposition_elements(), UnstructuredTorusProblem< ELEMENT >::create_lagrange_multiplier_elements(), FSICollapsibleChannelProblem< ELEMENT >::create_lagrange_multiplier_elements(), PseudoElasticCollapsibleChannelProblem< FLUID_ELEMENT, SOLID_ELEMENT >::create_lagrange_multiplier_elements(), FSIChannelWithLeafletProblem< ELEMENT >::create_lagrange_multiplier_elements(), UnstructuredFSIProblem< FLUID_ELEMENT, SOLID_ELEMENT >::create_lagrange_multiplier_elements(), PrescribedBoundaryDisplacementProblem< ELEMENT >::create_lagrange_multiplier_elements(), UnstructuredImmersedEllipseProblem< ELEMENT >::create_lagrange_multiplier_elements(), UnstructuredFluidProblem< ELEMENT >::create_lagrange_multiplier_elements(), CollapsibleChannelProblem< ELEMENT >::create_lagrange_multiplier_elements(), TiltedCavityProblem< ELEMENT >::create_parall_outflow_lagrange_elements(), and oomph::FixedVolumeSpineLineMarangoniFluidInterfaceElement< ELEMENT >::make_bounding_element().
Return the number of values originally stored at local node n (before the FaceElement added additional values to it (if it did)) (const version)
References n, and Nbulk_value.
|
inline |
Resize the storage for the number of values originally stored at the local nodes to i entries.
References i, and Nbulk_value.
Referenced by oomph::FiniteElement::build_face_element(), oomph::QHermiteElement< DIM >::build_face_element(), oomph::QSpectralElement< 1, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 2, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 3, NNODE_1D >::build_face_element(), oomph::TBubbleEnrichedElement< DIM, NNODE_1D >::build_face_element(), oomph::TElement< 1, NNODE_1D >::build_face_element(), oomph::TElement< 2, NNODE_1D >::build_face_element(), and oomph::TElement< 3, NNODE_1D >::build_face_element().
|
inline |
Sign of outer unit normal (relative to cross-products of tangent vectors in the corresponding "bulk" element.
References Normal_sign.
Referenced by oomph::FiniteElement::build_face_element(), oomph::QHermiteElement< DIM >::build_face_element(), oomph::QSpectralElement< 1, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 2, NNODE_1D >::build_face_element(), oomph::QSpectralElement< 3, NNODE_1D >::build_face_element(), oomph::TElement< 1, NNODE_1D >::build_face_element(), oomph::TElement< 2, NNODE_1D >::build_face_element(), oomph::TElement< 3, NNODE_1D >::build_face_element(), oomph::BrickFromTetMesh< ELEMENT >::build_mesh(), oomph::SurfaceVolumeConstraintBoundingElement::fill_in_generic_residual_contribution_volume_constraint(), and oomph::ThinLayerBrickOnTetMesh< ELEMENT >::ThinLayerBrickOnTetMesh().
|
inline |
Return sign of outer unit normal (relative to cross-products of tangent vectors in the corresponding "bulk" element. (const version)
References Normal_sign.
void oomph::FaceElement::outer_unit_normal | ( | const unsigned & | ipt, |
Vector< double > & | unit_normal | ||
) | const |
Compute outer unit normal at ipt-th integration point.
Compute the outer unit normal at the ipt-th integration point.
References oomph::FiniteElement::dim(), i, oomph::FiniteElement::integral_pt(), oomph::Integral::knot(), outer_unit_normal(), and s.
void oomph::FaceElement::outer_unit_normal | ( | const Vector< double > & | s, |
Vector< double > & | unit_normal | ||
) | const |
Compute outer unit normal at the specified local coordinate.
Compute the outer unit normal at the specified local coordinate.
References Bulk_element_pt, bulk_position_type(), oomph::VectorHelpers::cross(), oomph::FiniteElement::dim(), oomph::FiniteElement::dshape_local(), get_ds_bulk_ds_face(), get_local_coordinate_in_bulk(), i, j, k, oomph::VectorHelpers::magnitude(), oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_dimension(), oomph::FiniteElement::nodal_position_gen(), WallFunction::normal(), Normal_sign, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and s.
Referenced by oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::add_element_contribution_to_aux_integral(), DarcyProblem< ELEMENT >::complete_problem_setup(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::contribution_to_enclosed_volume(), oomph::LineVolumeConstraintBoundingElement::contribution_to_enclosed_volume(), oomph::AxisymmetricVolumeConstraintBoundingElement::contribution_to_enclosed_volume(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::contribution_to_total_porous_flux(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::contribution_to_total_porous_flux(), oomph::AxisymmetricVolumeConstraintBoundingElement::contribution_to_volume_flux(), DarcyProblem< ELEMENT >::doc_shape_functions(), StefanBoltzmannProblem< ELEMENT >::doc_solution(), DiskShockWaveProblem< ELEMENT, TIMESTEPPER >::doc_solution(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::drag_force(), oomph::ImposeImpenetrabilityElement< ELEMENT >::fill_in_generic_contribution_to_residuals_parall_lagr_multiplier(), oomph::NavierStokesFluxControlElement< ELEMENT >::fill_in_generic_residual_contribution_fluid_traction(), oomph::FluidInterfaceElement::fill_in_generic_residual_contribution_interface(), oomph::PointFluidInterfaceBoundingElement::fill_in_generic_residual_contribution_interface_boundary(), oomph::LineFluidInterfaceBoundingElement::fill_in_generic_residual_contribution_interface_boundary(), oomph::LineVolumeConstraintBoundingElement::fill_in_generic_residual_contribution_volume_constraint(), oomph::AxisymmetricVolumeConstraintBoundingElement::fill_in_generic_residual_contribution_volume_constraint(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::get_drag_and_torque(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_kinetic_energy_flux(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::get_pressure(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_rate_of_traction_work(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_rate_of_traction_work_components(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::get_traction(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::get_volume_flux(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_volume_flux(), oomph::PMLHelmholtzPowerElement< ELEMENT >::global_flux_contribution(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_helmholtz(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_solid(), oomph::FourierDecomposedHelmholtzBCElementBase< ELEMENT >::global_power_contribution(), oomph::HelmholtzBCElementBase< ELEMENT >::global_power_contribution(), oomph::PMLFourierDecomposedHelmholtzPowerMonitorElement< ELEMENT >::global_power_contribution(), oomph::PMLHelmholtzPowerElement< ELEMENT >::global_power_contribution(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::lagrangian_eulerian_translation_factor(), oomph::DGFaceElement::numerical_flux_at_knot(), outer_unit_normal(), oomph::NonlinearSurfaceContactElement< ELEMENT >::output(), oomph::LinearSurfaceContactElement< ELEMENT >::output(), oomph::UnsteadyHeatBaseFaceElement< ELEMENT >::output(), oomph::UnsteadyHeatFluxPseudoMeltElement< ELEMENT >::output(), oomph::AxisymmetricLinearElasticityTractionElement< ELEMENT >::output(), oomph::FSIAxisymmetricLinearElasticityTractionElement< ELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::output(), oomph::AxisymmetricNavierStokesTractionElement< ELEMENT >::output(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::output(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::output(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::output(), oomph::SurfactantTransportInterfaceElement::output(), oomph::FourierDecomposedTimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::output(), oomph::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::TimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::output(), oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::output(), oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::output(), oomph::SolidTractionElement< ELEMENT >::output(), oomph::FSISolidTractionElement< ELEMENT, DIM >::output(), oomph::SolarRadiationBase::output_atmospheric_radiation(), oomph::SolarRadiationBase::output_limiting_angles(), oomph::SurfaceMeltElement< ELEMENT >::output_melt(), oomph::NavierStokesEquations< DIM >::output_pressure_advection_diffusion_robin_elements(), oomph::SpaceTimeNavierStokesEquations< DIM >::output_pressure_advection_diffusion_robin_elements(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::output_pressure_advection_diffusion_robin_elements(), oomph::StefanBoltzmannUnsteadyHeatFluxElement< ELEMENT >::output_stefan_boltzmann_radiation(), oomph::RefineableNavierStokesFluxControlElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::AxisymmetricNavierStokesTractionElement< ELEMENT >::scalar_value_paraview(), AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_boundary_values(), oomph::StefanBoltzmannHelper::setup_stefan_boltzmann_visibility(), TFaceTestProblem< ELEMENT >::TFaceTestProblem(), and oomph::ThinLayerBrickOnTetMesh< ELEMENT >::ThinLayerBrickOnTetMesh().
void oomph::FaceElement::output_zeta | ( | std::ostream & | outfile, |
const unsigned & | nplot | ||
) |
Output boundary coordinate zeta.
References oomph::FiniteElement::dim(), oomph::FiniteElement::get_s_plot(), i, interpolated_x(), oomph::FiniteElement::interpolated_zeta(), oomph::FiniteElement::nplot_points(), s, oomph::FiniteElement::tecplot_zone_string(), oomph::FiniteElement::write_tecplot_zone_footer(), and Eigen::zeta().
Provide additional storage for a specified number of values at the nodes of the FaceElement. (This is needed, for instance, in free-surface elements, if the non-penetration condition is imposed by Lagrange multipliers whose values are only stored at the surface nodes but not in the interior of the bulk element). nadditional_data_values
[n] specifies the number of additional values required at node n
of the FaceElement. Note: Since this function is executed separately for each FaceElement, nodes that are common to multiple elements might be resized repeatedly. To avoid this, we only allow a single resize operation by comparing the number of values stored at each node to the number of values the node had when it was simply a member of the associated "bulk" element. There are cases where this will break! – e.g. if a node is common to two FaceElements which require additional storage for distinct quantities. Such cases need to be handled by "hand-crafted" face elements.
References Nbulk_value, oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), oomph::Data::nvalue(), and oomph::Node::resize().
Referenced by oomph::ClampedHermiteShellBoundaryConditionElement::ClampedHermiteShellBoundaryConditionElement(), and oomph::ClampedSlidingHermiteBeamBoundaryConditionElement::ClampedSlidingHermiteBeamBoundaryConditionElement().
|
inline |
Set function for the boundary number in bulk mesh.
References b, and Boundary_number_in_bulk_mesh.
Referenced by TurekProblem< FLUID_ELEMENT, SOLID_ELEMENT >::actions_after_distribute(), TurekProblem< FLUID_ELEMENT, SOLID_ELEMENT >::build_mesh(), oomph::BrickFromTetMesh< ELEMENT >::build_mesh(), PressureWaveFSIProblem< FLUID_ELEMENT, SOLID_ELEMENT >::create_fluid_traction_elements(), PseudoSolidCapProblem< ELEMENT >::create_free_surface_elements(), AxisymmetricVibratingShellProblem< ELEMENT >::create_free_surface_elements(), VibratingShellProblem< ELEMENT >::create_free_surface_elements(), TwoLayerInterfaceProblem< ELEMENT >::create_free_surface_elements(), RisingBubbleProblem< ELEMENT >::create_free_surface_elements(), BubbleInChannelProblem< ELEMENT >::create_free_surface_elements(), DropInChannelProblem< ELEMENT >::create_free_surface_elements(), CoatedDiskProblem< ELASTICITY_ELEMENT, HELMHOLTZ_ELEMENT >::create_fsi_traction_elements(), CoatedSphereProblem< ELASTICITY_ELEMENT, HELMHOLTZ_ELEMENT >::create_fsi_traction_elements(), PseudoElasticCollapsibleChannelProblem< FLUID_ELEMENT, SOLID_ELEMENT >::create_fsi_traction_elements(), UnstructuredFSIProblem< FLUID_ELEMENT, SOLID_ELEMENT >::create_fsi_traction_elements(), CoatedDiskProblem< ELASTICITY_ELEMENT, HELMHOLTZ_ELEMENT >::create_helmholtz_fsi_flux_elements(), CoatedSphereProblem< ELASTICITY_ELEMENT, HELMHOLTZ_ELEMENT >::create_helmholtz_fsi_flux_elements(), CoatedDiskProblem< ELASTICITY_ELEMENT, HELMHOLTZ_ELEMENT >::create_solid_traction_elements(), CoatedSphereProblem< ELASTICITY_ELEMENT, HELMHOLTZ_ELEMENT >::create_solid_traction_elements(), PressureWaveFSIProblem< FLUID_ELEMENT, SOLID_ELEMENT >::create_solid_traction_elements(), AnnularDiskProblem< ELASTICITY_ELEMENT >::create_traction_elements(), RingWithTRibProblem< ELASTICITY_ELEMENT >::create_traction_elements(), oomph::Mesh::doc_boundary_coordinates(), TurekProblem< FLUID_ELEMENT, SOLID_ELEMENT >::generic_actions_after(), oomph::NonLinearElasticitySmoothMesh< ELEMENT >::operator()(), oomph::Multi_domain_functions::setup_bulk_elements_adjacent_to_face_mesh(), oomph::RefineableTetgenMesh< ELEMENT >::snap_nodes_onto_boundary(), oomph::ThinLayerBrickOnTetMesh< ELEMENT >::ThinLayerBrickOnTetMesh(), TurekProblem< FLUID_ELEMENT, SOLID_ELEMENT >::TurekProblem(), and oomph::RefineableTetgenMesh< ELEMENT >::update_faceted_surface_using_face_mesh().
Set the tangent direction vector.
References oomph::FiniteElement::nodal_dimension(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, Tangent_direction_pt, and tangent_direction_pt().
Public access function for the tangent direction pointer.
References Tangent_direction_pt.
Referenced by set_tangent_direction().
|
inline |
Turn off warning for when there may be discontinuous tangent vectors from continuous_tangent_and_outer_unit_normal(...)
References Ignore_discontinuous_tangent_warning.
|
inline |
Turn on warning for when there may be discontinuous tangent vectors from continuous_tangent_and_outer_unit_normal(...)
References Ignore_discontinuous_tangent_warning.
|
inlinevirtual |
In a FaceElement, the "global" intrinsic coordinate of the element along the boundary, when viewed as part of a compound geometric object is specified using the boundary coordinate defined by the mesh. Note: Boundary coordinates will have been set up when creating the underlying mesh, and their values will have been stored at the nodes.
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::YoungLaplaceContactAngleElement< ELEMENT >, oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >, oomph::UnsteadyHeatFluxElement< ELEMENT >, oomph::TimeHarmonicLinearElasticityTractionElement< ELEMENT >, oomph::TimeHarmonicFourierDecomposedLinearElasticityTractionElement< ELEMENT >, oomph::SteadyAxisymAdvectionDiffusionFluxElement< ELEMENT >, oomph::SphericalAdvectionDiffusionFluxElement< ELEMENT >, oomph::NavierStokesMixedOrderSpaceTimeTractionElement< ELEMENT >, oomph::NavierStokesSpaceTimeTractionElement< ELEMENT >, oomph::NavierStokesSpaceTimeTractionElement< ELEMENT >, oomph::NavierStokesSpaceTimeTractionElement< ELEMENT >, oomph::PoroelasticityFaceElement< ELEMENT >, oomph::PoissonFluxElement< ELEMENT >, oomph::PMLTimeHarmonicLinearElasticityTractionElement< ELEMENT >, oomph::PMLHelmholtzFluxElement< ELEMENT >, oomph::PMLHelmholtzPowerElement< ELEMENT >, oomph::PMLFourierDecomposedHelmholtzPowerMonitorElement< ELEMENT >, oomph::NavierStokesSurfacePowerElement< ELEMENT >, oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >, oomph::ImposeParallelOutflowElement< ELEMENT >, oomph::ImposeImpenetrabilityElement< ELEMENT >, oomph::NavierStokesTractionElement< ELEMENT >, oomph::LinearWaveFluxElement< ELEMENT >, oomph::LinearElasticityTractionElement< ELEMENT >, oomph::HelmholtzFluxElement< ELEMENT >, oomph::HelmholtzBCElementBase< ELEMENT >, oomph::FaceElementAsGeomObject< ELEMENT >, oomph::DummyFaceElement< ELEMENT >, oomph::SolidFaceElement, oomph::ElasticUpdateFluidInterfaceElement< FluidInterfaceElement, SurfaceDerivatives, ELEMENT >, oomph::ElasticUpdateFluidInterfaceElement< SurfactantTransportInterfaceElement, AxisymmetricDerivatives, ELEMENT >, oomph::ElasticUpdateFluidInterfaceElement< FluidInterfaceElement, AxisymmetricDerivatives, ELEMENT >, oomph::ElasticUpdateFluidInterfaceElement< SolubleSurfactantTransportInterfaceElement, LineDerivatives, ELEMENT >, oomph::ElasticUpdateFluidInterfaceElement< FluidInterfaceElement, LineDerivatives, ELEMENT >, and oomph::AxisymmetricPoroelasticityTractionElement< POROELASTICITY_BULK_ELEMENT >.
References Boundary_number_in_bulk_mesh, oomph::FiniteElement::dim(), oomph::Node::get_coordinates_on_boundary(), i, k, oomph::FiniteElement::node_pt(), and Eigen::zeta().
Referenced by oomph::UnsteadyHeatBaseFaceElement< ELEMENT >::zeta_nodal(), oomph::SurfaceMeltElement< ELEMENT >::zeta_nodal(), StefanBoltzmannMeltElement< ELEMENT >::zeta_nodal(), oomph::StefanBoltzmannUnsteadyHeatFluxElement< ELEMENT >::zeta_nodal(), oomph::UnsteadyHeatFluxPseudoMeltElement< ELEMENT >::zeta_nodal(), oomph::AdvectionDiffusionFluxElement< ELEMENT >::zeta_nodal(), oomph::AxisymmetricLinearElasticityTractionElement< ELEMENT >::zeta_nodal(), oomph::AxisymmetricNavierStokesTractionElement< ELEMENT >::zeta_nodal(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::zeta_nodal(), oomph::BiharmonicFluxElement< DIM >::zeta_nodal(), oomph::DarcyFaceElement< ELEMENT >::zeta_nodal(), oomph::ElasticLineVolumeConstraintBoundingElement< ELEMENT >::zeta_nodal(), oomph::SpineLineVolumeConstraintBoundingElement< ELEMENT >::zeta_nodal(), oomph::ElasticAxisymmetricVolumeConstraintBoundingElement< ELEMENT >::zeta_nodal(), oomph::SpineAxisymmetricVolumeConstraintBoundingElement< ELEMENT >::zeta_nodal(), oomph::ElasticSurfaceVolumeConstraintBoundingElement< ELEMENT >::zeta_nodal(), oomph::SpineSurfaceVolumeConstraintBoundingElement< ELEMENT >::zeta_nodal(), oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::zeta_nodal(), oomph::ElasticPointFluidInterfaceBoundingElement< ELEMENT >::zeta_nodal(), oomph::ElasticLineFluidInterfaceBoundingElement< ELEMENT >::zeta_nodal(), oomph::DGEulerFaceElement< ELEMENT >::zeta_nodal(), oomph::DGEulerFaceReflectionElement< ELEMENT >::zeta_nodal(), oomph::FourierDecomposedHelmholtzBCElementBase< ELEMENT >::zeta_nodal(), oomph::SolidFaceElement::zeta_nodal(), oomph::DummyFaceElement< ELEMENT >::zeta_nodal(), oomph::FaceElementAsGeomObject< ELEMENT >::zeta_nodal(), oomph::HelmholtzBCElementBase< ELEMENT >::zeta_nodal(), oomph::HelmholtzFluxElement< ELEMENT >::zeta_nodal(), oomph::LinearElasticityTractionElement< ELEMENT >::zeta_nodal(), oomph::LinearWaveFluxElement< ELEMENT >::zeta_nodal(), oomph::NavierStokesTractionElement< ELEMENT >::zeta_nodal(), oomph::ImposeImpenetrabilityElement< ELEMENT >::zeta_nodal(), oomph::ImposeParallelOutflowElement< ELEMENT >::zeta_nodal(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::zeta_nodal(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::zeta_nodal(), oomph::PMLFourierDecomposedHelmholtzPowerMonitorElement< ELEMENT >::zeta_nodal(), oomph::PMLHelmholtzPowerElement< ELEMENT >::zeta_nodal(), oomph::PMLHelmholtzFluxElement< ELEMENT >::zeta_nodal(), oomph::PMLTimeHarmonicLinearElasticityTractionElement< ELEMENT >::zeta_nodal(), oomph::PoissonFluxElement< ELEMENT >::zeta_nodal(), oomph::PoroelasticityFaceElement< ELEMENT >::zeta_nodal(), oomph::NavierStokesSpaceTimeTractionElement< ELEMENT >::zeta_nodal(), oomph::NavierStokesMixedOrderSpaceTimeTractionElement< ELEMENT >::zeta_nodal(), oomph::SphericalAdvectionDiffusionFluxElement< ELEMENT >::zeta_nodal(), oomph::SteadyAxisymAdvectionDiffusionFluxElement< ELEMENT >::zeta_nodal(), oomph::TimeHarmonicFourierDecomposedLinearElasticityTractionElement< ELEMENT >::zeta_nodal(), oomph::TimeHarmonicLinearElasticityTractionElement< ELEMENT >::zeta_nodal(), oomph::UnsteadyHeatFluxElement< ELEMENT >::zeta_nodal(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::zeta_nodal(), and oomph::YoungLaplaceContactAngleElement< ELEMENT >::zeta_nodal().
|
protected |
The boundary number in the bulk mesh to which this element is attached.
Referenced by boundary_number_in_bulk_mesh(), set_boundary_number_in_bulk_mesh(), oomph::ImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::set_boundary_shape_geom_object_pt(), and zeta_nodal().
|
private |
Pointer to a function that returns the derivatives of the local "bulk" coordinates with respect to the local face coordinates.
Referenced by bulk_coordinate_derivatives_fct_pt(), and get_ds_bulk_ds_face().
|
protected |
Pointer to the associated higher-dimensional "bulk" element.
Referenced by bulk_element_pt(), continuous_tangent_and_outer_unit_normal(), oomph::ImposeImpenetrabilityElement< ELEMENT >::get_dof_numbers_for_unknowns(), oomph::ImposeParallelOutflowElement< ELEMENT >::get_dof_numbers_for_unknowns(), local_coordinate_in_bulk(), and outer_unit_normal().
List of indices of the local node numbers in the "bulk" element that correspond to the local node numbers in the FaceElement
Referenced by bulk_node_number(), bulk_node_number_resize(), oomph::ImposeImpenetrabilityElement< ELEMENT >::get_dof_numbers_for_unknowns(), oomph::ImposeParallelOutflowElement< ELEMENT >::get_dof_numbers_for_unknowns(), and oomph::FluidInterfaceBoundingElement::set_contact_angle().
Vector holding integers to translate additional position types to those of the "bulk" element; e.g. Bulk_position_type(1) is the position type of the "bulk" element that corresponds to face position type 1. This is required in QHermiteElements, where the slope in the direction of the 1D element is face position type 1, but may be position type 1 or 2 in the "bulk" element, depending upon which face, we are located.
Referenced by bulk_position_type(), bulk_position_type_resize(), and FaceElement().
|
private |
Index of the face.
Referenced by face_index().
|
private |
Pointer to a function that translates the face coordinate to the coordinate in the bulk element
Referenced by face_to_bulk_coordinate_fct_pt(), get_local_coordinate_in_bulk(), and local_coordinate_in_bulk().
|
staticprivate |
Ignores the warning when the tangent vectors from continuous_tangent_and_outer_unit_normal may not be continuous as a result of the unit normal being aligned with the z axis. This can be avoided by supplying a general direction vector for the tangent vector via set_tangent_direction(...).
/////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
Referenced by continuous_tangent_and_outer_unit_normal(), turn_off_warning_for_discontinuous_tangent(), and turn_on_warning_for_discontinuous_tangent().
A vector that will hold the number of data values at the nodes that are associated with the "bulk" element. i.e. not including any additional degrees of freedom that might be required for extra equations that are being solved by the FaceElement.
Referenced by oomph::ClampedSlidingHermiteBeamBoundaryConditionElement::fill_in_contribution_to_residuals(), oomph::ClampedHermiteShellBoundaryConditionElement::fill_in_contribution_to_residuals(), nbulk_value(), nbulk_value_resize(), oomph::ClampedHermiteShellBoundaryConditionElement::output(), and resize_nodes().
|
private |
Sign of outer unit normal (relative to cross-products of tangent vectors in the corresponding "bulk" element.
Referenced by continuous_tangent_and_outer_unit_normal(), normal_sign(), and outer_unit_normal().
A general direction pointer for the tangent vectors. This is used in the function continuous_tangent_and_outer_unit_normal() for creating continuous tangent vectors in spatial dimensions. The general direction is projected on to the surface. This technique is not required in two spatial dimensions.
Referenced by continuous_tangent_and_outer_unit_normal(), set_tangent_direction(), and tangent_direction_pt().