![]() |
|
A Base class for DGElements. More...
#include <dg_elements.h>
Inheritance diagram for oomph::DGElement:Public Member Functions | |
| DGElement () | |
| Constructor, initialise the pointers to zero. More... | |
| virtual | ~DGElement () |
| bool | mass_matrix_has_been_computed () |
| void | enable_mass_matrix_reuse () |
| Function that allows the reuse of the mass matrix. More... | |
| void | disable_mass_matrix_reuse () |
| Function that disables the reuse of the mass matrix. More... | |
| virtual void | set_mass_matrix_from_element (DGElement *const &element_pt) |
| Set the mass matrix to point to one in another element. More... | |
| void | pre_compute_mass_matrix () |
| Function that computes and stores the (inverse) mass matrix. More... | |
| virtual void | build_all_faces ()=0 |
| virtual void | get_inverse_mass_matrix_times_residuals (Vector< double > &minv_res) |
| void | construct_boundary_nodes_and_faces (DGMesh *const &mesh_pt, std::vector< bool > &boundary_flag, TimeStepper *const &time_stepper_pt) |
| void | construct_nodes_and_faces (DGMesh *const &mesh_pt, TimeStepper *const &time_stepper_pt) |
| Construct the nodes and faces of the element. More... | |
| void | set_mesh_pt (DGMesh *&mesh_pt) |
| unsigned | nface () const |
| Return the number of faces. More... | |
| DGFaceElement * | face_element_pt (const unsigned &i) |
| Access function for the faces. More... | |
| void | output_faces (std::ostream &outfile) |
| Output the faces of the element. More... | |
| void | get_neighbouring_face_and_local_coordinate (const int &face_index, const Vector< double > &s, FaceElement *&face_element_pt, Vector< double > &s_face) |
| Return the neighbour info. More... | |
| void | setup_face_neighbour_info (const bool &add_face_data_as_external) |
| void | add_flux_contributions_to_residuals (Vector< double > &residuals, DenseMatrix< double > &jacobian, unsigned flag) |
| void | slope_limit (SlopeLimiter *const &slope_limiter_pt) |
| Limit the slope within the element. More... | |
| virtual void | calculate_element_averages (double *&average_values) |
| Calculate the averages in the element. More... | |
| void | calculate_averages () |
| Calculate the elemental averages. More... | |
| double & | average_value (const unsigned &i) |
| Return the average values. More... | |
| const double & | average_value (const unsigned &i) const |
| Return the average values. More... | |
Public Member Functions inherited from oomph::FiniteElement | |
| void | set_dimension (const unsigned &dim) |
| void | set_nodal_dimension (const unsigned &nodal_dim) |
| void | set_nnodal_position_type (const unsigned &nposition_type) |
| Set the number of types required to interpolate the coordinate. More... | |
| void | set_n_node (const unsigned &n) |
| int | nodal_local_eqn (const unsigned &n, const unsigned &i) const |
| double | dJ_eulerian_at_knot (const unsigned &ipt, Shape &psi, DenseMatrix< double > &djacobian_dX) const |
| FiniteElement () | |
| Constructor. More... | |
| virtual | ~FiniteElement () |
| FiniteElement (const FiniteElement &)=delete | |
| Broken copy constructor. More... | |
| virtual bool | local_coord_is_valid (const Vector< double > &s) |
| Broken assignment operator. More... | |
| virtual void | move_local_coord_back_into_element (Vector< double > &s) const |
| void | get_centre_of_gravity_and_max_radius_in_terms_of_zeta (Vector< double > &cog, double &max_radius) const |
| virtual void | local_coordinate_of_node (const unsigned &j, Vector< double > &s) const |
| virtual void | local_fraction_of_node (const unsigned &j, Vector< double > &s_fraction) |
| virtual double | local_one_d_fraction_of_node (const unsigned &n1d, const unsigned &i) |
| virtual void | set_macro_elem_pt (MacroElement *macro_elem_pt) |
| MacroElement * | macro_elem_pt () |
| Access function to pointer to macro element. More... | |
| void | get_x (const Vector< double > &s, Vector< double > &x) const |
| void | get_x (const unsigned &t, const Vector< double > &s, Vector< double > &x) |
| virtual void | get_x_from_macro_element (const Vector< double > &s, Vector< double > &x) const |
| virtual void | get_x_from_macro_element (const unsigned &t, const Vector< double > &s, Vector< double > &x) |
| virtual void | set_integration_scheme (Integral *const &integral_pt) |
| Set the spatial integration scheme. More... | |
| Integral *const & | integral_pt () const |
| Return the pointer to the integration scheme (const version) More... | |
| virtual void | shape (const Vector< double > &s, Shape &psi) const =0 |
| virtual void | shape_at_knot (const unsigned &ipt, Shape &psi) const |
| virtual void | dshape_local (const Vector< double > &s, Shape &psi, DShape &dpsids) const |
| virtual void | dshape_local_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsids) const |
| virtual void | d2shape_local (const Vector< double > &s, Shape &psi, DShape &dpsids, DShape &d2psids) const |
| virtual void | d2shape_local_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsids, DShape &d2psids) const |
| virtual double | J_eulerian (const Vector< double > &s) const |
| virtual double | J_eulerian_at_knot (const unsigned &ipt) const |
| void | check_J_eulerian_at_knots (bool &passed) const |
| void | check_jacobian (const double &jacobian) const |
| double | dshape_eulerian (const Vector< double > &s, Shape &psi, DShape &dpsidx) const |
| virtual double | dshape_eulerian_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsidx) const |
| virtual double | dshape_eulerian_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsi, DenseMatrix< double > &djacobian_dX, RankFourTensor< double > &d_dpsidx_dX) const |
| double | d2shape_eulerian (const Vector< double > &s, Shape &psi, DShape &dpsidx, DShape &d2psidx) const |
| virtual double | d2shape_eulerian_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsidx, DShape &d2psidx) const |
| virtual void | 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 |
Public Member Functions inherited from oomph::GeneralisedElement | |
| 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 |
Public Member Functions inherited from oomph::GeomObject | |
| 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 | |
| virtual unsigned | required_nflux () |
| Set the number of flux components. More... | |
Protected Member Functions inherited from oomph::FiniteElement | |
| 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 |
Protected Member Functions inherited from oomph::GeneralisedElement | |
| 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 | |
| Vector< FaceElement * > | Face_element_pt |
| Vector of pointers to faces of the element. More... | |
| DGMesh * | DG_mesh_pt |
| Pointer to Mesh, which will be responsible for the neighbour finding. More... | |
| DenseDoubleMatrix * | M_pt |
| double * | Average_value |
| bool | Mass_matrix_reuse_is_enabled |
| Boolean flag to indicate whether to reuse the mass matrix. More... | |
| bool | Mass_matrix_has_been_computed |
| bool | Can_delete_mass_matrix |
Protected Attributes inherited from oomph::FiniteElement | |
| MacroElement * | Macro_elem_pt |
| Pointer to the element's macro element (NULL by default) More... | |
Protected Attributes inherited from oomph::GeomObject | |
| unsigned | NLagrangian |
| Number of Lagrangian (intrinsic) coordinates. More... | |
| unsigned | Ndim |
| Number of Eulerian coordinates. More... | |
| TimeStepper * | Geom_object_time_stepper_pt |
Friends | |
| class | DGFaceElement |
Additional Inherited Members | |
Public Types inherited from oomph::FiniteElement | |
| typedef void(* | SteadyExactSolutionFctPt) (const Vector< double > &, Vector< double > &) |
| typedef void(* | UnsteadyExactSolutionFctPt) (const double &, const Vector< double > &, Vector< double > &) |
Static Public Attributes inherited from oomph::FiniteElement | |
| 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 Public Attributes inherited from oomph::GeneralisedElement | |
| 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 Protected Attributes inherited from oomph::FiniteElement | |
| 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 Protected Attributes inherited from oomph::GeneralisedElement | |
| static DenseMatrix< double > | Dummy_matrix |
| static std::deque< double * > | Dof_pt_deque |
A Base class for DGElements.
|
inline |
Constructor, initialise the pointers to zero.
|
inlinevirtual |
Virtual destructor, destroy the mass matrix, if we created it Clean-up storage associated with average values
References Average_value, Can_delete_mass_matrix, and M_pt.
|
inline |
Loop over all faces and add their integrated numerical fluxes to the residuals
References oomph::DGFaceElement::add_flux_contributions(), f(), face_element_pt(), and nface().
Return the average values.
References Average_value, i, OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Return the average values.
References Average_value, i, OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
pure virtual |
Implemented in oomph::DGScalarAdvectionElement< 2, NNODE_1D >, oomph::DGScalarAdvectionElement< 1, NNODE_1D >, oomph::DGSpectralScalarAdvectionElement< 2, NNODE_1D >, oomph::DGSpectralScalarAdvectionElement< 1, NNODE_1D >, oomph::DGSpectralEulerElement< 2, NNODE_1D >, and oomph::DGSpectralEulerElement< 1, NNODE_1D >.
Referenced by construct_boundary_nodes_and_faces(), and construct_nodes_and_faces().
|
inline |
Calculate the elemental averages.
References calculate_element_averages().
|
inlinevirtual |
Calculate the averages in the element.
Reimplemented in oomph::DGScalarAdvectionElement< 2, NNODE_1D >, oomph::DGScalarAdvectionElement< 1, NNODE_1D >, oomph::DGSpectralScalarAdvectionElement< 2, NNODE_1D >, oomph::DGSpectralScalarAdvectionElement< 1, NNODE_1D >, oomph::DGSpectralEulerElement< 2, NNODE_1D >, and oomph::DGSpectralEulerElement< 1, NNODE_1D >.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by calculate_averages().
|
inline |
Construct all nodes and faces of the element. The vector of booleans boundary should be the same size as the number of nodes and if any entries are true that node will be constructed as a boundary node.
References build_all_faces(), oomph::FiniteElement::construct_boundary_node(), oomph::FiniteElement::construct_node(), n, oomph::FiniteElement::nnode(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and oomph::GeomObject::time_stepper_pt().
|
inline |
Construct the nodes and faces of the element.
References build_all_faces(), oomph::FiniteElement::construct_node(), n, and oomph::FiniteElement::nnode().
|
inline |
Function that disables the reuse of the mass matrix.
References Can_delete_mass_matrix, M_pt, Mass_matrix_has_been_computed, and Mass_matrix_reuse_is_enabled.
Referenced by oomph::Problem::disable_mass_matrix_reuse().
|
inline |
Function that allows the reuse of the mass matrix.
References Mass_matrix_has_been_computed, and Mass_matrix_reuse_is_enabled.
Referenced by oomph::Problem::enable_mass_matrix_reuse().
|
inline |
Access function for the faces.
References Face_element_pt, and i.
Referenced by add_flux_contributions_to_residuals(), get_neighbouring_face_and_local_coordinate(), output_faces(), setup_face_neighbour_info(), and slope_limit().
|
virtual |
Function that returns the current value of the residuals multiplied by the inverse mass matrix (virtual so that it can be overloaded specific elements in which time saving tricks can be applied)
Function that returns the current value of the residuals multiplied by the inverse mass matrix (virtual so that it can be overloaded specific elements in which time and memory saving tricks can be applied)
Reimplemented in oomph::DGSpectralScalarAdvectionElement< 1, NNODE_1D >.
References oomph::GeneralisedElement::fill_in_contribution_to_mass_matrix(), oomph::GeneralisedElement::fill_in_contribution_to_residuals(), oomph::DenseMatrix< T >::initialise(), oomph::DenseDoubleMatrix::lubksub(), oomph::DenseDoubleMatrix::ludecompose(), M_pt, Mass_matrix_has_been_computed, Mass_matrix_reuse_is_enabled, n, oomph::GeneralisedElement::ndof(), oomph::GeneralisedElement::nexternal_data(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and oomph::DenseMatrix< T >::resize().
Referenced by oomph::Problem::get_inverse_mass_matrix_times_residuals().
| void oomph::DGElement::get_neighbouring_face_and_local_coordinate | ( | const int & | face_index, |
| const Vector< double > & | s, | ||
| FaceElement *& | face_element_pt, | ||
| Vector< double > & | s_face | ||
| ) |
Return the neighbour info.
References DG_mesh_pt, face_element_pt(), oomph::DGMesh::neighbour_finder(), and s.
|
inline |
Access function for the boolean to indicate whether the mass matrix has been computed
References Mass_matrix_has_been_computed.
Referenced by set_mass_matrix_from_element().
|
inline |
Return the number of faces.
References Face_element_pt.
Referenced by add_flux_contributions_to_residuals(), output_faces(), and setup_face_neighbour_info().
|
inline |
Output the faces of the element.
References f(), face_element_pt(), nface(), and oomph::FiniteElement::output().
| void oomph::DGElement::pre_compute_mass_matrix | ( | ) |
Function that computes and stores the (inverse) mass matrix.
References oomph::GeneralisedElement::fill_in_contribution_to_mass_matrix(), oomph::DenseMatrix< T >::initialise(), oomph::DenseDoubleMatrix::ludecompose(), M_pt, Mass_matrix_has_been_computed, oomph::GeneralisedElement::ndof(), and oomph::DenseMatrix< T >::resize().
Referenced by set_mass_matrix_from_element().
|
inlineprotectedvirtual |
Set the number of flux components.
Reimplemented in oomph::DGScalarAdvectionElement< 2, NNODE_1D >, oomph::DGScalarAdvectionElement< 1, NNODE_1D >, oomph::DGSpectralScalarAdvectionElement< 2, NNODE_1D >, oomph::DGSpectralScalarAdvectionElement< 1, NNODE_1D >, oomph::DGSpectralEulerElement< 2, NNODE_1D >, and oomph::DGSpectralEulerElement< 1, NNODE_1D >.
Referenced by slope_limit().
|
inlinevirtual |
Set the mass matrix to point to one in another element.
References Can_delete_mass_matrix, M_pt, Mass_matrix_has_been_computed, mass_matrix_has_been_computed(), Mass_matrix_reuse_is_enabled, and pre_compute_mass_matrix().
|
inline |
References DG_mesh_pt.
|
inline |
The boolean flag determines whether the data from the neighbouring elements is added as external data to the element (required for correct computation of the jacobian)
References f(), face_element_pt(), nface(), oomph::DGFaceElement::report_info(), and oomph::DGFaceElement::setup_neighbour_info().
| void oomph::DGElement::slope_limit | ( | SlopeLimiter *const & | slope_limiter_pt | ) |
Limit the slope within the element.
Limit the slope within an element.
References oomph::FaceElement::bulk_element_pt(), oomph::FiniteElement::dim(), face_element_pt(), i, oomph::SlopeLimiter::limit(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and required_nflux().
|
friend |
The DGFaceElement requires access to the nodal local equation information, so it's a friend
|
protected |
Pointer to storage for the average values of the of the variables over the element
Referenced by average_value(), and ~DGElement().
|
protected |
Boolean flag to indicate whether the mass matrix can be deleted (i.e. was it created by this element)
Referenced by disable_mass_matrix_reuse(), set_mass_matrix_from_element(), and ~DGElement().
|
protected |
Pointer to Mesh, which will be responsible for the neighbour finding.
Referenced by get_neighbouring_face_and_local_coordinate(), and set_mesh_pt().
|
protected |
Vector of pointers to faces of the element.
Referenced by face_element_pt(), and nface().
|
protected |
Pointer to storage for a mass matrix that can be recycled if desired
Referenced by disable_mass_matrix_reuse(), get_inverse_mass_matrix_times_residuals(), pre_compute_mass_matrix(), set_mass_matrix_from_element(), and ~DGElement().
|
protected |
Boolean flag to indicate whether the mass matrix has been computed
Referenced by disable_mass_matrix_reuse(), enable_mass_matrix_reuse(), get_inverse_mass_matrix_times_residuals(), mass_matrix_has_been_computed(), pre_compute_mass_matrix(), and set_mass_matrix_from_element().
|
protected |
Boolean flag to indicate whether to reuse the mass matrix.
Referenced by disable_mass_matrix_reuse(), enable_mass_matrix_reuse(), get_inverse_mass_matrix_times_residuals(), and set_mass_matrix_from_element().