![]() |
|
#include <boussinesq_elements.h>
Public Member Functions | |
BuoyantQCrouzeixRaviartElement () | |
void | unfix_pressure (const unsigned &p_dof) |
Unpin p_dof-th pressure dof. More... | |
unsigned | required_nvalue (const unsigned &n) const |
const double & | ra () const |
Access function for the Rayleigh number (const version) More... | |
double *& | ra_pt () |
Access function for the pointer to the Rayleigh number. More... | |
void | disable_ALE () |
Final override for disable ALE. More... | |
void | enable_ALE () |
Final override for enable ALE. More... | |
unsigned | nscalar_paraview () const |
void | scalar_value_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const |
std::string | scalar_name_paraview (const unsigned &i) const |
void | output (std::ostream &outfile) |
Overload the standard output function with the broken default. More... | |
void | output (std::ostream &outfile, const unsigned &nplot) |
void | output (FILE *file_pt) |
C-style output function: Broken default. More... | |
void | output (FILE *file_pt, const unsigned &n_plot) |
C-style output function: Broken default. More... | |
void | output_fct (std::ostream &outfile, const unsigned &Nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) |
Output function for an exact solution: Broken default. More... | |
void | output_fct (std::ostream &outfile, const unsigned &Nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) |
unsigned | u_index_adv_diff () const |
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 | get_wind_adv_diff (const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &wind) const |
void | get_body_force_nst (const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &result) |
void | fill_in_contribution_to_residuals (Vector< double > &residuals) |
void | fill_in_off_diagonal_jacobian_blocks_analytic (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
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) |
![]() | |
QAdvectionDiffusionElement () | |
QAdvectionDiffusionElement (const QAdvectionDiffusionElement< DIM, NNODE_1D > &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const QAdvectionDiffusionElement< DIM, NNODE_1D > &)=delete |
Broken assignment operator. More... | |
unsigned | required_nvalue (const unsigned &n) 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 | output_fct (std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) |
void | output_fct (std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) |
![]() | |
AdvectionDiffusionEquations () | |
AdvectionDiffusionEquations (const AdvectionDiffusionEquations &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const AdvectionDiffusionEquations &)=delete |
Broken assignment operator. More... | |
double | du_dt_adv_diff (const unsigned &n) const |
AdvectionDiffusionSourceFctPt & | source_fct_pt () |
Access function: Pointer to source function. More... | |
AdvectionDiffusionSourceFctPt | source_fct_pt () const |
Access function: Pointer to source function. Const version. More... | |
AdvectionDiffusionWindFctPt & | wind_fct_pt () |
Access function: Pointer to wind function. More... | |
AdvectionDiffusionWindFctPt | wind_fct_pt () const |
Access function: Pointer to wind function. Const version. More... | |
const double & | pe () const |
Peclet number. More... | |
double *& | pe_pt () |
Pointer to Peclet number. More... | |
const double & | pe_st () const |
Peclet number multiplied by Strouhal number. More... | |
double *& | pe_st_pt () |
Pointer to Peclet number multipled by Strouha number. More... | |
virtual void | get_source_adv_diff (const unsigned &ipt, const Vector< double > &x, double &source) const |
void | get_flux (const Vector< double > &s, Vector< double > &flux) const |
Get flux: \(\mbox{flux}[i] = \mbox{d}u / \mbox{d}x_i \). More... | |
double | interpolated_u_adv_diff (const Vector< double > &s) const |
Return FE representation of function value u(s) at local coordinate s. More... | |
virtual void | dinterpolated_u_adv_diff_ddata (const Vector< double > &s, Vector< double > &du_ddata, Vector< unsigned > &global_eqn_number) |
unsigned | self_test () |
Self-test: Return 0 for OK. More... | |
![]() | |
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 |
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_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 | 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) |
![]() | |
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 |
![]() | |
QCrouzeixRaviartElement () | |
Constructor, there are DIM+1 internal values (for the pressure) More... | |
void | pshape_nst (const Vector< double > &s, Shape &psi) const |
Pressure shape functions at local coordinate s. More... | |
void | pshape_nst (const Vector< double > &s, Shape &psi, Shape &test) const |
Pressure shape and test functions at local coordinte s. More... | |
double | p_nst (const unsigned &i) const |
double | p_nst (const unsigned &t, const unsigned &i) const |
unsigned | npres_nst () const |
Return number of pressure values. More... | |
double | dpshape_and_dptest_eulerian_nst (const Vector< double > &s, Shape &ppsi, DShape &dppsidx, Shape &ptest, DShape &dptestdx) const |
int | p_local_eqn (const unsigned &n) const |
Return the local equation numbers for the pressure values. More... | |
void | fix_pressure (const unsigned &p_dof, const double &p_value) |
Pin p_dof-th pressure dof and set it to value specified by p_value. More... | |
void | build_fp_press_adv_diff_robin_bc_element (const unsigned &face_index) |
void | identify_load_data (std::set< std::pair< Data *, unsigned >> &paired_load_data) |
void | identify_pressure_data (std::set< std::pair< Data *, unsigned >> &paired_pressure_data) |
void | output (std::ostream &outfile) |
Redirect output to NavierStokesEquations output. More... | |
void | output (std::ostream &outfile, const unsigned &nplot) |
Redirect output to NavierStokesEquations output. More... | |
void | output (FILE *file_pt) |
Redirect output to NavierStokesEquations output. More... | |
void | output (FILE *file_pt, const unsigned &nplot) |
Redirect output to NavierStokesEquations output. More... | |
void | full_output (std::ostream &outfile) |
void | full_output (std::ostream &outfile, const unsigned &nplot) |
unsigned | ndof_types () const |
void | get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const |
void | pshape_nst (const Vector< double > &s, Shape &psi) const |
double | dpshape_and_dptest_eulerian_nst (const Vector< double > &s, Shape &ppsi, DShape &dppsidx, Shape &ptest, DShape &dptestdx) const |
void | pshape_nst (const Vector< double > &s, Shape &psi) const |
double | dpshape_and_dptest_eulerian_nst (const Vector< double > &s, Shape &ppsi, DShape &dppsidx, Shape &ptest, DShape &dptestdx) const |
![]() | |
NavierStokesEquations () | |
const double & | re () const |
Reynolds number. More... | |
const double & | re_st () const |
Product of Reynolds and Strouhal number (=Womersley number) More... | |
double *& | re_pt () |
Pointer to Reynolds number. 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... | |
NavierStokesPressureAdvDiffSourceFctPt & | source_fct_for_pressure_adv_diff () |
NavierStokesPressureAdvDiffSourceFctPt | source_fct_for_pressure_adv_diff () const |
int & | pinned_fp_pressure_eqn () |
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 | du_dt_nst (const unsigned &n, const unsigned &i) const |
void | disable_ALE () |
void | enable_ALE () |
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 scalar vorticity at local coordinate s (2D) 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 | 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_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 (double &norm) |
Compute norm of solution: square of the L2 norm of the velocities. More... | |
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::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) |
Compute the element's residual Vector. More... | |
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... | |
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 > &veloc) 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... | |
double | interpolated_dudx_nst (const Vector< double > &s, const unsigned &i, const unsigned &j) const |
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 |
void | get_vorticity (const Vector< double > &s, Vector< double > &vorticity) const |
Compute 3D vorticity vector at local coordinate s. More... | |
![]() | |
FSIFluidElement () | |
Constructor. More... | |
FSIFluidElement (const FSIFluidElement &)=delete | |
Broken copy constructor. More... | |
void | operator= (const FSIFluidElement &)=delete |
Broken assignment operator. More... | |
![]() | |
TemplateFreeNavierStokesEquationsBase () | |
Constructor (empty) More... | |
virtual | ~TemplateFreeNavierStokesEquationsBase () |
Virtual destructor (empty) More... | |
![]() | |
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... | |
Private Member Functions | |
double | Default_Physical_Constant_Value |
Set the default physical value to be zero. More... | |
double | Default_Physical_Constant_Value |
Private Attributes | |
double * | Ra_pt |
Pointer to a private data member, the Rayleigh number. More... | |
Static Private Attributes | |
static double | Default_Physical_Constant_Value |
The static default value of the Rayleigh number. More... | |
Additional Inherited Members | |
![]() | |
typedef void(* | AdvectionDiffusionSourceFctPt) (const Vector< double > &x, double &f) |
typedef void(* | AdvectionDiffusionWindFctPt) (const Vector< double > &x, Vector< double > &wind) |
![]() | |
typedef void(* | SteadyExactSolutionFctPt) (const Vector< double > &, Vector< double > &) |
typedef void(* | UnsteadyExactSolutionFctPt) (const double &, const Vector< double > &, Vector< double > &) |
![]() | |
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 double(* | NavierStokesPressureAdvDiffSourceFctPt) (const Vector< double > &x) |
![]() | |
static double | Tolerance_for_singular_jacobian = 1.0e-16 |
Tolerance below which the jacobian is considered singular. More... | |
static bool | Accept_negative_jacobian = false |
static bool | Suppress_output_while_checking_for_inverted_elements |
![]() | |
static bool | Suppress_warning_about_repeated_internal_data |
static bool | Suppress_warning_about_repeated_external_data = true |
static double | Default_fd_jacobian_step = 1.0e-8 |
![]() | |
static Vector< double > | Gamma |
Vector to decide whether the stress-divergence form is used or not. More... | |
![]() | |
double | dshape_and_dtest_eulerian_adv_diff (const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const |
double | dshape_and_dtest_eulerian_at_knot_adv_diff (const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const |
![]() | |
virtual void | fill_in_generic_residual_contribution_adv_diff (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix, unsigned flag) |
![]() | |
virtual void | assemble_local_to_eulerian_jacobian (const DShape &dpsids, DenseMatrix< double > &jacobian) const |
virtual void | assemble_local_to_eulerian_jacobian2 (const DShape &d2psids, DenseMatrix< double > &jacobian2) const |
virtual void | assemble_eulerian_base_vectors (const DShape &dpsids, DenseMatrix< double > &interpolated_G) const |
template<unsigned DIM> | |
double | invert_jacobian (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
virtual double | invert_jacobian_mapping (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
virtual double | local_to_eulerian_mapping (const DShape &dpsids, DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
double | local_to_eulerian_mapping (const DShape &dpsids, DenseMatrix< double > &inverse_jacobian) const |
virtual double | local_to_eulerian_mapping_diagonal (const DShape &dpsids, DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
virtual void | dJ_eulerian_dnodal_coordinates (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
template<unsigned DIM> | |
void | dJ_eulerian_dnodal_coordinates_templated_helper (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
virtual void | d_dshape_eulerian_dnodal_coordinates (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
template<unsigned DIM> | |
void | d_dshape_eulerian_dnodal_coordinates_templated_helper (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
virtual void | transform_derivatives (const DenseMatrix< double > &inverse_jacobian, DShape &dbasis) const |
void | transform_derivatives_diagonal (const DenseMatrix< double > &inverse_jacobian, DShape &dbasis) const |
virtual void | transform_second_derivatives (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<unsigned DIM> | |
void | transform_second_derivatives_template (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<unsigned DIM> | |
void | transform_second_derivatives_diagonal (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
virtual void | fill_in_jacobian_from_nodal_by_fd (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
void | fill_in_jacobian_from_nodal_by_fd (DenseMatrix< double > &jacobian) |
virtual void | update_before_nodal_fd () |
virtual void | reset_after_nodal_fd () |
virtual void | update_in_nodal_fd (const unsigned &i) |
virtual void | reset_in_nodal_fd (const unsigned &i) |
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) |
![]() | |
double | dshape_and_dtest_eulerian_nst (const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const |
double | dshape_and_dtest_eulerian_at_knot_nst (const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const |
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 |
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 |
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 |
![]() | |
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) |
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, unsigned flag) |
virtual void | fill_in_generic_pressure_advection_diffusion_contribution_nst (Vector< double > &residuals, DenseMatrix< double > &jacobian, 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, unsigned flag) |
void | fill_in_contribution_to_hessian_vector_products (Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product) |
![]() | |
double * | Pe_pt |
Pointer to global Peclet number. More... | |
double * | PeSt_pt |
Pointer to global Peclet number multiplied by Strouhal number. More... | |
AdvectionDiffusionSourceFctPt | Source_fct_pt |
Pointer to source function: More... | |
AdvectionDiffusionWindFctPt | Wind_fct_pt |
Pointer to wind function: More... | |
bool | ALE_is_disabled |
![]() | |
MacroElement * | Macro_elem_pt |
Pointer to the element's macro element (NULL by default) More... | |
![]() | |
unsigned | NLagrangian |
Number of Lagrangian (intrinsic) coordinates. More... | |
unsigned | Ndim |
Number of Eulerian coordinates. More... | |
TimeStepper * | Geom_object_time_stepper_pt |
![]() | |
unsigned | P_nst_internal_index |
![]() | |
double * | Viscosity_Ratio_pt |
double * | Density_Ratio_pt |
double * | Re_pt |
Pointer to global Reynolds number. More... | |
double * | ReSt_pt |
Pointer to global Reynolds number x Strouhal number (=Womersley) More... | |
double * | 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... | |
NavierStokesPressureAdvDiffSourceFctPt | Press_adv_diff_source_fct_pt |
bool | ALE_is_disabled |
Vector< FpPressureAdvDiffRobinBCElementBase * > | Pressure_advection_diffusion_robin_element_pt |
int | Pinned_fp_pressure_eqn |
![]() | |
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 that solves the Boussinesq approximation of the Navier–Stokes and energy equations by coupling two pre-existing classes. The QAdvectionDiffusionElement with bi-quadratic interpolation for the scalar variable (temperature) and QCrouzeixRaviartElement which solves the Navier–Stokes equations using bi-quadratic interpolation for the velocities and a discontinuous bi-linear interpolation for the pressure. Note that we are free to choose the order in which we store the variables at the nodes. In this case we choose to store the variables in the order fluid velocities followed by temperature. We must, therefore, overload the function AdvectionDiffusionEquations<DIM>::u_index_adv_diff() to indicate that the temperature is stored at the DIM-th position not the 0-th. We do not need to overload the corresponding function in the NavierStokesEquations<DIM> class because the velocities are stored first.
|
inline |
Constructor: call the underlying constructors and initialise the pointer to the Rayleigh number to point to the default value of 0.0.
References oomph::BuoyantQCrouzeixRaviartElement< DIM >::Default_Physical_Constant_Value, and oomph::BuoyantQCrouzeixRaviartElement< DIM >::Ra_pt.
|
inlinevirtual |
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 Call the broken default
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::FiniteElement::compute_error(), and calibrate::error.
|
inlinevirtual |
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 Call the broken default
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::FiniteElement::compute_error(), and calibrate::error.
|
private |
Set the default physical value to be zero.
|
private |
|
inlinevirtual |
Final override for disable ALE.
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::AdvectionDiffusionEquations< DIM >::disable_ALE(), and oomph::NavierStokesEquations< DIM >::disable_ALE().
|
inlinevirtual |
Final override for enable ALE.
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::AdvectionDiffusionEquations< DIM >::enable_ALE(), and oomph::NavierStokesEquations< DIM >::enable_ALE().
|
inlinevirtual |
Compute the element's residual Vector and the Jacobian matrix. Use analytic expressions for the off-diagonal blocks
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::AdvectionDiffusionEquations< DIM >::fill_in_contribution_to_jacobian(), oomph::NavierStokesEquations< DIM >::fill_in_contribution_to_jacobian(), and oomph::BuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_analytic().
|
inlinevirtual |
Add the element's contribution to its residuals vector, jacobian matrix and mass matrix
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References DIM, and oomph::BuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_analytic().
|
inlinevirtual |
Calculate the element's contribution to the residual vector. Recall that fill_in_* functions MUST NOT initialise the entries in the vector to zero. This allows us to call the fill_in_* functions of the constituent single-physics elements sequentially, without wiping out any previously computed entries.
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::AdvectionDiffusionEquations< DIM >::fill_in_contribution_to_residuals(), and oomph::NavierStokesEquations< DIM >::fill_in_contribution_to_residuals().
|
inline |
Helper function to get the off-diagonal blocks of the Jacobian matrix analytically
References DIM, oomph::QCrouzeixRaviartElement< DIM >::dshape_and_dtest_eulerian_at_knot_nst(), oomph::NavierStokesEquations< DIM >::g(), i, oomph::FiniteElement::integral_pt(), J, j, oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_local_eqn(), oomph::Integral::nweight(), Global_Parameters::Pe, oomph::AdvectionDiffusionEquations< DIM >::pe(), Global_Parameters::Ra, oomph::BuoyantQCrouzeixRaviartElement< DIM >::ra(), oomph::FiniteElement::raw_nodal_value(), oomph::BuoyantQCrouzeixRaviartElement< DIM >::u_index_adv_diff(), oomph::NavierStokesEquations< DIM >::u_index_nst(), w, oomph::QuadTreeNames::W, and oomph::Integral::weight().
Referenced by oomph::BuoyantQCrouzeixRaviartElement< DIM >::fill_in_contribution_to_jacobian(), and oomph::BuoyantQCrouzeixRaviartElement< DIM >::fill_in_contribution_to_jacobian_and_mass_matrix().
|
inlinevirtual |
Overload the body force in the Navier-Stokes equations This provides the coupling from the advection-diffusion equations to the Navier–Stokes equations, the body force is the temperature multiplied by the Rayleigh number acting in the direction opposite to gravity.
Reimplemented from oomph::NavierStokesEquations< DIM >.
References DIM, Gravity::gravity(), i, oomph::AdvectionDiffusionEquations< DIM >::interpolated_u_adv_diff(), and oomph::BuoyantQCrouzeixRaviartElement< DIM >::ra().
|
inlinevirtual |
Overload the wind function in the advection-diffusion equations. This provides the coupling from the Navier–Stokes equations to the advection-diffusion equations because the wind is the fluid velocity.
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::NavierStokesEquations< DIM >::interpolated_u_nst().
|
inlinevirtual |
Number of scalars/fields output by this element. Broken virtual. Needs to be implemented for each new specific element type. Temporary dummy
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
inlinevirtual |
C-style output function: Broken default.
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::FiniteElement::output().
|
inlinevirtual |
C-style output function: Broken default.
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::FiniteElement::output().
|
inlinevirtual |
Overload the standard output function with the broken default.
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::FiniteElement::output().
|
inlinevirtual |
Output function: Output x, y, u, v, p, theta at Nplot^DIM plot points
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References DIM, oomph::FiniteElement::get_s_plot(), i, oomph::NavierStokesEquations< DIM >::interpolated_p_nst(), oomph::AdvectionDiffusionEquations< DIM >::interpolated_u_adv_diff(), oomph::NavierStokesEquations< DIM >::interpolated_u_nst(), oomph::FiniteElement::interpolated_x(), oomph::FiniteElement::nplot_points(), s, oomph::FiniteElement::tecplot_zone_string(), and oomph::FiniteElement::write_tecplot_zone_footer().
|
inlinevirtual |
Output function for a time-dependent exact solution: Broken default.
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::FiniteElement::output_fct().
|
inlinevirtual |
Output function for an exact solution: Broken default.
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References oomph::FiniteElement::output_fct().
|
inline |
Access function for the Rayleigh number (const version)
References oomph::BuoyantQCrouzeixRaviartElement< DIM >::Ra_pt.
Referenced by oomph::BuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_analytic(), and oomph::BuoyantQCrouzeixRaviartElement< DIM >::get_body_force_nst().
|
inline |
Access function for the pointer to the Rayleigh number.
References oomph::BuoyantQCrouzeixRaviartElement< DIM >::Ra_pt.
|
inlinevirtual |
The required number of values stored at the nodes is the sum of the required values of the two single-physics elements. Note that this step is generic for any multi-physics element of this type.
Reimplemented from oomph::QCrouzeixRaviartElement< DIM >.
References n.
|
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.
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References i, and oomph::StringConversion::to_string().
|
inlinevirtual |
Write values of the i-th scalar field at the plot points. Broken virtual. Needs to be implemented for each new specific element type. Temporary dummy
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
inlinevirtual |
Overload the index at which the temperature variable is stored. We choose to store it after the fluid velocities.
Reimplemented from oomph::AdvectionDiffusionEquations< DIM >.
References DIM.
Referenced by oomph::BuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_analytic().
|
inline |
Unpin p_dof-th pressure dof.
References oomph::GeneralisedElement::internal_data_pt(), oomph::QCrouzeixRaviartElement< DIM >::P_nst_internal_index, and oomph::Data::unpin().
|
staticprivate |
The static default value of the Rayleigh number.
Referenced by oomph::BuoyantQCrouzeixRaviartElement< DIM >::BuoyantQCrouzeixRaviartElement().
|
private |
Pointer to a private data member, the Rayleigh number.
Referenced by oomph::BuoyantQCrouzeixRaviartElement< DIM >::BuoyantQCrouzeixRaviartElement(), oomph::BuoyantQCrouzeixRaviartElement< DIM >::ra(), and oomph::BuoyantQCrouzeixRaviartElement< DIM >::ra_pt().