![]() |
|
#include <polar_navier_stokes_elements.h>
Public Types | |
typedef void(* | NavierStokesBodyForceFctPt) (const double &time, const Vector< double > &x, Vector< double > &body_force) |
typedef double(* | NavierStokesSourceFctPt) (const double &time, const Vector< double > &x) |
![]() | |
typedef void(* | SteadyExactSolutionFctPt) (const Vector< double > &, Vector< double > &) |
typedef void(* | UnsteadyExactSolutionFctPt) (const double &, const Vector< double > &, Vector< double > &) |
Public Member Functions | |
PolarNavierStokesEquations () | |
Constructor: NULL the body force and source function. More... | |
const double & | re () const |
Reynolds number. More... | |
const double & | alpha () const |
Alpha. More... | |
const double & | re_st () const |
Product of Reynolds and Strouhal number (=Womersley number) More... | |
double *& | re_pt () |
Pointer to Reynolds number. More... | |
double *& | alpha_pt () |
Pointer to Alpha. More... | |
double *& | re_st_pt () |
Pointer to product of Reynolds and Strouhal number (=Womersley number) More... | |
const double & | viscosity_ratio () const |
double *& | viscosity_ratio_pt () |
Pointer to Viscosity Ratio. More... | |
const double & | density_ratio () const |
double *& | density_ratio_pt () |
Pointer to Density ratio. More... | |
const double & | re_invfr () const |
Global inverse Froude number. More... | |
double *& | re_invfr_pt () |
Pointer to global inverse Froude number. More... | |
const Vector< double > & | g () const |
Vector of gravitational components. More... | |
Vector< double > *& | g_pt () |
Pointer to Vector of gravitational components. More... | |
NavierStokesBodyForceFctPt & | body_force_fct_pt () |
Access function for the body-force pointer. More... | |
NavierStokesBodyForceFctPt | body_force_fct_pt () const |
Access function for the body-force pointer. Const version. More... | |
NavierStokesSourceFctPt & | source_fct_pt () |
Access function for the source-function pointer. More... | |
NavierStokesSourceFctPt | source_fct_pt () const |
Access function for the source-function pointer. Const version. More... | |
virtual unsigned | npres_pnst () const =0 |
Function to return number of pressure degrees of freedom. More... | |
virtual double | u_pnst (const unsigned &n, const unsigned &i) const =0 |
virtual double | u_pnst (const unsigned &t, const unsigned &n, const unsigned &i) const =0 |
virtual unsigned | u_index_pnst (const unsigned &i) const |
double | du_dt_pnst (const unsigned &n, const unsigned &i) const |
virtual double | p_pnst (const unsigned &n_p) const =0 |
virtual void | fix_pressure (const unsigned &p_dof, const double &p_value)=0 |
Pin p_dof-th pressure dof and set it to value specified by p_value. More... | |
virtual int | p_nodal_index_pnst () |
virtual Node * | pressure_node_pt (const unsigned &n_p) |
double | pressure_integral () const |
Integral of pressure over element. More... | |
double | dissipation () const |
Return integral of dissipation over element. More... | |
double | dissipation (const Vector< double > &s) const |
Return dissipation at local coordinate s. More... | |
double | kin_energy () const |
Get integral of kinetic energy over element. More... | |
void | strain_rate (const Vector< double > &s, DenseMatrix< double > &strain_rate) const |
Strain-rate tensor: Now returns polar strain. More... | |
void | strain_rate_by_r (const Vector< double > &s, DenseMatrix< double > &strain_rate) const |
Function to return polar strain multiplied by r. More... | |
void | get_traction (const Vector< double > &s, const Vector< double > &N, Vector< double > &traction) |
void | get_load (const Vector< double > &s, const Vector< double > &xi, const Vector< double > &x, const Vector< double > &N, Vector< double > &load) |
void | output (std::ostream &outfile) |
void | output (std::ostream &outfile, const unsigned &nplot) |
void | output (FILE *file_pt) |
void | output (FILE *file_pt, const unsigned &nplot) |
void | full_output (std::ostream &outfile) |
void | full_output (std::ostream &outfile, const unsigned &nplot) |
void | output_veloc (std::ostream &outfile, const unsigned &nplot, const unsigned &t) |
void | output_fct (std::ostream &outfile, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) |
void | output_fct (std::ostream &outfile, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) |
void | compute_error (std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm) |
void | compute_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm) |
void | fill_in_contribution_to_residuals (Vector< double > &residuals) |
Compute the element's residual Vector. More... | |
void | fill_in_contribution_to_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
void | fill_in_contribution_to_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix) |
virtual void | fill_in_generic_residual_contribution (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix, unsigned flag) |
void | interpolated_u_pnst (const Vector< double > &s, Vector< double > &veloc) const |
Compute vector of FE interpolated velocity u at local coordinate s. More... | |
double | interpolated_u_pnst (const Vector< double > &s, const unsigned &i) const |
Return FE interpolated velocity u[i] at local coordinate s. More... | |
double | interpolated_p_pnst (const Vector< double > &s) const |
Return FE interpolated pressure at local coordinate s. More... | |
double | interpolated_dudx_pnst (const Vector< double > &s, const unsigned &i, const unsigned &j) 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) |
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 (const unsigned &t, std::ostream &outfile, const unsigned &n_plot) const |
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, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_abs_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error) |
void | integrate_fct (FiniteElement::SteadyExactSolutionFctPt integrand_fct_pt, Vector< double > &integral) |
Integrate Vector-valued function over element. More... | |
void | integrate_fct (FiniteElement::UnsteadyExactSolutionFctPt integrand_fct_pt, const double &time, Vector< double > &integral) |
Integrate Vector-valued time-dep function over element. More... | |
virtual void | build_face_element (const int &face_index, FaceElement *face_element_pt) |
virtual unsigned | self_test () |
virtual unsigned | get_bulk_node_number (const int &face_index, const unsigned &i) const |
virtual int | face_outer_unit_normal_sign (const int &face_index) const |
Get the sign of the outer unit normal on the face given by face_index. More... | |
virtual unsigned | nnode_on_face () const |
void | face_node_number_error_check (const unsigned &i) const |
Range check for face node numbers. More... | |
virtual CoordinateMappingFctPt | face_to_bulk_coordinate_fct_pt (const int &face_index) const |
virtual BulkCoordinateDerivativesFctPt | bulk_coordinate_derivatives_fct_pt (const int &face_index) const |
![]() | |
GeneralisedElement () | |
Constructor: Initialise all pointers and all values to zero. More... | |
virtual | ~GeneralisedElement () |
Virtual destructor to clean up any memory allocated by the object. More... | |
GeneralisedElement (const GeneralisedElement &)=delete | |
Broken copy constructor. More... | |
void | operator= (const GeneralisedElement &)=delete |
Broken assignment operator. More... | |
Data *& | internal_data_pt (const unsigned &i) |
Return a pointer to i-th internal data object. More... | |
Data *const & | internal_data_pt (const unsigned &i) const |
Return a pointer to i-th internal data object (const version) More... | |
Data *& | external_data_pt (const unsigned &i) |
Return a pointer to i-th external data object. More... | |
Data *const & | external_data_pt (const unsigned &i) const |
Return a pointer to i-th external data object (const version) More... | |
unsigned long | eqn_number (const unsigned &ieqn_local) const |
int | local_eqn_number (const unsigned long &ieqn_global) const |
unsigned | add_external_data (Data *const &data_pt, const bool &fd=true) |
bool | external_data_fd (const unsigned &i) const |
void | exclude_external_data_fd (const unsigned &i) |
void | include_external_data_fd (const unsigned &i) |
void | flush_external_data () |
Flush all external data. More... | |
void | flush_external_data (Data *const &data_pt) |
Flush the object addressed by data_pt from the external data array. More... | |
unsigned | ninternal_data () const |
Return the number of internal data objects. More... | |
unsigned | nexternal_data () const |
Return the number of external data objects. More... | |
unsigned | ndof () const |
Return the number of equations/dofs in the element. More... | |
void | dof_vector (const unsigned &t, Vector< double > &dof) |
Return the vector of dof values at time level t. More... | |
void | dof_pt_vector (Vector< double * > &dof_pt) |
Return the vector of pointers to dof values. More... | |
void | set_internal_data_time_stepper (const unsigned &i, TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
void | assign_internal_eqn_numbers (unsigned long &global_number, Vector< double * > &Dof_pt) |
void | describe_dofs (std::ostream &out, const std::string ¤t_string) const |
void | add_internal_value_pt_to_map (std::map< unsigned, double * > &map_of_value_pt) |
virtual void | assign_local_eqn_numbers (const bool &store_local_dof_pt) |
virtual void | complete_setup_of_dependencies () |
virtual void | get_residuals (Vector< double > &residuals) |
virtual void | get_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
virtual void | get_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &mass_matrix) |
virtual void | get_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix) |
virtual void | get_dresiduals_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam) |
virtual void | get_djacobian_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam) |
virtual void | get_djacobian_and_dmass_matrix_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam) |
virtual void | get_hessian_vector_products (Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product) |
virtual void | get_inner_products (Vector< std::pair< unsigned, unsigned >> const &history_index, Vector< double > &inner_product) |
virtual void | get_inner_product_vectors (Vector< unsigned > const &history_index, Vector< Vector< double >> &inner_product_vector) |
virtual void | compute_norm (Vector< double > &norm) |
virtual void | compute_norm (double &norm) |
virtual unsigned | ndof_types () const |
virtual void | get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const |
![]() | |
GeomObject () | |
Default constructor. More... | |
GeomObject (const unsigned &ndim) | |
GeomObject (const unsigned &nlagrangian, const unsigned &ndim) | |
GeomObject (const unsigned &nlagrangian, const unsigned &ndim, TimeStepper *time_stepper_pt) | |
GeomObject (const GeomObject &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const GeomObject &)=delete |
Broken assignment operator. More... | |
virtual | ~GeomObject () |
(Empty) destructor More... | |
unsigned | nlagrangian () const |
Access function to # of Lagrangian coordinates. More... | |
unsigned | ndim () const |
Access function to # of Eulerian coordinates. More... | |
void | set_nlagrangian_and_ndim (const unsigned &n_lagrangian, const unsigned &n_dim) |
Set # of Lagrangian and Eulerian coordinates. More... | |
TimeStepper *& | time_stepper_pt () |
TimeStepper * | time_stepper_pt () const |
virtual void | position (const double &t, const Vector< double > &zeta, Vector< double > &r) const |
virtual void | dposition (const Vector< double > &zeta, DenseMatrix< double > &drdzeta) const |
virtual void | d2position (const Vector< double > &zeta, RankThreeTensor< double > &ddrdzeta) const |
virtual void | d2position (const Vector< double > &zeta, Vector< double > &r, DenseMatrix< double > &drdzeta, RankThreeTensor< double > &ddrdzeta) const |
Static Public Attributes | |
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 |
Protected Member Functions | |
virtual int | p_local_eqn (const unsigned &n)=0 |
virtual double | dshape_and_dtest_eulerian_pnst (const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0 |
virtual double | dshape_and_dtest_eulerian_at_knot_pnst (const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0 |
virtual void | pshape_pnst (const Vector< double > &s, Shape &psi) const =0 |
Compute the pressure shape functions at local coordinate s. More... | |
virtual void | pshape_pnst (const Vector< double > &s, Shape &psi, Shape &test) const =0 |
void | get_body_force (double time, const Vector< double > &x, Vector< double > &result) |
Calculate the body force at a given time and Eulerian position. More... | |
double | get_source_fct (double time, const Vector< double > &x) |
![]() | |
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) |
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_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 | |
double * | Viscosity_Ratio_pt |
double * | Density_Ratio_pt |
double * | Alpha_pt |
Pointer to the angle alpha. More... | |
double * | Re_pt |
Pointer to global Reynolds number. More... | |
double * | ReSt_pt |
Pointer to global Reynolds number x Strouhal number (=Womersley) More... | |
double * | ReInvFr_pt |
Vector< double > * | G_pt |
Pointer to global gravity Vector. More... | |
NavierStokesBodyForceFctPt | Body_force_fct_pt |
Pointer to body force function. More... | |
NavierStokesSourceFctPt | Source_fct_pt |
Pointer to volumetric source function. More... | |
![]() | |
MacroElement * | Macro_elem_pt |
Pointer to the element's macro element (NULL by default) More... | |
![]() | |
unsigned | NLagrangian |
Number of Lagrangian (intrinsic) coordinates. More... | |
unsigned | Ndim |
Number of Eulerian coordinates. More... | |
TimeStepper * | Geom_object_time_stepper_pt |
Static Private Attributes | |
static int | Pressure_not_stored_at_node = -100 |
static double | Default_Physical_Constant_Value = 0.0 |
Navier–Stokes equations static data. More... | |
static double | Default_Physical_Ratio_Value = 1.0 |
Navier–Stokes equations static data. More... | |
static Vector< double > | Default_Gravity_vector |
Static default value for the gravity vector. More... | |
Additional Inherited Members | |
![]() | |
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 |
A class for elements that solve the polar Navier–Stokes equations, This contains the generic maths – any concrete implementation must be derived from this.
typedef void(* oomph::PolarNavierStokesEquations::NavierStokesBodyForceFctPt) (const double &time, const Vector< double > &x, Vector< double > &body_force) |
Function pointer to body force function fct(t,x,f(x)) x is a Vector!
typedef double(* oomph::PolarNavierStokesEquations::NavierStokesSourceFctPt) (const double &time, const Vector< double > &x) |
Function pointer to source function fct(t,x) x is a Vector!
|
inline |
Constructor: NULL the body force and source function.
References Default_Gravity_vector, Default_Physical_Constant_Value, Default_Physical_Ratio_Value, Density_Ratio_pt, G_pt, Re_pt, ReInvFr_pt, ReSt_pt, and Viscosity_Ratio_pt.
|
inline |
Alpha.
References Alpha_pt.
Referenced by fill_in_generic_residual_contribution(), oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution(), output(), strain_rate(), and strain_rate_by_r().
|
inline |
Pointer to Alpha.
References Alpha_pt.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build().
|
inline |
Access function for the body-force pointer.
References Body_force_fct_pt.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build().
|
inline |
Access function for the body-force pointer. Const version.
References Body_force_fct_pt.
|
virtual |
Validate against exact solution. Solution is provided via function pointer. Plot at a given number of plot points and compute L2 error and L2 norm of velocity solution over element
Validate against exact velocity solution Solution is provided via function pointer. Plot at a given number of plot points and compute L2 error and L2 norm of velocity solution over element.
Reimplemented from oomph::FiniteElement.
References calibrate::error, ProblemParameters::exact_soln(), i, oomph::FiniteElement::integral_pt(), interpolated_u_pnst(), oomph::FiniteElement::interpolated_x(), J, oomph::FiniteElement::J_eulerian(), oomph::Integral::knot(), oomph::Integral::nweight(), s, w, oomph::QuadTreeNames::W, oomph::Integral::weight(), and plotDoE::x.
|
virtual |
Validate against exact solution at given time Solution is provided via function pointer. Plot at a given number of plot points and compute L2 error and L2 norm of velocity solution over element
Validate against exact velocity solution at given time. Solution is provided via function pointer. Plot at a given number of plot points and compute L2 error and L2 norm of velocity solution over element.
Reimplemented from oomph::FiniteElement.
References calibrate::error, ProblemParameters::exact_soln(), i, oomph::FiniteElement::integral_pt(), interpolated_u_pnst(), oomph::FiniteElement::interpolated_x(), J, oomph::FiniteElement::J_eulerian(), oomph::Integral::knot(), oomph::Integral::nweight(), s, w, oomph::QuadTreeNames::W, oomph::Integral::weight(), and plotDoE::x.
|
inline |
Density ratio for element: Element's density relative to the viscosity used in the definition of the Reynolds number
References Density_Ratio_pt.
|
inline |
Pointer to Density ratio.
References Density_Ratio_pt.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build().
double oomph::PolarNavierStokesEquations::dissipation | ( | ) | const |
Return integral of dissipation over element.
References i, oomph::FiniteElement::integral_pt(), J, j, oomph::FiniteElement::J_eulerian(), oomph::Integral::knot(), oomph::Integral::nweight(), s, strain_rate(), w, and oomph::Integral::weight().
Referenced by full_output().
|
protectedpure virtual |
Compute the shape functions and derivatives w.r.t. global coords at ipt-th integration point Return Jacobian of mapping between local and global coordinates.
Implemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
Referenced by fill_in_generic_residual_contribution(), and oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution().
|
protectedpure virtual |
Compute the shape functions and derivatives w.r.t. global coords at local coordinate s. Return Jacobian of mapping between local and global coordinates.
Implemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
|
inline |
i-th component of du/dt at local node n. Uses suitably interpolated value for hanging nodes.
References i, n, oomph::FiniteElement::node_pt(), oomph::TimeStepper::ntstorage(), plotPSD::t, oomph::GeomObject::time_stepper_pt(), oomph::Data::time_stepper_pt(), oomph::TimeStepper::type(), u_pnst(), and oomph::TimeStepper::weight().
Referenced by full_output().
|
inlinevirtual |
Compute the element's residual Vector and the jacobian matrix Virtual function can be overloaded by hanging-node version
Reimplemented from oomph::FiniteElement.
References oomph::GeneralisedElement::Dummy_matrix, and fill_in_generic_residual_contribution().
|
inlinevirtual |
Compute the element's residual Vector and the jacobian matrix Plus the mass matrix especially for eigenvalue problems
Reimplemented from oomph::GeneralisedElement.
References fill_in_generic_residual_contribution().
|
inlinevirtual |
Compute the element's residual Vector.
Reimplemented from oomph::GeneralisedElement.
References oomph::GeneralisedElement::Dummy_matrix, and fill_in_generic_residual_contribution().
|
virtual |
Compute the residuals for the Navier–Stokes equations; flag=1(or 0): do (or don't) compute the Jacobian as well.
/////////////////////////////////////////////////////////////////// / The finished version of the new equations ///// /////////////////////////////////////////////////////////////////// Compute the residuals for the Navier–Stokes equations; flag=1(or 0): do (or don't) compute the Jacobian as well. flag=2 for Residuals, Jacobian and mass_matrix
This is now my new version with Jacobian and dimensionless phi
Reimplemented in oomph::RefineablePolarNavierStokesEquations.
References TanhSolnForAdvectionDiffusion::Alpha, alpha(), dshape_and_dtest_eulerian_at_knot_pnst(), Gamma, i, oomph::FiniteElement::integral_pt(), oomph::FiniteElement::interpolated_x(), J, j, oomph::Integral::knot(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_local_eqn(), oomph::FiniteElement::nodal_position(), oomph::FiniteElement::nodal_value(), npres_pnst(), oomph::Integral::nweight(), p_local_eqn(), p_pnst(), Eigen::bfloat16_impl::pow(), pshape_pnst(), GlobalPhysicalVariables::Re, re(), oomph::Problem_Parameter::Re_St, re_st(), s, u_index_pnst(), w, oomph::QuadTreeNames::W, and oomph::Integral::weight().
Referenced by fill_in_contribution_to_jacobian(), fill_in_contribution_to_jacobian_and_mass_matrix(), and fill_in_contribution_to_residuals().
|
pure virtual |
Pin p_dof-th pressure dof and set it to value specified by p_value.
Implemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
|
inline |
Full output function: x,y,[z],u,v,[w],p,du/dt,dv/dt,[dw/dt],dissipation in tecplot format. Default number of plot points
Referenced by oomph::PolarCrouzeixRaviartElement::full_output().
void oomph::PolarNavierStokesEquations::full_output | ( | std::ostream & | outfile, |
const unsigned & | nplot | ||
) |
Full output function: x,y,[z],u,v,[w],p,du/dt,dv/dt,[dw/dt],dissipation in tecplot format. nplot points in each coordinate direction
Full output function: x,y,[z],u,v,[w],p,du/dt,dv/dt,[dw/dt],dissipation in tecplot format. Specified number of plot points in each coordinate direction
References dissipation(), oomph::FiniteElement::dnodal_position_dt(), oomph::FiniteElement::dshape_eulerian(), du_dt_pnst(), oomph::FiniteElement::get_s_plot(), i, interpolated_p_pnst(), interpolated_u_pnst(), oomph::FiniteElement::interpolated_x(), j, k, oomph::FiniteElement::nnode(), oomph::FiniteElement::nplot_points(), s, oomph::FiniteElement::tecplot_zone_string(), and u_pnst().
Pointer to Vector of gravitational components.
References G_pt.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build().
|
inlineprotected |
Calculate the body force at a given time and Eulerian position.
References Body_force_fct_pt, i, and plotDoE::x.
|
inline |
The potential loading on an external SolidElement is always provided by the traction function
References get_traction(), load(), N, and s.
|
inlineprotected |
Calculate the source fct at given time and Eulerian position
References Source_fct_pt, and plotDoE::x.
void oomph::PolarNavierStokesEquations::get_traction | ( | const Vector< double > & | s, |
const Vector< double > & | N, | ||
Vector< double > & | traction | ||
) |
Compute traction (on the viscous scale) at local coordinate s for outer unit normal N
References i, interpolated_p_pnst(), j, N, s, and strain_rate().
Referenced by get_load().
|
inline |
//////////////////////////////////////////////////////////////// My own work: /// Return FE interpolated velocity derivative du[i]/dx[j] /// at local coordinate s /// ////////////////////////////////////////////////////////////////
References oomph::FiniteElement::dshape_eulerian(), i, j, oomph::FiniteElement::nnode(), s, and u_pnst().
|
inline |
Return FE interpolated pressure at local coordinate s.
References npres_pnst(), p_pnst(), pshape_pnst(), and s.
Referenced by full_output(), oomph::RefineablePolarCrouzeixRaviartElement::further_build(), oomph::RefineablePolarTaylorHoodElement::get_interpolated_values(), get_traction(), output(), and pressure_integral().
|
inline |
Return FE interpolated velocity u[i] at local coordinate s.
References i, oomph::FiniteElement::nnode(), s, oomph::FiniteElement::shape(), and u_pnst().
|
inline |
Compute vector of FE interpolated velocity u at local coordinate s.
References i, oomph::FiniteElement::nnode(), s, oomph::FiniteElement::shape(), and u_pnst().
Referenced by compute_error(), full_output(), oomph::RefineablePolarTaylorHoodElement::get_interpolated_values(), oomph::RefineablePolarCrouzeixRaviartElement::get_interpolated_values(), kin_energy(), and output().
double oomph::PolarNavierStokesEquations::kin_energy | ( | ) | const |
Get integral of kinetic energy over element.
Get integral of kinetic energy over element:
References i, oomph::FiniteElement::integral_pt(), interpolated_u_pnst(), J, oomph::FiniteElement::J_eulerian(), oomph::Integral::knot(), oomph::Integral::nweight(), s, w, and oomph::Integral::weight().
|
pure virtual |
Function to return number of pressure degrees of freedom.
Implemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
Referenced by fill_in_generic_residual_contribution(), oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution(), and interpolated_p_pnst().
|
inlinevirtual |
C-style output function: x,y,[z],u,v,[w],p in tecplot format. Default number of plot points
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
References output().
|
virtual |
C-style output function: x,y,[z],u,v,[w],p in tecplot format. nplot points in each coordinate direction
C-style output function: x,y,[z],u,v,[w],p in tecplot format. Specified number of plot points in each coordinate direction.
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
References oomph::FiniteElement::get_s_plot(), i, interpolated_p_pnst(), interpolated_u_pnst(), oomph::FiniteElement::interpolated_x(), oomph::FiniteElement::nplot_points(), s, and oomph::FiniteElement::tecplot_zone_string().
|
inlinevirtual |
Output functionget_vels(const Vector<double>& x_to_get, Vector<double>& vels): x,y,[z],u,v,[w],p in tecplot format. Default number of plot points
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
Referenced by output(), oomph::PolarCrouzeixRaviartElement::output(), and oomph::PolarTaylorHoodElement::output().
|
virtual |
Output function: x,y,[z],u,v,[w],p in tecplot format. nplot points in each coordinate direction
Output function: x,y,[z],u,v,[w],p in tecplot format. Specified number of plot points in each coordinate direction.
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
References TanhSolnForAdvectionDiffusion::Alpha, alpha(), cos(), oomph::FiniteElement::get_s_plot(), interpolated_p_pnst(), interpolated_u_pnst(), oomph::FiniteElement::interpolated_x(), oomph::FiniteElement::nplot_points(), UniformPSDSelfTest::r, s, sin(), oomph::FiniteElement::tecplot_zone_string(), and BiharmonicTestFunctions2::theta.
|
virtual |
Output exact solution specified via function pointer at a given time and at a given number of plot points. Function prints as many components as are returned in solution Vector.
Output "exact" solution at a given time Solution is provided via function pointer. Plot at a given number of plot points. Function prints as many components as are returned in solution Vector.
Reimplemented from oomph::FiniteElement.
References ProblemParameters::exact_soln(), oomph::FiniteElement::get_s_plot(), i, oomph::FiniteElement::interpolated_x(), oomph::FiniteElement::nplot_points(), s, oomph::FiniteElement::tecplot_zone_string(), oomph::FiniteElement::write_tecplot_zone_footer(), and plotDoE::x.
|
virtual |
Output exact solution specified via function pointer at a given number of plot points. Function prints as many components as are returned in solution Vector
Output "exact" solution Solution is provided via function pointer. Plot at a given number of plot points. Function prints as many components as are returned in solution Vector.
Reimplemented from oomph::FiniteElement.
References ProblemParameters::exact_soln(), oomph::FiniteElement::get_s_plot(), i, oomph::FiniteElement::interpolated_x(), oomph::FiniteElement::nplot_points(), s, oomph::FiniteElement::tecplot_zone_string(), oomph::FiniteElement::write_tecplot_zone_footer(), and plotDoE::x.
void oomph::PolarNavierStokesEquations::output_veloc | ( | std::ostream & | outfile, |
const unsigned & | nplot, | ||
const unsigned & | t | ||
) |
Output function: x,y,[z],u,v,[w] in tecplot format. nplot points in each coordinate direction at timestep t (t=0: present; t>0: previous timestep)
Output function: Velocities only x,y,[z],u,v,[w] in tecplot format at specified previous timestep (t=0: present; t>0: previous timestep). Specified number of plot points in each coordinate direction.
References oomph::FiniteElement::get_s_plot(), i, oomph::FiniteElement::interpolated_x(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_position(), oomph::FiniteElement::nplot_points(), s, oomph::FiniteElement::shape(), plotPSD::t, oomph::FiniteElement::tecplot_zone_string(), u_pnst(), and oomph::FiniteElement::write_tecplot_zone_footer().
|
protectedpure virtual |
Access function for the local equation number information for the pressure. p_local_eqn[n] = local equation number or < 0 if pinned
Implemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
Referenced by fill_in_generic_residual_contribution(), and oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution().
|
inlinevirtual |
Which nodal value represents the pressure? (Default: negative, indicating that pressure is not based on nodal interpolation).
Reimplemented in oomph::PolarTaylorHoodElement.
References Pressure_not_stored_at_node.
Referenced by oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution().
Pressure at local pressure "node" n_p Uses suitably interpolated value for hanging nodes.
Implemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
Referenced by fill_in_generic_residual_contribution(), oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution(), and interpolated_p_pnst().
double oomph::PolarNavierStokesEquations::pressure_integral | ( | ) | const |
Integral of pressure over element.
Return pressure integrated over the element.
References i, oomph::FiniteElement::integral_pt(), interpolated_p_pnst(), J, oomph::FiniteElement::J_eulerian(), oomph::Integral::knot(), oomph::Integral::nweight(), s, w, oomph::QuadTreeNames::W, and oomph::Integral::weight().
|
inlinevirtual |
Pointer to n_p-th pressure node (Default: NULL, indicating that pressure is not based on nodal interpolation).
Reimplemented in oomph::RefineablePolarTaylorHoodElement, oomph::RefineablePolarNavierStokesEquations, and oomph::PolarTaylorHoodElement.
|
protectedpure virtual |
Compute the pressure shape functions at local coordinate s.
Implemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
Referenced by fill_in_generic_residual_contribution(), oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution(), and interpolated_p_pnst().
|
protectedpure virtual |
Compute the pressure shape and test functions at local coordinate s
Implemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
|
inline |
Reynolds number.
References Re_pt.
Referenced by fill_in_generic_residual_contribution(), and oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution().
|
inline |
|
inline |
Pointer to global inverse Froude number.
References ReInvFr_pt.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build().
|
inline |
Pointer to Reynolds number.
References Re_pt.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build().
|
inline |
Product of Reynolds and Strouhal number (=Womersley number)
References ReSt_pt.
Referenced by fill_in_generic_residual_contribution(), and oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution().
|
inline |
Pointer to product of Reynolds and Strouhal number (=Womersley number)
References ReSt_pt.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build().
|
inline |
Access function for the source-function pointer.
References Source_fct_pt.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build().
|
inline |
Access function for the source-function pointer. Const version.
References Source_fct_pt.
void oomph::PolarNavierStokesEquations::strain_rate | ( | const Vector< double > & | s, |
DenseMatrix< double > & | strainrate | ||
) | const |
Strain-rate tensor: Now returns polar strain.
Get strain-rate tensor: Slightly more complicated in polar coordinates (see eg. Aris)
References TanhSolnForAdvectionDiffusion::Alpha, alpha(), oomph::FiniteElement::dshape_eulerian(), i, oomph::FiniteElement::interpolated_x(), j, oomph::DenseMatrix< T >::ncol(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_position(), oomph::FiniteElement::nodal_value(), oomph::DenseMatrix< T >::nrow(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, s, and u_index_pnst().
Referenced by dissipation(), and get_traction().
void oomph::PolarNavierStokesEquations::strain_rate_by_r | ( | const Vector< double > & | s, |
DenseMatrix< double > & | strainrate | ||
) | const |
Function to return polar strain multiplied by r.
Return polar strain-rate tensor multiplied by r Slightly more complicated in polar coordinates (see eg. Aris)
References TanhSolnForAdvectionDiffusion::Alpha, alpha(), oomph::FiniteElement::dshape_eulerian(), i, oomph::FiniteElement::interpolated_x(), j, oomph::DenseMatrix< T >::ncol(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_position(), oomph::FiniteElement::nodal_value(), oomph::DenseMatrix< T >::nrow(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, s, and u_index_pnst().
Referenced by oomph::RefineablePolarNavierStokesEquations::get_Z2_flux().
|
inlinevirtual |
Return the index at which the i-th unknown velocity component is stored. The default value, i, is appropriate for single-physics problems. In derived multi-physics elements, this function should be overloaded to reflect the chosen storage scheme. Note that these equations require that the unknowns are always stored at the same indices at each node.
References i.
Referenced by fill_in_generic_residual_contribution(), oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution(), oomph::RefineablePolarTaylorHoodElement::get_interpolated_values(), oomph::RefineablePolarCrouzeixRaviartElement::get_interpolated_values(), oomph::RefineablePolarTaylorHoodElement::insert_load_data(), oomph::RefineablePolarCrouzeixRaviartElement::insert_load_data(), strain_rate(), and strain_rate_by_r().
|
pure virtual |
Velocity i at local node n. Uses suitably interpolated value for hanging nodes.
Implemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
Referenced by du_dt_pnst(), full_output(), interpolated_dudx_pnst(), interpolated_u_pnst(), and output_veloc().
|
pure virtual |
Velocity i at local node n at timestep t (t=0: present; t>0: previous). Uses suitably interpolated value for hanging nodes.
Implemented in oomph::PolarTaylorHoodElement, and oomph::PolarCrouzeixRaviartElement.
|
inline |
Viscosity ratio for element: Element's viscosity relative to the viscosity used in the definition of the Reynolds number
References Viscosity_Ratio_pt.
|
inline |
Pointer to Viscosity Ratio.
References Viscosity_Ratio_pt.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build().
|
protected |
Pointer to the angle alpha.
Referenced by alpha(), alpha_pt(), and oomph::RefineablePolarNavierStokesEquations::further_build().
|
protected |
Pointer to body force function.
Referenced by body_force_fct_pt(), oomph::RefineablePolarNavierStokesEquations::further_build(), and get_body_force().
Static default value for the gravity vector.
Navier-Stokes equations default gravity vector.
Referenced by PolarNavierStokesEquations().
|
staticprivate |
Navier–Stokes equations static data.
Static default value for the physical constants (all initialised to zero)
Referenced by PolarNavierStokesEquations().
|
staticprivate |
Navier–Stokes equations static data.
Static default value for the physical ratios (all are initialised to one)
Referenced by PolarNavierStokesEquations().
|
protected |
Pointer to the density ratio (relative to the density used in the definition of the Reynolds number)
Referenced by density_ratio(), density_ratio_pt(), oomph::RefineablePolarNavierStokesEquations::further_build(), and PolarNavierStokesEquations().
Pointer to global gravity Vector.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build(), g(), g_pt(), and PolarNavierStokesEquations().
Vector to decide whether the stress-divergence form is used or not.
Start of what would've been navier_stokes_elements.cc //.
Navier–Stokes equations static data
Referenced by fill_in_generic_residual_contribution(), and oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution().
|
staticprivate |
Static "magic" number that indicates that the pressure is not stored at a node
"Magic" negative number that indicates that the pressure is not stored at a node. This cannot be -1 because that represents the positional hanging scheme in the hanging_pt object of nodes
Referenced by p_nodal_index_pnst().
|
protected |
Pointer to global Reynolds number.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build(), PolarNavierStokesEquations(), re(), and re_pt().
|
protected |
Pointer to global Reynolds number x inverse Froude number (= Bond number / Capillary number)
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build(), PolarNavierStokesEquations(), re_invfr(), and re_invfr_pt().
|
protected |
Pointer to global Reynolds number x Strouhal number (=Womersley)
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build(), PolarNavierStokesEquations(), re_st(), and re_st_pt().
|
protected |
Pointer to volumetric source function.
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build(), get_source_fct(), and source_fct_pt().
|
protected |
Pointer to the viscosity ratio (relative to the viscosity used in the definition of the Reynolds number)
Referenced by oomph::RefineablePolarNavierStokesEquations::further_build(), PolarNavierStokesEquations(), viscosity_ratio(), and viscosity_ratio_pt().