![]() |
|
#include <linearised_navier_stokes_elements.h>
Public Member Functions | |
LinearisedQCrouzeixRaviartElement () | |
virtual unsigned | required_nvalue (const unsigned &n) const |
Return number of values (pinned or dofs) required at local node n. More... | |
double | p_linearised_nst (const unsigned &i_internal, const unsigned &i) const |
void | pin_pressure_normalisation_dofs () |
Pin the normalisation dofs. More... | |
void | pin_real_or_imag (const unsigned &real_index) |
void | unpin_real_or_imag (const unsigned &real_index) |
void | copy_efunction_to_normalisation () |
unsigned | npres_linearised_nst () const |
void | fix_pressure (const unsigned &p_dof, const double &pvalue) |
int | p_local_eqn (const unsigned &n, const unsigned &i) |
void | output (std::ostream &outfile) |
Redirect output to NavierStokesEquations output. More... | |
void | output (std::ostream &outfile, const unsigned &n_plot) |
Redirect output to NavierStokesEquations output. More... | |
void | output (FILE *file_pt) |
Redirect output to NavierStokesEquations output. More... | |
void | output (FILE *file_pt, const unsigned &n_plot) |
Redirect output to NavierStokesEquations output. More... | |
unsigned | ndof_types () const |
![]() | |
LinearisedNavierStokesEquations () | |
const double & | re () const |
Reynolds number. More... | |
const double & | re_st () const |
Product of Reynolds and Strouhal number (=Womersley number) More... | |
const double & | lambda () const |
const double & | omega () const |
double *& | re_pt () |
Pointer to Reynolds number. More... | |
double *& | re_st_pt () |
Pointer to product of Reynolds and Strouhal number (=Womersley number) More... | |
double *& | lambda_pt () |
Pointer to lambda. More... | |
double *& | omega_pt () |
Pointer to frequency. More... | |
LinearisedNavierStokesEigenfunctionNormalisationElement * | normalisation_element_pt () |
Pointer to normalisation element. More... | |
void | set_eigenfunction_normalisation_element (LinearisedNavierStokesEigenfunctionNormalisationElement *const &normalisation_el_pt) |
the boolean flag check_nodal_data is set to false. More... | |
const double & | viscosity_ratio () const |
double *& | viscosity_ratio_pt () |
Pointer to the viscosity ratio. More... | |
const double & | density_ratio () const |
double *& | density_ratio_pt () |
Pointer to the density ratio. More... | |
virtual unsigned | u_index_linearised_nst (const unsigned &i) const |
double | du_dt_linearised_nst (const unsigned &n, const unsigned &i) const |
void | disable_ALE () |
void | enable_ALE () |
virtual int | p_index_linearised_nst (const unsigned &i) const |
Which nodal value represents the pressure? More... | |
void | strain_rate (const Vector< double > &s, DenseMatrix< double > &strain_rate, const unsigned &real) const |
void | output_veloc (std::ostream &outfile, const unsigned &nplot, const unsigned &t) |
void | fill_in_contribution_to_residuals (Vector< double > &residuals) |
Compute the element's residual Vector. More... | |
double | interpolated_u_linearised_nst (const Vector< double > &s, const unsigned &i) const |
double | interpolated_p_linearised_nst (const Vector< double > &s, const unsigned &i) 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) |
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) |
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 (const unsigned &t, std::ostream &outfile, const unsigned &n_plot) const |
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 void | get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const |
![]() | |
GeomObject () | |
Default constructor. More... | |
GeomObject (const unsigned &ndim) | |
GeomObject (const unsigned &nlagrangian, const unsigned &ndim) | |
GeomObject (const unsigned &nlagrangian, const unsigned &ndim, TimeStepper *time_stepper_pt) | |
GeomObject (const GeomObject &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const GeomObject &)=delete |
Broken assignment operator. More... | |
virtual | ~GeomObject () |
(Empty) destructor More... | |
unsigned | nlagrangian () const |
Access function to # of Lagrangian coordinates. More... | |
unsigned | ndim () const |
Access function to # of Eulerian coordinates. More... | |
void | set_nlagrangian_and_ndim (const unsigned &n_lagrangian, const unsigned &n_dim) |
Set # of Lagrangian and Eulerian coordinates. More... | |
TimeStepper *& | time_stepper_pt () |
TimeStepper * | time_stepper_pt () const |
virtual void | position (const double &t, const Vector< double > &zeta, Vector< double > &r) const |
virtual void | dposition (const Vector< double > &zeta, DenseMatrix< double > &drdzeta) const |
virtual void | d2position (const Vector< double > &zeta, RankThreeTensor< double > &ddrdzeta) const |
virtual void | d2position (const Vector< double > &zeta, Vector< double > &r, DenseMatrix< double > &drdzeta, RankThreeTensor< double > &ddrdzeta) const |
Protected Member Functions | |
double | dshape_and_dtest_eulerian_linearised_nst (const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const |
double | dshape_and_dtest_eulerian_at_knot_linearised_nst (const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const |
void | pshape_linearised_nst (const Vector< double > &s, Shape &psi) const |
Compute the pressure shape functions at local coordinate s. More... | |
void | pshape_linearised_nst (const Vector< double > &s, Shape &psi, Shape &test) const |
Compute the pressure shape and test functions at local coordinate s. More... | |
![]() | |
virtual void | get_base_flow_u (const double &time, const unsigned &ipt, const Vector< double > &x, Vector< double > &result) const |
virtual void | get_base_flow_dudx (const double &time, const unsigned &ipt, const Vector< double > &x, DenseMatrix< double > &result) const |
int | eigenvalue_local_eqn (const unsigned &i) |
virtual void | fill_in_generic_residual_contribution_linearised_nst (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix, unsigned flag) |
![]() | |
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) |
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< unsigned > | P_linearised_nst_internal_index |
![]() | |
double * | Viscosity_Ratio_pt |
double * | Density_Ratio_pt |
double * | Re_pt |
Pointer to global Reynolds number. More... | |
double * | ReSt_pt |
Pointer to global Reynolds number x Strouhal number (=Womersley) More... | |
double * | Lambda_pt |
Pointer to eigenvalue. More... | |
double * | Omega_pt |
Pointer to frequency. More... | |
LinearisedNavierStokesEigenfunctionNormalisationElement * | Normalisation_element_pt |
Pointer to the normalisation element. More... | |
unsigned | Data_number_of_eigenvalue |
Index of datum where eigenvalue is stored. More... | |
unsigned | Index_of_eigenvalue |
void(* | Base_flow_u_fct_pt )(const double &time, const Vector< double > &x, Vector< double > &result) |
Pointer to base flow solution (velocity components) function. More... | |
void(* | Base_flow_dudx_fct_pt )(const double &time, const Vector< double > &x, DenseMatrix< double > &result) |
bool | ALE_is_disabled |
![]() | |
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 Private Attributes | |
static const unsigned | Initial_Nvalue [] |
Static array of ints to hold required number of variables at nodes. More... | |
Additional Inherited Members | |
![]() | |
typedef void(* | SteadyExactSolutionFctPt) (const Vector< double > &, Vector< double > &) |
typedef void(* | UnsteadyExactSolutionFctPt) (const double &, const Vector< double > &, Vector< double > &) |
![]() | |
void(*&)(const double &time, const Vector< double > &x, Vector< double > &f) | base_flow_u_fct_pt () |
Access function for the base flow solution pointer. More... | |
void(*&)(const double &time, const Vector< double > &x, DenseMatrix< double > &f) | base_flow_dudx_fct_pt () |
![]() | |
static Vector< double > | Gamma |
Vector to decide whether the stress-divergence form is used or not. More... | |
![]() | |
static double | Tolerance_for_singular_jacobian = 1.0e-16 |
Tolerance below which the jacobian is considered singular. More... | |
static bool | Accept_negative_jacobian = false |
static bool | Suppress_output_while_checking_for_inverted_elements |
![]() | |
static bool | Suppress_warning_about_repeated_internal_data |
static bool | Suppress_warning_about_repeated_external_data = true |
static double | Default_fd_jacobian_step = 1.0e-8 |
![]() | |
static const unsigned | Default_Initial_Nvalue = 0 |
Default value for the number of values at a node. More... | |
static const double | Node_location_tolerance = 1.0e-14 |
static const unsigned | N2deriv [] = {0, 1, 3, 6} |
![]() | |
static DenseMatrix< double > | Dummy_matrix |
static std::deque< double * > | Dof_pt_deque |
/////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// Crouzeix-Raviart elements are Navier-Stokes elements with quadratic interpolation for velocities and positions, but a discontinuous linear pressure interpolation
|
inline |
Constructor: there are three internal values for each of the two pressure components
References oomph::GeneralisedElement::add_internal_data(), i, and P_linearised_nst_internal_index.
|
inline |
References DIM, i, oomph::GeneralisedElement::internal_data_pt(), j, n, oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), oomph::Data::set_value(), oomph::Data::value(), and oomph::Node::value().
|
inlineprotectedvirtual |
Velocity shape and test functions and their derivatives w.r.t. global coordinates at the ipt-th integation point (taken from geometry). Return Jacobian of mapping between local and global coordinates.
Derivatives of the shape functions and test functions w.r.t. global (Eulerian) coordinates at the ipt-th integration point. Return Jacobian of mapping between local and global coordinates.
Implements oomph::LinearisedNavierStokesEquations.
References oomph::FiniteElement::dshape_eulerian_at_knot(), and J.
|
inlineprotectedvirtual |
Velocity shape and test functions and their derivatives w.r.t. global coordinates at local coordinate s (taken from geometry). Return Jacobian of mapping between local and global coordinates.
Derivatives of the shape functions and test functions w.r.t. global (Eulerian) coordinates at local coordinate s. Return Jacobian of mapping between local and global coordinates.
Implements oomph::LinearisedNavierStokesEquations.
References oomph::FiniteElement::dshape_eulerian(), and J.
|
inline |
Fix both components of the internal pressure degrees of freedom p_dof to pvalue
References i, oomph::GeneralisedElement::internal_data_pt(), P_linearised_nst_internal_index, oomph::Data::pin(), and oomph::Data::set_value().
|
inlinevirtual |
The number of "dof-blocks" that degrees of freedom in this element are sub-divided into: Velocity and pressure.
Reimplemented from oomph::GeneralisedElement.
References DIM.
|
inlinevirtual |
Return number of pressure values corresponding to a single pressure component
Implements oomph::LinearisedNavierStokesEquations.
Referenced by oomph::RefineableLinearisedQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), and oomph::RefineableLinearisedQCrouzeixRaviartElement::unpin_elemental_pressure_dofs().
|
inlinevirtual |
Redirect output to NavierStokesEquations output.
Reimplemented from oomph::LinearisedNavierStokesEquations.
References oomph::LinearisedNavierStokesEquations::output().
|
inlinevirtual |
Redirect output to NavierStokesEquations output.
Reimplemented from oomph::LinearisedNavierStokesEquations.
References oomph::LinearisedNavierStokesEquations::output().
|
inlinevirtual |
Redirect output to NavierStokesEquations output.
Reimplemented from oomph::LinearisedNavierStokesEquations.
References oomph::LinearisedNavierStokesEquations::output().
|
inlinevirtual |
Redirect output to NavierStokesEquations output.
Reimplemented from oomph::LinearisedNavierStokesEquations.
References oomph::LinearisedNavierStokesEquations::output().
|
inlinevirtual |
Return the pressure value i at internal dof i_internal (Discontinous pressure interpolation – no need to cater for hanging nodes)
Implements oomph::LinearisedNavierStokesEquations.
References i, oomph::GeneralisedElement::internal_data_pt(), P_linearised_nst_internal_index, and oomph::Data::value().
|
inlinevirtual |
Overload the access function for the i-th component of the pressure's local equation numbers
Implements oomph::LinearisedNavierStokesEquations.
References i, oomph::GeneralisedElement::internal_local_eqn(), n, and P_linearised_nst_internal_index.
|
inlinevirtual |
Pin the normalisation dofs.
Implements oomph::LinearisedNavierStokesEquations.
References i, oomph::GeneralisedElement::internal_data_pt(), and oomph::Data::pin_all().
|
inlinevirtual |
Pin the real or imaginary part of the problem Input integer 0 for real 1 for imaginary
Implements oomph::LinearisedNavierStokesEquations.
References DIM, i, oomph::GeneralisedElement::internal_data_pt(), oomph::Data::is_constrained(), n, oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), oomph::Data::pin(), and oomph::Data::pin_all().
|
inlineprotectedvirtual |
Compute the pressure shape functions at local coordinate s.
Pressure shape functions.
Implements oomph::LinearisedNavierStokesEquations.
References s.
Referenced by oomph::RefineableLinearisedQTaylorHoodElement::interpolating_basis(), and pshape_linearised_nst().
|
inlineprotectedvirtual |
Compute the pressure shape and test functions at local coordinate s.
Define the pressure shape and test functions.
Implements oomph::LinearisedNavierStokesEquations.
References i, pshape_linearised_nst(), and s.
|
virtual |
Return number of values (pinned or dofs) required at local node n.
Number of values (pinned or dofs) required at node n.
Reimplemented from oomph::FiniteElement.
References Initial_Nvalue, and n.
|
inlinevirtual |
|
staticprivate |
Static array of ints to hold required number of variables at nodes.
Set the data for the number of variables at each node.
//////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
Referenced by required_nvalue().
|
protected |
Internal indices that indicate at which internal data the pressure values are stored. We note that there are two pressure values, corresponding to the functions P^C(r,z,t) and P^S(r,z,t) which multiply the cosine and sine terms respectively.
Referenced by fix_pressure(), oomph::RefineableLinearisedQCrouzeixRaviartElement::further_build(), LinearisedQCrouzeixRaviartElement(), p_linearised_nst(), p_local_eqn(), oomph::RefineableLinearisedQCrouzeixRaviartElement::rebuild_from_sons(), and oomph::RefineableLinearisedQCrouzeixRaviartElement::unpin_elemental_pressure_dofs().