![]() |
|
#include <mixed_order_petrov_galerkin_space_time_navier_stokes_elements.h>
Public Types | |
typedef void(* | NavierStokesMixedOrderBodyForceFctPt) (const double &time, const Vector< double > &x, Vector< double > &body_force) |
typedef double(* | NavierStokesMixedOrderSourceFctPt) (const double &time, const Vector< double > &x) |
Function pointer to source function fct(t,x) (x is a Vector!) More... | |
typedef double(* | NavierStokesMixedOrderPressureAdvDiffSourceFctPt) (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 | |
SpaceTimeNavierStokesMixedOrderEquations () | |
void | store_reynolds_strouhal_as_external_data (Data *reynolds_strouhal_data_pt) |
Function that tells us whether the period is stored as external data. More... | |
bool | is_reynolds_strouhal_stored_as_external_data () const |
Are we storing the Strouhal number as external data? More... | |
const double & | re () const |
Reynolds number. More... | |
double *& | re_pt () |
Pointer to Reynolds number. More... | |
const double & | re_st () const |
ReSt parameter (const. version) More... | |
double * | re_st_pt () const |
Pointer to Strouhal parameter (const. version) More... | |
double *& | re_st_pt () |
Pointer to ReSt number (can only assign to private member data) 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... | |
NavierStokesMixedOrderBodyForceFctPt & | body_force_fct_pt () |
Access function for the body-force pointer. More... | |
NavierStokesMixedOrderBodyForceFctPt | body_force_fct_pt () const |
Access function for the body-force pointer. Const version. More... | |
NavierStokesMixedOrderSourceFctPt & | source_fct_pt () |
Access function for the source-function pointer. More... | |
NavierStokesMixedOrderSourceFctPt | source_fct_pt () const |
Access function for the source-function pointer. Const version. More... | |
NavierStokesMixedOrderPressureAdvDiffSourceFctPt & | source_fct_for_pressure_adv_diff () |
NavierStokesMixedOrderPressureAdvDiffSourceFctPt | source_fct_for_pressure_adv_diff () const |
int & | pinned_fp_pressure_eqn () |
virtual unsigned | npres_nst () const =0 |
Function to return number of pressure degrees of freedom. More... | |
virtual void | pshape_nst (const Vector< double > &s, Shape &psi) const =0 |
Compute the pressure shape functions at local coordinate s. More... | |
virtual void | pshape_nst (const Vector< double > &s, Shape &psi, Shape &test) const =0 |
double | u_nst (const unsigned &n, const unsigned &i) const |
double | u_nst (const unsigned &t, const unsigned &n, const unsigned &i) const |
virtual unsigned | u_index_nst (const unsigned &i) const |
unsigned | n_u_nst () const |
double | get_du_dt (const unsigned &n, const unsigned &i) const |
double | du_dt_nst (const unsigned &n, const unsigned &i) const |
double | interpolated_du_dt_nst (const Vector< double > &s, const unsigned &i) const |
void | disable_ALE () |
void | enable_ALE () |
virtual double | p_nst (const unsigned &n_p) const =0 |
virtual double | p_nst (const unsigned &t, const unsigned &n_p) const =0 |
Pressure at local pressure "node" n_p at time level t. More... | |
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_nst () const |
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... | |
void | get_vorticity (const Vector< double > &s, Vector< double > &vorticity) const |
Compute the vorticity vector at local coordinate s. More... | |
void | get_vorticity (const Vector< double > &s, double &vorticity) const |
Compute the vorticity vector at local coordinate s. More... | |
double | kin_energy () const |
Get integral of kinetic energy over element. More... | |
double | d_kin_energy_dt () const |
Get integral of time derivative of kinetic energy over element. More... | |
void | strain_rate (const Vector< double > &s, DenseMatrix< double > &strain_rate) const |
Strain-rate tensor: 1/2 (du_i/dx_j+du_j/dx_i) More... | |
void | get_traction (const Vector< double > &s, const Vector< double > &N, Vector< double > &traction) |
void | get_traction (const Vector< double > &s, const Vector< double > &N, Vector< double > &traction_p, Vector< double > &traction_visc_n, Vector< double > &traction_visc_t) |
void | get_load (const Vector< double > &s, const Vector< double > &N, Vector< double > &load) |
void | get_pressure_and_velocity_mass_matrix_diagonal (Vector< double > &press_mass_diag, Vector< double > &veloc_mass_diag, const unsigned &which_one=0) |
unsigned | nscalar_paraview () const |
void | scalar_value_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const |
void | scalar_value_fct_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) const |
std::string | scalar_name_paraview (const unsigned &i) const |
void | output (std::ostream &outfile) |
void | output (std::ostream &outfile, const unsigned &n_plot) |
void | output (FILE *file_pt) |
void | output (FILE *file_pt, const unsigned &n_plot) |
void | full_output (std::ostream &outfile) |
void | full_output (std::ostream &outfile, const unsigned &n_plot) |
void | output_veloc (std::ostream &outfile, const unsigned &nplot, const unsigned &t) |
void | output_vorticity (std::ostream &outfile, const unsigned &nplot) |
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_norm (Vector< double > &norm) |
Compute the vector norm of the FEM solution. More... | |
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::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, Vector< double > &error, Vector< double > &norm) |
void | compute_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm) |
void | compute_error (FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm) |
void | compute_error (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) |
void | fill_in_contribution_to_dresiduals_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam) |
void | fill_in_contribution_to_djacobian_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam) |
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) |
void | fill_in_pressure_advection_diffusion_residuals (Vector< double > &residuals) |
void | fill_in_pressure_advection_diffusion_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
void | pin_all_non_pressure_dofs (std::map< Data *, std::vector< int >> &eqn_number_backup) |
Pin all non-pressure dofs and backup eqn numbers. More... | |
virtual void | build_fp_press_adv_diff_robin_bc_element (const unsigned &face_index)=0 |
void | output_pressure_advection_diffusion_robin_elements (std::ostream &outfile) |
void | delete_pressure_advection_diffusion_robin_elements () |
virtual void | get_dresidual_dnodal_coordinates (RankThreeTensor< double > &dresidual_dnodal_coordinates) |
void | interpolated_u_nst (const Vector< double > &s, Vector< double > &velocity) const |
Compute vector of FE interpolated velocity u at local coordinate s. More... | |
double | interpolated_u_nst (const Vector< double > &s, const unsigned &i) const |
Return FE interpolated velocity u[i] at local coordinate s. More... | |
double | interpolated_u_nst (const unsigned &t, const Vector< double > &s, const unsigned &i) const |
virtual void | dinterpolated_u_nst_ddata (const Vector< double > &s, const unsigned &i, Vector< double > &du_ddata, Vector< unsigned > &global_eqn_number) |
virtual double | interpolated_p_nst (const Vector< double > &s) const |
Return FE interpolated pressure at local coordinate s. More... | |
double | interpolated_p_nst (const unsigned &t, const Vector< double > &s) const |
Return FE interpolated pressure at local coordinate s at time level t. More... | |
void | point_output_data (const Vector< double > &s, Vector< double > &data) |
void | get_vorticity (const Vector< double > &s, Vector< double > &vorticity) const |
void | get_vorticity (const Vector< double > &s, double &vorticity) const |
![]() | |
FSIFluidElement () | |
Constructor. More... | |
FSIFluidElement (const FSIFluidElement &)=delete | |
Broken copy constructor. More... | |
void | operator= (const FSIFluidElement &)=delete |
Broken assignment operator. More... | |
virtual void | identify_load_data (std::set< std::pair< Data *, unsigned >> &paired_load_data)=0 |
virtual void | identify_pressure_data (std::set< std::pair< Data *, unsigned >> &paired_pressure_data)=0 |
![]() | |
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 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 |
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 void | scalar_value_fct_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) 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, 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_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 (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 |
![]() | |
TemplateFreeSpaceTimeNavierStokesMixedOrderEquationsBase () | |
Constructor (empty) More... | |
virtual | ~TemplateFreeSpaceTimeNavierStokesMixedOrderEquationsBase () |
Virtual destructor (empty) More... | |
virtual int | p_local_eqn (const unsigned &n) const =0 |
![]() | |
NavierStokesElementWithDiagonalMassMatrices () | |
Empty constructor. More... | |
virtual | ~NavierStokesElementWithDiagonalMassMatrices () |
Virtual destructor. More... | |
NavierStokesElementWithDiagonalMassMatrices (const NavierStokesElementWithDiagonalMassMatrices &)=delete | |
Broken copy constructor. More... | |
void | operator= (const NavierStokesElementWithDiagonalMassMatrices &)=delete |
Broken assignment operator. More... | |
Static Public Attributes | |
static Vector< double > | Gamma |
Navier-Stokes equations static data. 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 double | dshape_and_dtest_eulerian_nst (const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0 |
virtual double | dshape_and_dtest_eulerian_at_knot_nst (const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0 |
virtual double | dshape_and_dtest_eulerian_at_knot_nst (const unsigned &ipt, Shape &psi, DShape &dpsidx, RankFourTensor< double > &d_dpsidx_dX, Shape &test, DShape &dtestdx, RankFourTensor< double > &d_dtestdx_dX, DenseMatrix< double > &djacobian_dX) const =0 |
virtual void | shape_u_nst (const Vector< double > &s, Shape &psi) const =0 |
DRAIG: Fill in later... More... | |
virtual void | dshape_local_u_nst (const Vector< double > &s, Shape &psi, DShape &dpsidx) const =0 |
DRAIG: Fill in later... More... | |
virtual void | dtest_local_u_nst (const Vector< double > &s, Shape &test, DShape &dtestdx) const =0 |
DRAIG: Fill in later... More... | |
virtual double | dpshape_eulerian (const Vector< double > &s, Shape &ppsi, DShape &dppsidx) const =0 |
virtual double | dptest_eulerian (const Vector< double > &s, Shape &ptest, DShape &dptestdx) const =0 |
virtual double | dpshape_and_dptest_eulerian_nst (const Vector< double > &s, Shape &ppsi, DShape &dppsidx, Shape &ptest, DShape &dptestdx) const =0 |
virtual void | get_body_force_nst (const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &result) |
virtual void | get_body_force_gradient_nst (const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, DenseMatrix< double > &d_body_force_dx) |
virtual double | get_source_nst (const double &time, const unsigned &ipt, const Vector< double > &x) |
Calculate the source fct at a given time and Eulerian position. More... | |
virtual void | get_source_gradient_nst (const double &time, const unsigned &ipt, const Vector< double > &x, Vector< double > &gradient) |
virtual void | fill_in_generic_residual_contribution_nst (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix, const unsigned &flag) |
virtual void | fill_in_generic_pressure_advection_diffusion_contribution_nst (Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag) |
virtual void | fill_in_generic_dresidual_contribution_nst (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam, const unsigned &flag) |
void | fill_in_contribution_to_hessian_vector_products (Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product) |
![]() | |
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_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) |
Static Private Attributes | |
static int | Pressure_not_stored_at_node |
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 Cartesian Navier-Stokes equations, templated by the dimension DIM. This contains the generic maths – any concrete implementation must be derived from this.
We're solving:
\( { Re \left( St \frac{\partial u_i}{\partial t}+ (u_j-u_j^{M}) \frac{\partial u_i}{\partial x_j} \right)= -\frac{\partial p}{\partial x_i} -R_\rho B_i(x_j) - \frac{Re}{Fr} G_i + \frac{\partial }{\partial x_j} \left[ R_\mu \left( \frac{\partial u_i}{\partial x_j}+ \frac{\partial u_j}{\partial x_i} \right) \right] } \)
and
\( { \frac{\partial u_i}{\partial x_i}=Q } \)
We also provide all functions required to use this element in FSI problems, by deriving it from the FSIFluidElement base class.
The space-time extension is written ONLY for the 2D Navier-Stokes equations. The result is a 3D problem (x,y,t) to be solved on a 3D mesh. The template parameter DIM now corresponds to the dimension of the space-time problem (i.e. DIM=3 for the 2D flow).
typedef void(* oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::NavierStokesMixedOrderBodyForceFctPt) (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::SpaceTimeNavierStokesMixedOrderEquations< DIM >::NavierStokesMixedOrderPressureAdvDiffSourceFctPt) (const Vector< double > &x) |
Function pointer to source function fct(x) for the pressure advection diffusion equation (only used during validation!). x is a Vector!
typedef double(* oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::NavierStokesMixedOrderSourceFctPt) (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 and make sure the ALE terms are included by default.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Default_Gravity_vector, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Default_Physical_Constant_Value, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Default_Physical_Ratio_Value, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Density_Ratio_pt, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::G_pt, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Re_pt, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReInvFr_pt, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReSt_pt, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReynoldsStrouhal_is_stored_as_external_data, and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Viscosity_Ratio_pt.
|
inline |
Access function for the body-force pointer.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Body_force_fct_pt.
|
inline |
Access function for the body-force pointer. Const version.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Body_force_fct_pt.
|
pure virtual |
Build FaceElements that apply the Robin boundary condition to the pressure advection diffusion problem required by Fp preconditioner
Implements oomph::TemplateFreeSpaceTimeNavierStokesMixedOrderEquationsBase.
Implemented in oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
virtual |
Validate against exact solution. Solution is provided via function pointer. Compute L2 error and L2 norm of velocity solution over element.
Validate against exact velocity solution Solution is provided via a function pointer. Compute L2 error and L2 norm of velocity solution over element.
Reimplemented from oomph::FiniteElement.
References DIM, calibrate::error, ProblemParameters::exact_soln(), i, J, Eigen::bfloat16_impl::pow(), s, w, oomph::QuadTreeNames::W, and plotDoE::x.
|
virtual |
Validate against exact solution. Solution is provided via function pointer. 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. Compute L2 error and L2 norm of velocity solution over element.
Reimplemented from oomph::FiniteElement.
References DIM, calibrate::error, ProblemParameters::exact_soln(), i, J, Eigen::bfloat16_impl::pow(), s, w, oomph::QuadTreeNames::W, and plotDoE::x.
|
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 DIM, calibrate::error, ProblemParameters::exact_soln(), i, J, Eigen::bfloat16_impl::pow(), s, w, oomph::QuadTreeNames::W, 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 DIM, calibrate::error, ProblemParameters::exact_soln(), i, J, Eigen::bfloat16_impl::pow(), s, w, oomph::QuadTreeNames::W, 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 DIM, calibrate::error, ProblemParameters::exact_soln(), i, J, Eigen::bfloat16_impl::pow(), s, w, oomph::QuadTreeNames::W, and plotDoE::x.
|
virtual |
Compute the vector norm of the FEM solution.
Compute the vector norm of FEM solution.
Reimplemented from oomph::GeneralisedElement.
References DIM, i, J, Eigen::bfloat16_impl::pow(), s, w, and oomph::QuadTreeNames::W.
double oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::d_kin_energy_dt |
Get integral of time derivative of kinetic energy over element.
Get integral of time derivative of kinetic energy over element:
|
inlinevirtual |
Delete the FaceElements that apply the Robin boundary condition to the pressure advection diffusion problem required by Fp preconditioner
Implements oomph::TemplateFreeSpaceTimeNavierStokesMixedOrderEquationsBase.
References e(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Pressure_advection_diffusion_robin_element_pt.
|
inline |
Density ratio for element: Element's density relative to the viscosity used in the definition of the Reynolds number
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Density_Ratio_pt.
|
inline |
Pointer to Density ratio.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Density_Ratio_pt.
|
inlinevirtual |
Compute the derivatives of the i-th component of velocity at point s with respect to all data that can affect its value. In addition, return the global equation numbers corresponding to the data. The function is virtual so that it can be overloaded in the refineable version
Reimplemented in oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >.
References oomph::Data::eqn_number(), i, oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), s, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::shape_u_nst(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::u_index_nst().
|
inlinevirtual |
Disable ALE, i.e. assert the mesh is not moving – you do this at your own risk!
Reimplemented from oomph::FiniteElement.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ALE_is_disabled.
double oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::dissipation |
Return integral of dissipation over element.
double oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::dissipation | ( | const Vector< double > & | s | ) | const |
Return dissipation at local coordinate s.
|
protectedpure virtual |
Compute the pressure shape and test functions and derivatives w.r.t. global coords at local coordinate s. Return Jacobian of mapping between local and global coordinates.
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
protectedpure virtual |
Pressure shape functions and their derivs w.r.t. to global coords at local coordinate s (taken from geometry). Return Jacobian of mapping between local and global coordinates.
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
protectedpure virtual |
Pressure test functions and their derivs w.r.t. to global coords at local coordinate s (taken from geometry). Return Jacobian of mapping between local and global coordinates.
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
protectedpure virtual |
Shape/test functions and derivs w.r.t. to global coords at integration point ipt; return Jacobian of mapping (J). Also compute derivatives of dpsidx, dtestdx and J w.r.t. nodal coordinates.
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
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::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
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::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
protectedpure virtual |
DRAIG: Fill in later...
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_du_dt_nst().
|
protectedpure virtual |
DRAIG: Fill in later...
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
inline |
i-th component of du/dt at local node n. Uses suitably interpolated value for hanging nodes.
References DIM, i, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_du_dt_nst(), oomph::FiniteElement::local_coordinate_of_node(), n, and s.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_du_dt().
|
inlinevirtual |
(Re-)enable ALE, i.e. take possible mesh motion into account when evaluating the time-derivative. Note: By default, ALE is enabled, at the expense of possibly creating unnecessary work in problems where the mesh is, in fact, stationary.
Reimplemented from oomph::FiniteElement.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ALE_is_disabled.
|
inlinevirtual |
Add the element's contribution to its residuals vector, jacobian matrix and mass matrix
Reimplemented from oomph::GeneralisedElement.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_dresidual_contribution_nst().
|
inlinevirtual |
Compute the element's residual Vector and the jacobian matrix Virtual function can be overloaded by hanging-node version
Reimplemented from oomph::GeneralisedElement.
References oomph::GeneralisedElement::Dummy_matrix, and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_dresidual_contribution_nst().
|
inlinevirtual |
Compute the element's residual Vector (differentiated w.r.t. a parameter)
Reimplemented from oomph::GeneralisedElement.
References oomph::GeneralisedElement::Dummy_matrix, and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_dresidual_contribution_nst().
|
protectedvirtual |
Compute the hessian tensor vector products required to perform continuation of bifurcations analytically
Reimplemented from oomph::GeneralisedElement.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
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 oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_residual_contribution_nst().
|
inlinevirtual |
Add the element's contribution to its residuals vector, jacobian matrix and mass matrix
Reimplemented from oomph::GeneralisedElement.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_residual_contribution_nst().
|
inlinevirtual |
Compute the element's residual Vector.
Reimplemented from oomph::GeneralisedElement.
References oomph::GeneralisedElement::Dummy_matrix, and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_residual_contribution_nst().
|
protectedvirtual |
Compute the derivatives of the residuals for the Navier-Stokes equations with respect to a parameter Flag=1 (or 0): do (or don't) compute the Jacobian as well. Flag=2: Fill in mass matrix too.
Compute the derivatives of the residuals for the Navier-Stokes equations with respect to a parameter; flag=2 or 1 or 0: do (or don't) compute the Jacobian and mass matrix as well
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_contribution_to_djacobian_and_dmass_matrix_dparameter(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_contribution_to_djacobian_dparameter(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_contribution_to_dresiduals_dparameter().
|
protectedvirtual |
Compute the residuals for the associated pressure advection diffusion problem. Used by the Fp preconditioner. flag=1(or 0): do (or don't) compute the Jacobian as well.
Reimplemented in oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_pressure_advection_diffusion_jacobian(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_pressure_advection_diffusion_residuals().
|
protectedvirtual |
Compute the residuals for the Navier-Stokes equations. Flag=1 (or 0): do (or don't) compute the Jacobian as well. Flag=2: Fill in mass matrix too.
Compute the residuals for the Navier-Stokes equations; flag=1 (or 0): do (or don't) compute the Jacobian as well.
Reimplemented in oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >.
References oomph::ALE_is_disabled, Global_Parameters::body_force(), DIM, G, GlobalPhysicalVariables::Gamma, i, J, j, k, s, TestProblem::source(), w, and oomph::QuadTreeNames::W.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_contribution_to_jacobian(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_contribution_to_jacobian_and_mass_matrix(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_contribution_to_residuals().
|
inlinevirtual |
Compute the residuals and Jacobian for the associated pressure advection diffusion problem. Used by the Fp preconditioner.
Implements oomph::TemplateFreeSpaceTimeNavierStokesMixedOrderEquationsBase.
|
inlinevirtual |
Compute the residuals for the associated pressure advection diffusion problem. Used by the Fp preconditioner.
Implements oomph::TemplateFreeSpaceTimeNavierStokesMixedOrderEquationsBase.
References oomph::GeneralisedElement::Dummy_matrix, and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_pressure_advection_diffusion_contribution_nst().
|
pure virtual |
Pin p_dof-th pressure dof and set it to value specified by p_value.
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
inline |
Full output function: x,y,[z],u,v,[w],p,du/dt,dv/dt,[dw/dt],dissipation in tecplot format. The default number of plot points is five
void oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::full_output | ( | std::ostream & | outfile, |
const unsigned & | n_plot | ||
) |
Full output function: x,y,t,u,v,p,du/dt,dv/dt,dissipation in tecplot format. Use n_plot plot points in each coordinate direction
Full output function: x,y,t,u,v,p,du/dt,dv/dt,dissipation in tecplot format. Specified number of plot points in each coordinate direction
References DIM, i, j, k, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and s.
|
inline |
Vector of gravitational components.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::G_pt.
|
inline |
Pointer to Vector of gravitational components.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::G_pt.
|
inlineprotectedvirtual |
Get gradient of body force term at (Eulerian) position x. This function is virtual to allow overloading in multi-physics problems where the strength of the source function might be determined by another system of equations. Computed via function pointer (if set) or by finite differencing (default)
References Global_Parameters::body_force(), oomph::GeneralisedElement::Default_fd_jacobian_step, DIM, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_body_force_nst(), i, j, s, and plotDoE::x.
|
inlineprotectedvirtual |
Calculate the body force at a given time and local and/or Eulerian position. This function is virtual so that it can be overloaded in multi-physics elements where the body force might depend on another variable.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Body_force_fct_pt, oomph::Vector< _Tp >::initialise(), and plotDoE::x.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_body_force_gradient_nst().
|
virtual |
Compute derivatives of elemental residual vector with respect to nodal coordinates. Overwrites default implementation in FiniteElement base class. dresidual_dnodal_coordinates(l,i,j)=d res(l) / dX_{ij}
Compute derivatives of elemental residual vector with respect to nodal coordinates. dresidual_dnodal_coordinates(l,i,j)=d res(l) / dX_{ij} Overloads the FD-based version in the FE base class. DRAIG: This needs doing carefully if the ALE nodes aren't fixed!!!
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
inline |
i-th component of du/dt at local node n. Uses suitably interpolated value for hanging nodes. NOTE: This is essentially a wrapper for du_dt_nst() so it can be called externally.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::du_dt_nst(), i, and n.
|
inlinevirtual |
This implements a pure virtual function defined in the FSIFluidElement class. The function computes the traction (on the viscous scale), at the element's local coordinate s, that the fluid element exerts onto an adjacent solid element. The number of arguments is imposed by the interface defined in the FSIFluidElement – only the unit normal N (pointing into the fluid!) is actually used in the computation.
Implements oomph::FSIFluidElement.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_traction(), load(), N, and s.
|
virtual |
Compute the diagonal of the velocity/pressure mass matrices. If which one=0, both are computed, otherwise only the pressure (which_one=1) or the velocity mass matrix (which_one=2 – the LSC version of the preconditioner only needs that one)
Compute the diagonal of the velocity/pressure mass matrices. If which one=0, both are computed, otherwise only the pressure (which_one=1) or the velocity mass matrix (which_one=2 – the LSC version of the preconditioner only needs that one).
Implements oomph::TemplateFreeSpaceTimeNavierStokesMixedOrderEquationsBase.
Reimplemented in oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >.
References DIM, i, J, Eigen::bfloat16_impl::pow(), s, w, and oomph::QuadTreeNames::W.
|
inlineprotectedvirtual |
Get gradient of source term at (Eulerian) position x. This function is virtual to allow overloading in multi-physics problems where the strength of the source function might be determined by another system of equations. Computed via function pointer (if set) or by finite differencing (default)
References oomph::GeneralisedElement::Default_fd_jacobian_step, DIM, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_source_nst(), i, j, TestProblem::source(), and plotDoE::x.
|
inlineprotectedvirtual |
Calculate the source fct at a given time and Eulerian position.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Source_fct_pt, and plotDoE::x.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_source_gradient_nst().
void oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_traction | ( | const Vector< double > & | s, |
const Vector< double > & | N, | ||
Vector< double > & | traction | ||
) |
void oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_traction | ( | const Vector< double > & | s, |
const Vector< double > & | N, | ||
Vector< double > & | traction_p, | ||
Vector< double > & | traction_visc_n, | ||
Vector< double > & | traction_visc_t | ||
) |
Compute traction (on the viscous scale) exerted onto the fluid at local coordinate s, decomposed into pressure and normal and tangential viscous components. N has to be outer unit normal to the fluid.
void oomph::SpaceTimeNavierStokesMixedOrderEquations< 2 >::get_vorticity | ( | const Vector< double > & | s, |
double & | vorticity | ||
) | const |
Compute 2D vorticity vector at local coordinate s (return in one and only component of vorticity vector as a double
References s.
void oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_vorticity | ( | const Vector< double > & | s, |
double & | vorticity | ||
) | const |
Compute the vorticity vector at local coordinate s.
void oomph::SpaceTimeNavierStokesMixedOrderEquations< 2 >::get_vorticity | ( | const Vector< double > & | s, |
Vector< double > & | vorticity | ||
) | const |
Compute 2D vorticity vector at local coordinate s (return in one and only component of vorticity vector
References i, oomph::DenseMatrix< T >::initialise(), j, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and s.
void oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_vorticity | ( | const Vector< double > & | s, |
Vector< double > & | vorticity | ||
) | const |
Compute the vorticity vector at local coordinate s.
|
inline |
Return FE representation of function value du_i/dt(s) at local coordinate s
References oomph::FiniteElement::dim(), DIM, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::dshape_local_u_nst(), el_dim, i, oomph::FiniteElement::local_to_eulerian_mapping(), oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_value(), oomph::FiniteElement::transform_derivatives(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::u_index_nst().
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::du_dt_nst().
|
inline |
Return FE interpolated pressure at local coordinate s at time level t.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::npres_nst(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::p_nst(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::pshape_nst(), s, and plotPSD::t.
|
inlinevirtual |
Return FE interpolated pressure at local coordinate s.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::npres_nst(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::p_nst(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::pshape_nst(), and s.
Referenced by oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >::get_interpolated_values(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::point_output_data(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::scalar_value_paraview().
|
inline |
Return FE interpolated velocity u[i] at local coordinate s time level, t. Purposely broken for space-time elements.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
inline |
Return FE interpolated velocity u[i] at local coordinate s.
References i, oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_value(), s, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::shape_u_nst(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::u_index_nst().
|
inline |
Compute vector of FE interpolated velocity u at local coordinate s.
References DIM, i, oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_value(), s, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::shape_u_nst(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::u_index_nst(), and Jeffery_Solution::velocity().
Referenced by oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >::get_interpolated_values(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::point_output_data(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::scalar_value_paraview().
|
inline |
Are we storing the Strouhal number as external data?
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReynoldsStrouhal_is_stored_as_external_data.
double oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::kin_energy |
Get integral of kinetic energy over element.
Get integral of kinetic energy over element: Note that this is the "raw" kinetic energy in the sense that the density ratio has not been included. In problems with two or more fluids the user will have to remember to premultiply certain elements by the appropriate density ratio.
|
inline |
|
pure virtual |
Function to return number of pressure degrees of freedom.
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_p_nst().
|
inlinevirtual |
Number of scalars/fields output by this element. Reimplements broken virtual function in base class.
Reimplemented from oomph::FiniteElement.
References DIM.
|
inlinevirtual |
C-style output function: x,y,[z],u,v,[w],p in tecplot format. The default number of plot points is five
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::output().
|
virtual |
C-style output function: x,y,[z],u,v,[w],p in tecplot format. Use n_plot 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::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
inlinevirtual |
Output function: x,y,t,u,v,p in tecplot format. The default number of plot points is five
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::output(), and oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >::output().
|
virtual |
Output function: x,y,[z],u,v,[w],p in tecplot format. Here, we use n_plot plot 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::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
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 DIM, ProblemParameters::exact_soln(), i, s, 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 DIM, ProblemParameters::exact_soln(), i, s, and plotDoE::x.
|
inline |
Output the FaceElements that apply the Robin boundary condition to the pressure advection diffusion problem required by Fp preconditioner
References DIM, e(), i, oomph::FiniteElement::integral_pt(), oomph::FaceElement::interpolated_x(), oomph::Integral::knot(), n, oomph::Integral::nweight(), oomph::FaceElement::outer_unit_normal(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Pressure_advection_diffusion_robin_element_pt, s, and plotDoE::x.
void oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::output_veloc | ( | std::ostream & | outfile, |
const unsigned & | n_plot, | ||
const unsigned & | t | ||
) |
Output function: x,y,t,u,v in tecplot format. Use n_plot 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. DRAIG: Should be broken!
void oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::output_vorticity | ( | std::ostream & | outfile, |
const unsigned & | n_plot | ||
) |
Output function: x,y,t,omega in tecplot format. nplot points in each coordinate direction
Output function for vorticity. x,y,[z],[omega_x,omega_y,[and/or omega_z]] in tecplot format. Specified number of plot points in each coordinate direction.
References DIM, i, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, s, and oomph::Global_string_for_annotation::string().
|
inlinevirtual |
Return the index at which the pressure is stored if it is stored at the nodes. If not stored at the nodes this will return a negative number.
Implements oomph::TemplateFreeSpaceTimeNavierStokesMixedOrderEquationsBase.
Reimplemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Pressure_not_stored_at_node.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::pin_all_non_pressure_dofs().
|
pure virtual |
Pressure at local pressure "node" n_p Uses suitably interpolated value for hanging nodes.
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_p_nst().
|
pure virtual |
Pressure at local pressure "node" n_p at time level t.
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
inlinevirtual |
Pin all non-pressure dofs and backup eqn numbers.
Implements oomph::TemplateFreeSpaceTimeNavierStokesMixedOrderEquationsBase.
References oomph::Data::eqn_number(), i, oomph::GeneralisedElement::internal_data_pt(), j, oomph::GeneralisedElement::ninternal_data(), oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), oomph::Data::nvalue(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::p_nodal_index_nst(), oomph::Data::pin(), oomph::FiniteElement::size(), and oomph::SolidNode::variable_position_pt().
|
inlinevirtual |
Global eqn number of pressure dof that's pinned in pressure adv diff problem
Implements oomph::TemplateFreeSpaceTimeNavierStokesMixedOrderEquationsBase.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Pinned_fp_pressure_eqn.
|
inlinevirtual |
Output solution in data vector at local cordinates s: x,y,z,u,v,p
Reimplemented from oomph::FiniteElement.
References data, DIM, i, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_p_nst(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_u_nst(), oomph::FiniteElement::interpolated_x(), and s.
double oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::pressure_integral |
Integral of pressure over element.
Return pressure integrated over the element.
|
pure virtual |
Compute the pressure shape functions at local coordinate s.
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_p_nst().
|
pure virtual |
Compute the pressure shape and test functions at local coordinate s
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
|
inline |
|
inline |
Global inverse Froude number.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReInvFr_pt.
|
inline |
Pointer to global inverse Froude number.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReInvFr_pt.
|
inline |
Pointer to Reynolds number.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Re_pt.
|
inline |
ReSt parameter (const. version)
References oomph::GeneralisedElement::external_data_pt(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReSt_pt, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReynoldsStrouhal_is_stored_as_external_data, and oomph::Data::value_pt().
|
inline |
Pointer to ReSt number (can only assign to private member data)
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReSt_pt.
|
inline |
Pointer to Strouhal parameter (const. version)
References oomph::GeneralisedElement::external_data_pt(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReSt_pt, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReynoldsStrouhal_is_stored_as_external_data, and oomph::Data::value_pt().
|
inlinevirtual |
Name of the i-th scalar field. Default implementation returns V1 for the first one, V2 for the second etc. Can (should!) be overloaded with more meaningful names in specific elements.
Reimplemented from oomph::FiniteElement.
References DIM, i, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and oomph::StringConversion::to_string().
|
inlinevirtual |
Write values of the i_field-th scalar field at the plot points. Needs to be implemented for each new specific element type.
Reimplemented from oomph::FiniteElement.
References DIM, ProblemParameters::exact_soln(), oomph::FiniteElement::get_s_plot(), i, oomph::FiniteElement::interpolated_x(), j, oomph::FiniteElement::nplot_points_paraview(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and s.
|
inlinevirtual |
Write values of the i-th scalar field at the plot points. Needs to be implemented for each new specific element type.
Reimplemented from oomph::FiniteElement.
References DIM, oomph::FiniteElement::get_s_plot(), i, oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_p_nst(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_u_nst(), oomph::FiniteElement::nplot_points_paraview(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and s.
|
protectedpure virtual |
DRAIG: Fill in later...
Implemented in oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >, oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >, and oomph::QTaylorHoodMixedOrderSpaceTimeElement< 2 >.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::dinterpolated_u_nst_ddata(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_u_nst().
|
inline |
Access function for the source-function pointer for pressure advection diffusion (used for validation only).
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Press_adv_diff_source_fct_pt.
|
inline |
Access function for the source-function pointer for pressure advection diffusion (used for validation only). Const version.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Press_adv_diff_source_fct_pt.
|
inline |
Access function for the source-function pointer.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Source_fct_pt.
|
inline |
Access function for the source-function pointer. Const version.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Source_fct_pt.
|
inline |
Function that tells us whether the period is stored as external data.
References oomph::GeneralisedElement::add_external_data(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::ReynoldsStrouhal_is_stored_as_external_data.
Referenced by oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::further_build().
void oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::strain_rate | ( | const Vector< double > & | s, |
DenseMatrix< double > & | strain_rate | ||
) | const |
Strain-rate tensor: 1/2 (du_i/dx_j+du_j/dx_i)
Get strain-rate tensor: (1/2)*(du_i/dx_j+du_j/dx_i)
References DIM, i, oomph::DenseMatrix< T >::initialise(), j, oomph::DenseMatrix< T >::ncol(), oomph::DenseMatrix< T >::nrow(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and s.
Referenced by oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::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 DIM, i, OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::get_Z2_flux(), oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >::identify_load_data(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_du_dt_nst(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::interpolated_u_nst(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::u_nst().
|
inline |
Velocity i at local node n. Uses suitably interpolated value for hanging nodes. The use of u_index_nst() permits the use of this element as the basis for multi-physics elements. The default is to assume that the i-th velocity component is stored at the i-th location of the node
References i, n, oomph::FiniteElement::nodal_value(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::u_index_nst().
|
inline |
Velocity i at local node n at timestep t (t=0: present; t>0: previous). Uses suitably interpolated value for hanging nodes.
References i, n, oomph::FiniteElement::nodal_value(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, plotPSD::t, and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::u_index_nst().
|
inline |
Viscosity ratio for element: Element's viscosity relative to the viscosity used in the definition of the Reynolds number
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Viscosity_Ratio_pt.
|
inline |
Pointer to Viscosity Ratio.
References oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::Viscosity_Ratio_pt.
|
protected |
Boolean flag to indicate if ALE formulation is disabled when time-derivatives are computed. Only set to true if you're sure that the mesh is stationary.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::disable_ALE(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::enable_ALE(), and oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::further_build().
|
protected |
|
staticprivate |
Static default value for the gravity vector.
Navier-Stokes equations default gravity vector.
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::SpaceTimeNavierStokesMixedOrderEquations().
|
staticprivate |
Navier-Stokes equations static data.
Static default value for the physical constants (all initialised to zero)
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::SpaceTimeNavierStokesMixedOrderEquations().
|
staticprivate |
Navier-Stokes equations static data.
Static default value for the physical ratios (all are initialised to one)
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::SpaceTimeNavierStokesMixedOrderEquations().
|
protected |
Pointer to the density ratio (relative to the density used in the definition of the Reynolds number)
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::density_ratio(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::density_ratio_pt(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::further_build(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::SpaceTimeNavierStokesMixedOrderEquations().
|
protected |
Pointer to global gravity Vector.
Referenced by oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::further_build(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::g(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::g_pt(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::SpaceTimeNavierStokesMixedOrderEquations().
|
static |
Navier-Stokes equations static data.
Vector to decide whether the stress-divergence form is used or not N.B. This needs to be public so that the intel compiler gets things correct somehow the access function messes things up when going to refineable Navier-Stokes
|
protected |
Global eqn number of pressure dof that's pinned in pressure advection diffusion problem (defaults to -1)
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::pinned_fp_pressure_eqn().
|
protected |
Pointer to source function pressure advection diffusion equation (only to be used during validation)
Referenced by oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::source_fct_for_pressure_adv_diff().
|
protected |
Storage for FaceElements that apply Robin BC for pressure adv diff equation used in Fp preconditioner.
Referenced by oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >::build_fp_press_adv_diff_robin_bc_element(), oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >::build_fp_press_adv_diff_robin_bc_element(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::delete_pressure_advection_diffusion_robin_elements(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::output_pressure_advection_diffusion_robin_elements().
|
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 oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::p_nodal_index_nst().
|
protected |
Pointer to global Reynolds number.
Referenced by oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::further_build(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::re(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::re_pt(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::SpaceTimeNavierStokesMixedOrderEquations().
|
protected |
Pointer to global Reynolds number x inverse Froude number (= Bond number / Capillary number)
Referenced by oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::further_build(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::re_invfr(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::re_invfr_pt(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::SpaceTimeNavierStokesMixedOrderEquations().
|
protected |
Pointer to global Reynolds number x Strouhal number (=Womersley)
Referenced by oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::further_build(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::re_st(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::re_st_pt(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::SpaceTimeNavierStokesMixedOrderEquations().
|
protected |
Boolean to indicate whether or not the Strouhal value is stored as external data (if it's also an unknown of the problem)
Referenced by oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::further_build(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::is_reynolds_strouhal_stored_as_external_data(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::re_st(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::re_st_pt(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::SpaceTimeNavierStokesMixedOrderEquations(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::store_reynolds_strouhal_as_external_data().
|
protected |
Pointer to volumetric source function.
Referenced by oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::further_build(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_source_nst(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::source_fct_pt().
|
protected |
Pointer to the viscosity ratio (relative to the viscosity used in the definition of the Reynolds number)
Referenced by oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::further_build(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::SpaceTimeNavierStokesMixedOrderEquations(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::viscosity_ratio(), and oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::viscosity_ratio_pt().