![]() |
|
#include <stored_shape_function_elements.h>
Public Member Functions | |
StorableShapeElementBase () | |
Constructor, set most storage pointers to NULL. More... | |
virtual | ~StorableShapeElementBase () |
StorableShapeElementBase (const StorableShapeElementBase &)=delete | |
Broken copy constructor. More... | |
void | operator= (const StorableShapeElementBase &)=delete |
Broken assignment operator. More... | |
void | delete_all_shape_local_stored () |
void | delete_shape_local_stored () |
Delete stored shape functions. More... | |
void | delete_dshape_local_stored () |
void | delete_d2shape_local_stored () |
void | delete_all_dshape_eulerian_stored () |
void | delete_dshape_eulerian_stored () |
Delete stored derivatives w.r.t. Eulerian coordinates. More... | |
void | delete_d2shape_eulerian_stored () |
Delete stored 2nd derivatives w.r.t. Eulerian coordinates. More... | |
void | delete_J_eulerian_stored () |
virtual void | set_integration_scheme (Integral *const &integral_pt) |
Vector< Shape * > *& | shape_stored_pt () |
Vector< Shape * > *const & | shape_stored_pt () const |
Shape *& | shape_stored_pt (const unsigned &ipt) |
Shape *const & | shape_stored_pt (const unsigned &ipt) const |
Vector< DShape * > *& | dshape_local_stored_pt () |
Vector< DShape * > *const & | dshape_local_stored_pt () const |
Vector< DShape * > *& | d2shape_local_stored_pt () |
Vector< DShape * > *const & | d2shape_local_stored_pt () const |
Vector< DShape * > *& | dshape_eulerian_stored_pt () |
Vector< DShape * > *const & | dshape_eulerian_stored_pt () const |
Vector< DShape * > *& | d2shape_eulerian_stored_pt () |
Vector< DShape * > *const & | d2shape_eulerian_stored_pt () const |
Vector< double > *& | jacobian_eulerian_stored_pt () |
Vector< double > *const & | jacobian_eulerian_stored_pt () const |
void | set_shape_local_stored_from_element (StorableShapeElementBase *const &element_pt) |
void | set_dshape_eulerian_stored_from_element (StorableShapeElementBase *const &element_pt) |
void | pre_compute_shape_at_knots () |
void | shape_at_knot (const unsigned &ipt, Shape &psi) const |
void | pre_compute_dshape_local_at_knots () |
void | dshape_local_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsids) const |
void | pre_compute_d2shape_local_at_knots () |
void | d2shape_local_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsids, DShape &d2psids) const |
void | pre_compute_J_eulerian_at_knots () |
double | J_eulerian_at_knot (const unsigned &ipt) const |
void | pre_compute_dshape_eulerian_at_knots () |
double | dshape_eulerian_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsidx) const |
void | pre_compute_d2shape_eulerian_at_knots () |
double | d2shape_eulerian_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsidx, DShape &d2psidx) const |
![]() | |
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) |
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 | dshape_local (const Vector< double > &s, Shape &psi, DShape &dpsids) const |
virtual void | d2shape_local (const Vector< double > &s, Shape &psi, DShape &dpsids, DShape &d2psids) const |
virtual double | J_eulerian (const Vector< double > &s) 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 &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 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... | |
virtual double | interpolated_x (const Vector< double > &s, const unsigned &i) const |
Return FE interpolated coordinate x[i] at local coordinate s. More... | |
virtual double | interpolated_x (const unsigned &t, const Vector< double > &s, const unsigned &i) const |
virtual void | interpolated_x (const Vector< double > &s, Vector< double > &x) const |
Return FE interpolated position x[] at local coordinate s as Vector. More... | |
virtual void | interpolated_x (const unsigned &t, const Vector< double > &s, Vector< double > &x) const |
virtual double | interpolated_dxdt (const Vector< double > &s, const unsigned &i, const unsigned &t) |
virtual void | interpolated_dxdt (const Vector< double > &s, const unsigned &t, Vector< double > &dxdt) |
unsigned | ngeom_data () const |
Data * | geom_data_pt (const unsigned &j) |
void | position (const Vector< double > &zeta, Vector< double > &r) const |
void | position (const unsigned &t, const Vector< double > &zeta, Vector< double > &r) const |
void | dposition_dt (const Vector< double > &zeta, const unsigned &t, Vector< double > &drdt) |
virtual double | zeta_nodal (const unsigned &n, const unsigned &k, const unsigned &i) const |
void | interpolated_zeta (const Vector< double > &s, Vector< double > &zeta) const |
void | locate_zeta (const Vector< double > &zeta, GeomObject *&geom_object_pt, Vector< double > &s, const bool &use_coordinate_as_initial_guess=false) |
virtual void | node_update () |
virtual void | identify_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 |
Private Attributes | |
Vector< Shape * > * | Shape_stored_pt |
Vector< DShape * > * | DShape_local_stored_pt |
Vector< DShape * > * | D2Shape_local_stored_pt |
bool | Can_delete_shape_local_stored |
Vector< DShape * > * | DShape_eulerian_stored_pt |
Vector< DShape * > * | D2Shape_eulerian_stored_pt |
Vector< double > * | Jacobian_eulerian_stored_pt |
bool | Can_delete_dshape_eulerian_stored |
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 |
![]() | |
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) |
![]() | |
MacroElement * | Macro_elem_pt |
Pointer to the element's macro element (NULL by default) More... | |
![]() | |
unsigned | NLagrangian |
Number of Lagrangian (intrinsic) coordinates. More... | |
unsigned | Ndim |
Number of Eulerian coordinates. More... | |
TimeStepper * | Geom_object_time_stepper_pt |
![]() | |
static 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 |
Base class for elements that allow storage of precomputed shape functions and their derivatives w.r.t to the local and global (Eulerian) coordinates at the element's integration points.
|
inline |
Constructor, set most storage pointers to NULL.
|
virtual |
The destructor cleans up the static memory allocated for shape function storage. Internal and external data get wiped by the GeneralisedElement destructor; nodes get killed in mesh destructor.
The destructor cleans up the memory allocated for shape function storage.
References delete_all_dshape_eulerian_stored(), and delete_all_shape_local_stored().
|
delete |
Broken copy constructor.
|
virtual |
Return the geometric shape functions and also first and second derivatives w.r.t. global coordinates at ipt-th integration point. If the values of the shape functions and derivatives have been pre-computred, these will be used
Return the geometric shape functions, first and second derivatives w.r.t eulerian coordinates at the ipt-th integration point. If the values have already been computed, return the stored values.
Reimplemented from oomph::FiniteElement.
References oomph::FiniteElement::d2shape_eulerian_at_knot(), D2Shape_eulerian_stored_pt, and Jacobian_eulerian_stored_pt.
Return a pointer to the vector of pointers to the stored second derivatives of the shape functions w.r.t the global (eulerian) coordinates
References D2Shape_eulerian_stored_pt.
Referenced by set_dshape_eulerian_stored_from_element().
|
inline |
Return a pointer to the vector of pointers to the stored second derivatives of the shape functions w.r.t the global (eulerian) coordinates (const version)
References D2Shape_eulerian_stored_pt.
|
virtual |
Return the geometric shape function and its first and second derivatives w.r.t. the local coordinates at the ipt-th integration point. If pre-computed values have been stored, they will be used.
Return the shape function and its first and second derivatives w.r.t. the local coordinates at the ipt-th integration point.
Reimplemented from oomph::FiniteElement.
References oomph::FiniteElement::d2shape_local_at_knot(), and D2Shape_local_stored_pt.
Return a pointer to the vector of pointers to the stored second derivatives of the shape functions w.r.t the local coordinates
References D2Shape_local_stored_pt.
Referenced by set_shape_local_stored_from_element().
Return a pointer to the vector of pointers to the stored second derivatives of the shape functions w.r.t the local coordinates (const version)
References D2Shape_local_stored_pt.
void oomph::StorableShapeElementBase::delete_all_dshape_eulerian_stored | ( | ) |
Delete all storage related to deriatives of shape fcts w.r.t. to global Eulerian coords
Delete all stored quantities related to derivatives of shape fcts w.r.t. to global Eulerian coordinates
References delete_d2shape_eulerian_stored(), delete_dshape_eulerian_stored(), and delete_J_eulerian_stored().
Referenced by set_dshape_eulerian_stored_from_element(), and ~StorableShapeElementBase().
void oomph::StorableShapeElementBase::delete_all_shape_local_stored | ( | ) |
Delete all the objects stored in the [...]_local_stored_pt vectors and delete the vectors themselves
//////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// Delete all the objects stored in the vectors: Shape_stored, DShape_local_stored, and D2Shape_local_stored
References delete_d2shape_local_stored(), delete_dshape_local_stored(), and delete_shape_local_stored().
Referenced by set_shape_local_stored_from_element(), and ~StorableShapeElementBase().
void oomph::StorableShapeElementBase::delete_d2shape_eulerian_stored | ( | ) |
Delete stored 2nd derivatives w.r.t. Eulerian coordinates.
Delete stored second derivatives of shape functions w.r.t. to global Eulerian coordinates
References Can_delete_dshape_eulerian_stored, and D2Shape_eulerian_stored_pt.
Referenced by delete_all_dshape_eulerian_stored(), and pre_compute_d2shape_eulerian_at_knots().
void oomph::StorableShapeElementBase::delete_d2shape_local_stored | ( | ) |
Delete stored 2nd derivatives of shape functions w.r.t. to local coordinates
Delete stored second derivatives of shape functions w.r.t. to local coordinates
References Can_delete_shape_local_stored, and D2Shape_local_stored_pt.
Referenced by delete_all_shape_local_stored(), and pre_compute_d2shape_local_at_knots().
void oomph::StorableShapeElementBase::delete_dshape_eulerian_stored | ( | ) |
Delete stored derivatives w.r.t. Eulerian coordinates.
Delete stored deriatives of shape fcts w.r.t. to global Eulerian coords
References Can_delete_dshape_eulerian_stored, and DShape_eulerian_stored_pt.
Referenced by delete_all_dshape_eulerian_stored(), pre_compute_d2shape_eulerian_at_knots(), and pre_compute_dshape_eulerian_at_knots().
void oomph::StorableShapeElementBase::delete_dshape_local_stored | ( | ) |
Delete stored derivatives of shape functions w.r.t. to local coordinates
References Can_delete_shape_local_stored, and DShape_local_stored_pt.
Referenced by delete_all_shape_local_stored(), pre_compute_d2shape_local_at_knots(), and pre_compute_dshape_local_at_knots().
void oomph::StorableShapeElementBase::delete_J_eulerian_stored | ( | ) |
Delete stored Jacobian of mapping between local and global (Eulerian) coordinates
Delete stored Jacobian of mapping between local and global Eulerian coordinates
References Can_delete_dshape_eulerian_stored, and Jacobian_eulerian_stored_pt.
Referenced by delete_all_dshape_eulerian_stored(), pre_compute_d2shape_eulerian_at_knots(), pre_compute_dshape_eulerian_at_knots(), and pre_compute_J_eulerian_at_knots().
void oomph::StorableShapeElementBase::delete_shape_local_stored | ( | ) |
Delete stored shape functions.
References Can_delete_shape_local_stored, and Shape_stored_pt.
Referenced by delete_all_shape_local_stored(), pre_compute_d2shape_local_at_knots(), pre_compute_dshape_local_at_knots(), and pre_compute_shape_at_knots().
|
virtual |
Return the geometric shape functions and also first derivatives w.r.t. global coordinates at the ipt-th integration point. If the values of the shape functions and derivatives have been pre-computed, these will be used
Compute the geometric shape functions, and derivatives w.r.t eulerian coordinates at the ipt-th integration point. If the values have already been computed, return the stored values.
Reimplemented from oomph::FiniteElement.
References oomph::FiniteElement::dshape_eulerian_at_knot(), DShape_eulerian_stored_pt, and Jacobian_eulerian_stored_pt.
Return a pointer to the vector of pointers to the stored first derivatives of the shape functions w.r.t the global (eulerian) coordinates
References DShape_eulerian_stored_pt.
Referenced by set_dshape_eulerian_stored_from_element().
Return a pointer to the vector of pointers to the stored first derivatives of the shape functions w.r.t the global (eulerian) coordinates (const version)
References DShape_eulerian_stored_pt.
|
virtual |
Return the geometric shape function and its derivative w.r.t. the local coordinates at the ipt-th integration point. If pre-computed values have been stored, they will be used.
Return the shape function and its derivatives w.r.t. the local coordinates at the ipt-th integration point.
Reimplemented from oomph::FiniteElement.
References oomph::FiniteElement::dshape_local_at_knot(), and DShape_local_stored_pt.
Return a pointer to the vector of pointers to the stored first derivatives of the shape functions w.r.t the local coordinates
References DShape_local_stored_pt.
Referenced by set_shape_local_stored_from_element().
Return a pointer to the vector of pointers to the stored first derivatives of the shape functions w.r.t the local coordinates (const version)
References DShape_local_stored_pt.
Return the Jacobian of the mapping from local to global coordinates at the ipt-th integration point
Return the Jacobian of the mapping between the local and global coordinates. If the value has been precomputed return that
Reimplemented from oomph::FiniteElement.
References oomph::FiniteElement::J_eulerian_at_knot(), and Jacobian_eulerian_stored_pt.
Return a pointer to the vector of Jacobians of the mapping between the local and global (eulerian) coordinates
References Jacobian_eulerian_stored_pt.
Referenced by set_dshape_eulerian_stored_from_element().
|
inline |
Return a pointer to the vector of Jacobians of the mapping between the local and global (eulerian) coordinates (const version)
References Jacobian_eulerian_stored_pt.
|
delete |
Broken assignment operator.
void oomph::StorableShapeElementBase::pre_compute_d2shape_eulerian_at_knots | ( | ) |
Calculate the first and second derivatives of the shape functions w.r.t global coordinates at the integration points and store the results internally.
Calculate the values of the first and second derivatives of the shape functions at the integration points and store in the internal storage of the element
References Can_delete_dshape_eulerian_stored, oomph::FiniteElement::d2shape_eulerian_at_knot(), D2Shape_eulerian_stored_pt, delete_d2shape_eulerian_stored(), delete_dshape_eulerian_stored(), delete_J_eulerian_stored(), DShape_eulerian_stored_pt, i, oomph::FiniteElement::integral_pt(), Jacobian_eulerian_stored_pt, k, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_dimension(), oomph::Integral::nweight(), oomph::oomph_info, and pre_compute_shape_at_knots().
Referenced by set_integration_scheme().
void oomph::StorableShapeElementBase::pre_compute_d2shape_local_at_knots | ( | ) |
Calculate the second derivatives of the shape functions w.r.t. local coordinates at the integration points and store the results internally
Calculate the shape functions and thir first and second derivatives w.r.t. local coordinates at the integration points and store in internal storage of the element
References Can_delete_shape_local_stored, oomph::FiniteElement::d2shape_local_at_knot(), D2Shape_local_stored_pt, delete_d2shape_local_stored(), delete_dshape_local_stored(), delete_shape_local_stored(), Global_Variables::Dim, oomph::FiniteElement::dim(), DShape_local_stored_pt, i, oomph::FiniteElement::integral_pt(), k, n, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::Integral::nweight(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, Shape_stored_pt, and oomph::Global_string_for_annotation::string().
Referenced by set_integration_scheme().
void oomph::StorableShapeElementBase::pre_compute_dshape_eulerian_at_knots | ( | ) |
Calculate the first derivatives of the shape functions w.r.t the global coordinates at the integration points and store the results internally
Calculate the values of the derivatives of the shape functions at the integration points and store in the internal storage of the element
References Can_delete_dshape_eulerian_stored, delete_dshape_eulerian_stored(), delete_J_eulerian_stored(), oomph::FiniteElement::dshape_eulerian_at_knot(), DShape_eulerian_stored_pt, i, oomph::FiniteElement::integral_pt(), Jacobian_eulerian_stored_pt, k, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_dimension(), oomph::Integral::nweight(), and pre_compute_shape_at_knots().
Referenced by set_integration_scheme().
void oomph::StorableShapeElementBase::pre_compute_dshape_local_at_knots | ( | ) |
Calculate the shape functions and first derivatives w.r.t. local coordinatess at the integration points and store the results internally
Calculate the shape functions and thir first derivatives w.r.t. local coordinates at the integration points and store in internal storage of the element
References Can_delete_shape_local_stored, delete_dshape_local_stored(), delete_shape_local_stored(), Global_Variables::Dim, oomph::FiniteElement::dim(), oomph::FiniteElement::dshape_local_at_knot(), DShape_local_stored_pt, i, oomph::FiniteElement::integral_pt(), k, n, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::Integral::nweight(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, Shape_stored_pt, and oomph::Global_string_for_annotation::string().
Referenced by set_integration_scheme().
void oomph::StorableShapeElementBase::pre_compute_J_eulerian_at_knots | ( | ) |
Calculate the Jacobian of the mapping from local to global coordinates at the integration points and store the results internally.
Calculate the value of the Jacobian of the mapping from local to global coordinates at the integration points and store internally
References Can_delete_dshape_eulerian_stored, delete_J_eulerian_stored(), oomph::FiniteElement::integral_pt(), oomph::FiniteElement::J_eulerian_at_knot(), Jacobian_eulerian_stored_pt, and oomph::Integral::nweight().
Referenced by set_integration_scheme().
void oomph::StorableShapeElementBase::pre_compute_shape_at_knots | ( | ) |
Calculate the shape functions at the integration points and store the results internally
Calculate the shape functions at the integration points and store in internal storage of the element
References Can_delete_shape_local_stored, delete_shape_local_stored(), oomph::FiniteElement::integral_pt(), k, n, oomph::FiniteElement::nnodal_position_type(), oomph::FiniteElement::nnode(), oomph::Integral::nweight(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::FiniteElement::shape_at_knot(), Shape_stored_pt, and oomph::Global_string_for_annotation::string().
Referenced by pre_compute_d2shape_eulerian_at_knots(), oomph::StorableShapeSolidElementBase::pre_compute_d2shape_lagrangian_at_knots(), pre_compute_dshape_eulerian_at_knots(), oomph::StorableShapeSolidElementBase::pre_compute_dshape_lagrangian_at_knots(), and set_integration_scheme().
void oomph::StorableShapeElementBase::set_dshape_eulerian_stored_from_element | ( | StorableShapeElementBase *const & | element_pt | ) |
Set the derivatives of stored shape functions with respect to the global coordinates to be the same as those pointed to by the FiniteElement element_pt. Note that this function also calls set_shape_local_stored_from_element(element_pt). so that the local derivatives are also stored. Calling this function only makes sense for uniformly-spaced meshes with elements of equal sizes.
Set the stored derivatives of shape functions w.r.t Eulerian coordinates to be those stored in the StorableShapeElementBase pointed to by element_pt. Using this function will allow a saving in the storage required for integration schemes in the (most common) case when a large number of elements have the same integration scheme
References Can_delete_dshape_eulerian_stored, D2Shape_eulerian_stored_pt, d2shape_eulerian_stored_pt(), delete_all_dshape_eulerian_stored(), DShape_eulerian_stored_pt, dshape_eulerian_stored_pt(), Jacobian_eulerian_stored_pt, jacobian_eulerian_stored_pt(), and set_shape_local_stored_from_element().
|
virtual |
Set the spatial integration scheme – overloaded from the finite element base class since a change in the integration scheme forces a recomputation of the shape fcts at the integration points.
Set the spatial integration scheme and also calculate the values of the shape functions and their derivatives w.r.t. the local coordinates, placing the values into storage so that they may be re-used, without recalculation
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::StorableShapeSolidElementBase.
References D2Shape_eulerian_stored_pt, D2Shape_local_stored_pt, DShape_eulerian_stored_pt, DShape_local_stored_pt, oomph::FiniteElement::integral_pt(), Jacobian_eulerian_stored_pt, pre_compute_d2shape_eulerian_at_knots(), pre_compute_d2shape_local_at_knots(), pre_compute_dshape_eulerian_at_knots(), pre_compute_dshape_local_at_knots(), pre_compute_J_eulerian_at_knots(), pre_compute_shape_at_knots(), oomph::FiniteElement::set_integration_scheme(), and Shape_stored_pt.
Referenced by oomph::StorableShapeSolidElementBase::set_integration_scheme(), and oomph::StorableShapeElement< ELEMENT >::StorableShapeElement().
void oomph::StorableShapeElementBase::set_shape_local_stored_from_element | ( | StorableShapeElementBase *const & | element_pt | ) |
Set the shape functions pointed to internally to be those pointed to by the FiniteElement element_pt (In most cases all elements of the same type have the same number of integration points so the shape function values and their local derivatives are the same --> They only need to be stored by one element). Calling this function deletes the locally created storage and re-directs the pointers to the stored shape function of the specified element.
Set the shape functions referenced in the internal vectors to be those stored in the StorableShapeElementBase pointed to by element_pt. Using this function will allow a saving in the storage required for integration schemes in the (most common) case when a large number of elements have the same integration scheme
References Can_delete_shape_local_stored, D2Shape_local_stored_pt, d2shape_local_stored_pt(), delete_all_shape_local_stored(), DShape_local_stored_pt, dshape_local_stored_pt(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, Shape_stored_pt, shape_stored_pt(), and oomph::Global_string_for_annotation::string().
Referenced by set_dshape_eulerian_stored_from_element(), and oomph::StorableShapeSolidElementBase::set_dshape_lagrangian_stored_from_element().
|
virtual |
Return the geometric shape function at the ipt-th integration point
Return the shape function stored at the ipt-th integration point.
Reimplemented from oomph::FiniteElement.
References oomph::FiniteElement::shape_at_knot(), and Shape_stored_pt.
Return a pointer to the vector of pointers to the stored shape functions
References Shape_stored_pt.
Referenced by oomph::StorableShapeSolidElementBase::d2shape_lagrangian_at_knot(), oomph::StorableShapeSolidElementBase::dshape_lagrangian_at_knot(), and set_shape_local_stored_from_element().
Return a pointer to the vector of pointers to the stored shape functions (const version)
References Shape_stored_pt.
Return a pointer to the stored shape function at the ipt-th integration point
References Shape_stored_pt.
Return a pointer to the stored shape function at the ipt-th integration point (const version)
References Shape_stored_pt.
|
private |
Boolean to determine whether the element can delete the stored derivatives of shape functions w.r.t. global coordinates
Referenced by delete_d2shape_eulerian_stored(), delete_dshape_eulerian_stored(), delete_J_eulerian_stored(), pre_compute_d2shape_eulerian_at_knots(), pre_compute_dshape_eulerian_at_knots(), pre_compute_J_eulerian_at_knots(), and set_dshape_eulerian_stored_from_element().
|
private |
Boolean to determine whether the element can delete the stored local shape functions
Referenced by delete_d2shape_local_stored(), delete_dshape_local_stored(), delete_shape_local_stored(), pre_compute_d2shape_local_at_knots(), pre_compute_dshape_local_at_knots(), pre_compute_shape_at_knots(), and set_shape_local_stored_from_element().
Pointer to storage for the second derivatives of the shape functions w.r.t. global coordinates at integration points
Referenced by d2shape_eulerian_at_knot(), d2shape_eulerian_stored_pt(), delete_d2shape_eulerian_stored(), pre_compute_d2shape_eulerian_at_knots(), set_dshape_eulerian_stored_from_element(), and set_integration_scheme().
Pointer to storage for the pointers to the second derivatives of the nodal shape functions w.r.t. the local coordinates at integration points
Referenced by d2shape_local_at_knot(), d2shape_local_stored_pt(), delete_d2shape_local_stored(), pre_compute_d2shape_local_at_knots(), set_integration_scheme(), and set_shape_local_stored_from_element().
Pointer to storage for the derivatives of the shape functions w.r.t. global coordinates at integration points
Referenced by delete_dshape_eulerian_stored(), dshape_eulerian_at_knot(), dshape_eulerian_stored_pt(), pre_compute_d2shape_eulerian_at_knots(), pre_compute_dshape_eulerian_at_knots(), set_dshape_eulerian_stored_from_element(), and set_integration_scheme().
Pointer to storage for the pointers to the derivatives of the nodal shape functions w.r.t. the local coordinates at integration points
Referenced by delete_dshape_local_stored(), dshape_local_at_knot(), dshape_local_stored_pt(), pre_compute_d2shape_local_at_knots(), pre_compute_dshape_local_at_knots(), set_integration_scheme(), and set_shape_local_stored_from_element().
Pointer to storage for the Jacobian of the element w.r.t global coordinates
Referenced by d2shape_eulerian_at_knot(), delete_J_eulerian_stored(), dshape_eulerian_at_knot(), J_eulerian_at_knot(), jacobian_eulerian_stored_pt(), pre_compute_d2shape_eulerian_at_knots(), pre_compute_dshape_eulerian_at_knots(), pre_compute_J_eulerian_at_knots(), set_dshape_eulerian_stored_from_element(), and set_integration_scheme().
Pointer to storage for the pointers to the nodal shape functions at the integration points (knots)
Referenced by delete_shape_local_stored(), pre_compute_d2shape_local_at_knots(), pre_compute_dshape_local_at_knots(), pre_compute_shape_at_knots(), set_integration_scheme(), set_shape_local_stored_from_element(), shape_at_knot(), and shape_stored_pt().