![]() |
|
#include <vorticity_smoother.h>
Public Types | |
typedef void(* | ExactVorticityFctPt) (const Vector< double > &x, Vector< Vector< double >> &vort_and_derivs) |
Overloaded element that allows projection of vorticity.
typedef void(* oomph::VorticitySmootherElement< ELEMENT >::ExactVorticityFctPt) (const Vector< double > &x, Vector< Vector< double >> &vort_and_derivs) |
Typedef for pointer to function that specifies the exact vorticity and derivatives (for validation)
|
inline |
Constructor.
References oomph::VorticitySmootherElement< ELEMENT >::Exact_vorticity_fct_pt, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_recoverable_velocity_derivatives, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_recoverable_vorticity_derivatives, oomph::VorticityRecoveryHelpers::RecoveryHelper::maximum_order_of_velocity_derivative(), oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_velocity_derivative, oomph::VorticityRecoveryHelpers::RecoveryHelper::maximum_order_of_vorticity_derivative(), oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_vorticity_derivative, oomph::VorticitySmootherElement< ELEMENT >::N_dim, oomph::VorticityRecoveryHelpers::RecoveryHelper::ncont_interpolated_values(), oomph::VorticitySmootherElement< ELEMENT >::Number_of_values_per_field, oomph::VorticityRecoveryHelpers::Recovery_helper, and oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index.
|
inline |
Helper function to create a container for the vorticity and its partial derivatives. If the user wishes to output everything then this also creates space for the velocity derivatives too. This function has been written to allow for generalisation of the storage without (hopefully!) affecting too much
References i, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_velocity_derivative, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_vorticity_derivative, and oomph::VorticitySmootherElement< ELEMENT >::npartial_derivative().
Referenced by oomph::VorticitySmootherElement< ELEMENT >::output(), oomph::VorticitySmootherElement< ELEMENT >::output_analytical_veloc_and_vorticity(), oomph::VorticitySmootherElement< ELEMENT >::output_smoothed_vorticity(), oomph::VorticitySmootherElement< ELEMENT >::scalar_value_paraview(), and oomph::VorticitySmootherElement< ELEMENT >::vorticity_error_squared().
|
inline |
Access function: Pointer to function that specifies exact vorticity and derivatives (for validation).
References oomph::VorticitySmootherElement< ELEMENT >::Exact_vorticity_fct_pt.
|
inline |
Access function: Pointer to function that specifies exact vorticity and derivatives (for validation) – const version
References oomph::VorticitySmootherElement< ELEMENT >::Exact_vorticity_fct_pt.
|
inline |
Get the function value u in Vector. Note: Given the generality of the interface (this function is usually called from black-box documentation or interpolation routines), the values Vector sets its own size in here.
References i, oomph::VorticitySmootherElement< ELEMENT >::N_dim, oomph::VorticitySmootherElement< ELEMENT >::Number_of_values_per_field, s, oomph::OneDimLagrange::shape(), and plotPSD::t.
|
inline |
Get the function value u in Vector. Note: Given the generality of the interface (this function is usually called from black-box documentation or interpolation routines), the values Vector sets its own size in here.
References s, and plotPSD::t.
|
inline |
The maximum order of velocity derivative that can be recovered. This is set in the constructor and should NOT be changed during the running of the code. As such, a set...() function is not provided. DRAIG: Leave get_ prefix?
References oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_recoverable_velocity_derivatives.
|
inline |
The maximum order of vorticity derivative that can be recovered. This is set in the constructor and should NOT be changed during the running of the code. As such, a set...() function is not provided. DRAIG: Leave get_ prefix?
References oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_recoverable_vorticity_derivatives.
|
inline |
The maximum order of derivatives calculated in the velocity recovery. Note, this value can only be set through the namespace VorticityRecoveryHelpers. DRAIG: Leave get_ prefix?
References oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_velocity_derivative.
|
inline |
The maximum order of derivatives calculated in the vorticity recovery. Note, this value can only be set through the namespace VorticityRecoveryHelpers. DRAIG: Leave get_ prefix?
References oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_vorticity_derivative.
|
inline |
|
inline |
Get raw derivative of velocity.
References oomph::Vector< _Tp >::initialise(), j, and s.
|
inline |
Get raw derivative of smoothed vorticity.
References oomph::oomph_info, s, and oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index.
|
inline |
Get raw derivative of smoothed vorticity.
References oomph::Vector< _Tp >::initialise(), j, s, and oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index.
|
inline |
Get raw derivative of smoothed derivative vorticity [0]: d^2/dx^2, [1]: d^2/dxdy, [2]: d^2/dy^2
References oomph::oomph_info, s, and oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index.
|
inline |
Get raw derivative of smoothed derivative vorticity.
References oomph::Vector< _Tp >::initialise(), j, s, and oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index.
|
inline |
Get raw derivative of smoothed derivative vorticity [0]: d^3/dx^3, [1]: d^3/dx^2dy, [2]: d^3/dxdy^2, [3]: d^3/dy^3,
References oomph::oomph_info, s, and oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index.
|
inline |
Get raw derivative of smoothed derivative vorticity [0]: d^3/dx^3, [1]: d^3/dx^2dy, [2]: d^3/dxdy^2, [3]: d^3/dy^3
References oomph::Vector< _Tp >::initialise(), s, and oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index.
|
inline |
Number of continuously interpolated values:
References oomph::VorticitySmootherElement< ELEMENT >::Number_of_values_per_field.
Referenced by oomph::VorticitySmootherElement< ELEMENT >::nscalar_paraview(), and oomph::VorticitySmootherElement< ELEMENT >::scalar_value_paraview().
|
inline |
Call the function written in VorticityRecoveryHelpers.
References n, oomph::VorticityRecoveryHelpers::RecoveryHelper::npartial_derivative(), and oomph::VorticityRecoveryHelpers::Recovery_helper.
Referenced by oomph::VorticitySmootherElement< ELEMENT >::create_container_for_vorticity_and_derivatives(), oomph::VorticitySmootherElement< ELEMENT >::nvelocity_derivatives_to_recover(), oomph::VorticitySmootherElement< ELEMENT >::nvorticity_derivatives_to_recover(), oomph::VorticitySmootherElement< ELEMENT >::recovered_dof_to_container_id(), oomph::VorticitySmootherElement< ELEMENT >::stored_dof_to_recoverable_dof(), and oomph::VorticitySmootherElement< ELEMENT >::vorticity_dof_to_container_id().
|
inline |
Number of scalars/fields output by this element. Re-implements broken virtual function in base class.
References oomph::VorticitySmootherElement< ELEMENT >::ncont_interpolated_values().
Referenced by oomph::VorticitySmootherElement< ELEMENT >::scalar_name_paraview(), and oomph::VorticitySmootherElement< ELEMENT >::scalar_value_paraview().
|
inline |
The number of derivatives calculated in the velocity recovery. This does NOT include the zeroth derivatives as they are not "recovered"
References i, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_velocity_derivative, and oomph::VorticitySmootherElement< ELEMENT >::npartial_derivative().
Referenced by oomph::VorticitySmootherElement< ELEMENT >::vorticity_error_squared().
|
inline |
The number of terms calculated in the vorticity recovery. Also includes the zeroth derivative, i.e. the vorticity itself
References i, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_vorticity_derivative, and oomph::VorticitySmootherElement< ELEMENT >::npartial_derivative().
Referenced by oomph::VorticitySmootherElement< ELEMENT >::vorticity_error_squared().
|
inline |
Overloaded output function: Output velocity, pressure and the smoothed vorticity
References oomph::VorticitySmootherElement< ELEMENT >::create_container_for_vorticity_and_derivatives(), i, j, oomph::VorticitySmootherElement< ELEMENT >::N_dim, s, oomph::OneDimLagrange::shape(), oomph::VorticitySmootherElement< ELEMENT >::vorticity_and_its_derivs(), and plotDoE::x.
|
inline |
Output exact velocity, vorticity, derivatives and indicator based on functions specified by two function pointers
References oomph::VorticitySmootherElement< ELEMENT >::create_container_for_vorticity_and_derivatives(), oomph::VorticitySmootherElement< ELEMENT >::Exact_vorticity_fct_pt, i, j, oomph::VorticitySmootherElement< ELEMENT >::N_dim, s, and plotDoE::x.
|
inline |
Output the velocity, smoothed vorticity and derivatives.
References oomph::VorticitySmootherElement< ELEMENT >::create_container_for_vorticity_and_derivatives(), i, j, oomph::VorticitySmootherElement< ELEMENT >::N_dim, s, Jeffery_Solution::velocity(), oomph::VorticitySmootherElement< ELEMENT >::vorticity_and_its_derivs(), and plotDoE::x.
|
inline |
Pin all smoothed vorticity quantities.
References i, j, oomph::VorticitySmootherElement< ELEMENT >::Number_of_values_per_field, oomph::Data::pin(), and oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index.
|
inline |
Helper function that, given the local dof number of the i-th vorticity or velocity derivative, returns the index in the container that stores the corresponding value. Note 1: this function goes hand-in-hand with create_container_for_vorticity_and_derivatives() Note 2: The input to this function is the i associated with the STORED nodal dof value. For example, if we're only recovering the velocity derivatives then i=0 is associated with du/dx
References i, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_velocity_derivative, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_vorticity_derivative, oomph::VorticitySmootherElement< ELEMENT >::npartial_derivative(), OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by oomph::VorticitySmootherElement< ELEMENT >::scalar_value_paraview(), oomph::VorticitySmootherElement< ELEMENT >::stored_dof_to_recoverable_dof(), and oomph::VorticitySmootherElement< ELEMENT >::vorticity_error_squared().
|
inline |
Number of values required at local node n. In order to simplify matters, we allocate storage for pressure variables at all the nodes and then pin those that are not used.
References oomph::VorticitySmootherElement< ELEMENT >::Number_of_values_per_field.
|
inline |
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.
References i, oomph::VorticitySmootherElement< ELEMENT >::N_dim, oomph::VorticitySmootherElement< ELEMENT >::nscalar_paraview(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index, oomph::VorticitySmootherElement< ELEMENT >::stored_dof_to_recoverable_dof(), and oomph::StringConversion::to_string().
|
inline |
Write values of the i-th scalar field at the plot points. Needs to be implemented for each new specific element type.
References oomph::VorticitySmootherElement< ELEMENT >::create_container_for_vorticity_and_derivatives(), i, oomph::VorticitySmootherElement< ELEMENT >::N_dim, oomph::VorticitySmootherElement< ELEMENT >::ncont_interpolated_values(), oomph::VorticitySmootherElement< ELEMENT >::nscalar_paraview(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::VorticitySmootherElement< ELEMENT >::recovered_dof_to_container_id(), s, and oomph::VorticitySmootherElement< ELEMENT >::vorticity_and_its_derivs().
|
inline |
Index of smoothed vorticity – followed by derivatives.
References oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index.
|
inline |
Given the STORED dof number, this function returns the global recovered number. For example, if we only want to recover the velocity derivatives then the stored dof number of du/dy is 1 (as 0 is associated with du/dx). The global recovered number is 11 (as there are currently 10 vorticity derivatives that can be recovered and du/dy is the second velocity derivative we can recover).
References i, j, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_recoverable_vorticity_derivatives, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_vorticity_derivative, oomph::VorticitySmootherElement< ELEMENT >::N_dim, oomph::VorticitySmootherElement< ELEMENT >::npartial_derivative(), and oomph::VorticitySmootherElement< ELEMENT >::recovered_dof_to_container_id().
Referenced by oomph::VorticitySmootherElement< ELEMENT >::scalar_name_paraview().
|
inline |
Compute smoothed vorticity and its derivatives.
References i, j, oomph::OneDimLagrange::shape(), and oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index.
Referenced by oomph::VorticitySmootherElement< ELEMENT >::output(), oomph::VorticitySmootherElement< ELEMENT >::output_smoothed_vorticity(), and oomph::VorticitySmootherElement< ELEMENT >::scalar_value_paraview().
|
inline |
Helper function that, given the local dof number of the i-th vorticity or velocity derivative, returns the index in the container that stores the corresponding value. Note 1: this function goes hand-in-hand with create_container_for_vorticity_and_derivatives() Note 2: i=0: vorticity itself; i>0: vorticity derivatives
References i, j, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_recoverable_velocity_derivatives, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_recoverable_vorticity_derivatives, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_velocity_derivative, oomph::VorticitySmootherElement< ELEMENT >::Maximum_order_of_vorticity_derivative, oomph::VorticitySmootherElement< ELEMENT >::npartial_derivative(), OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
inline |
Compute the element's contribution to the (squared) L2 norm of the difference between exact and smoothed vorticity. The input i corresponds to the i-th dof stored at each node (excluding the velocities and pressure).
References oomph::VorticitySmootherElement< ELEMENT >::create_container_for_vorticity_and_derivatives(), oomph::VorticitySmootherElement< ELEMENT >::Exact_vorticity_fct_pt, i, oomph::Vector< _Tp >::initialise(), J, oomph::VorticitySmootherElement< ELEMENT >::N_dim, oomph::VorticitySmootherElement< ELEMENT >::nvelocity_derivatives_to_recover(), oomph::VorticitySmootherElement< ELEMENT >::nvorticity_derivatives_to_recover(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, Eigen::bfloat16_impl::pow(), oomph::VorticitySmootherElement< ELEMENT >::recovered_dof_to_container_id(), s, oomph::VorticitySmootherElement< ELEMENT >::Smoothed_vorticity_index, w, oomph::QuadTreeNames::W, and plotDoE::x.
|
private |
Pointer to function that specifies exact vorticity and derivs (for validation).
Referenced by oomph::VorticitySmootherElement< ELEMENT >::exact_vorticity_fct_pt(), oomph::VorticitySmootherElement< ELEMENT >::output_analytical_veloc_and_vorticity(), oomph::VorticitySmootherElement< ELEMENT >::vorticity_error_squared(), and oomph::VorticitySmootherElement< ELEMENT >::VorticitySmootherElement().
|
private |
The current maximum order of velocity derivatives that can be recovered. Currently, we can recover the first derivatives: du/dx,du/dy,dv/dx,dv/dy
Referenced by oomph::VorticitySmootherElement< ELEMENT >::get_maximum_order_of_recoverable_velocity_derivative(), oomph::VorticitySmootherElement< ELEMENT >::vorticity_dof_to_container_id(), and oomph::VorticitySmootherElement< ELEMENT >::VorticitySmootherElement().
|
private |
The current maximum order of vorticity derivatives that can be recovered. Currently, we can recover up to the third derivative: omega,d/dx,d/dy, d^2/dx^2,d^2/dxdy,d^2/dy^2, d^3/dx^3,d^3/dx^2dy,d^3/dxdy^2,d^3/dy^3
Referenced by oomph::VorticitySmootherElement< ELEMENT >::get_maximum_order_of_recoverable_vorticity_derivative(), oomph::VorticitySmootherElement< ELEMENT >::stored_dof_to_recoverable_dof(), oomph::VorticitySmootherElement< ELEMENT >::vorticity_dof_to_container_id(), and oomph::VorticitySmootherElement< ELEMENT >::VorticitySmootherElement().
|
private |
Maximum number of derivatives to retain in the velocity recovery. Note, the value 0 means we don't calculate the derivatives of the velocity
Referenced by oomph::VorticitySmootherElement< ELEMENT >::create_container_for_vorticity_and_derivatives(), oomph::VorticitySmootherElement< ELEMENT >::get_maximum_order_of_velocity_derivative(), oomph::VorticitySmootherElement< ELEMENT >::nvelocity_derivatives_to_recover(), oomph::VorticitySmootherElement< ELEMENT >::recovered_dof_to_container_id(), oomph::VorticitySmootherElement< ELEMENT >::vorticity_dof_to_container_id(), and oomph::VorticitySmootherElement< ELEMENT >::VorticitySmootherElement().
|
private |
Maximum number of derivatives to retain in the vorticity recovery. Note, the value -1 means we ONLY output u,v[,w],p.
Referenced by oomph::VorticitySmootherElement< ELEMENT >::create_container_for_vorticity_and_derivatives(), oomph::VorticitySmootherElement< ELEMENT >::get_maximum_order_of_vorticity_derivative(), oomph::VorticitySmootherElement< ELEMENT >::nvorticity_derivatives_to_recover(), oomph::VorticitySmootherElement< ELEMENT >::recovered_dof_to_container_id(), oomph::VorticitySmootherElement< ELEMENT >::stored_dof_to_recoverable_dof(), oomph::VorticitySmootherElement< ELEMENT >::vorticity_dof_to_container_id(), and oomph::VorticitySmootherElement< ELEMENT >::VorticitySmootherElement().
|
private |
Number of dimensions in the element.
Referenced by oomph::VorticitySmootherElement< ELEMENT >::get_interpolated_values(), oomph::VorticitySmootherElement< ELEMENT >::output(), oomph::VorticitySmootherElement< ELEMENT >::output_analytical_veloc_and_vorticity(), oomph::VorticitySmootherElement< ELEMENT >::output_smoothed_vorticity(), oomph::VorticitySmootherElement< ELEMENT >::scalar_name_paraview(), oomph::VorticitySmootherElement< ELEMENT >::scalar_value_paraview(), oomph::VorticitySmootherElement< ELEMENT >::stored_dof_to_recoverable_dof(), oomph::VorticitySmootherElement< ELEMENT >::vorticity_error_squared(), and oomph::VorticitySmootherElement< ELEMENT >::VorticitySmootherElement().
|
private |
Number of values per field; how many of the following do we want: u,v,p,omega,d/dx,d/dy, d^2/dx^2,d^2/dxdy,d^2/dy^2, d^3/dx^3,d^3/dx^2dy,d^3/dxdy^2,d^3/dy^3, du/dx,du/dy,dv/dx,dv/dy
Referenced by oomph::VorticitySmootherElement< ELEMENT >::get_interpolated_values(), oomph::VorticitySmootherElement< ELEMENT >::ncont_interpolated_values(), oomph::VorticitySmootherElement< ELEMENT >::pin_smoothed_vorticity(), oomph::VorticitySmootherElement< ELEMENT >::required_nvalue(), and oomph::VorticitySmootherElement< ELEMENT >::VorticitySmootherElement().
|
private |
Index of smoothed vorticity – followed by derivatives; in 2D this has value 3
Referenced by oomph::VorticitySmootherElement< ELEMENT >::get_raw_vorticity_deriv(), oomph::VorticitySmootherElement< ELEMENT >::get_raw_vorticity_second_deriv(), oomph::VorticitySmootherElement< ELEMENT >::get_raw_vorticity_third_deriv(), oomph::VorticitySmootherElement< ELEMENT >::pin_smoothed_vorticity(), oomph::VorticitySmootherElement< ELEMENT >::scalar_name_paraview(), oomph::VorticitySmootherElement< ELEMENT >::smoothed_vorticity_index(), oomph::VorticitySmootherElement< ELEMENT >::vorticity_and_its_derivs(), oomph::VorticitySmootherElement< ELEMENT >::vorticity_error_squared(), and oomph::VorticitySmootherElement< ELEMENT >::VorticitySmootherElement().