#include <immersed_rigid_body_elements.h>
Public Types | |
typedef void(* | ExternalForceFctPt) (const double &time, Vector< double > &external_force) |
Function pointer to function that specifies external force. More... | |
typedef void(* | ExternalTorqueFctPt) (const double &time, double &external_torque) |
Function pointer to function that specifies external torque. More... | |
Public Member Functions | |
ImmersedRigidBodyElement (GeomObject *const &geom_object_pt, TimeStepper *const &time_stepper_pt, Data *const ¢re_displacement_data_pt=0) | |
Constructor that takes an underlying geometric object: and timestepper. More... | |
void | set_geometric_rotation () |
Set the rotation of the object to be included. More... | |
void | unset_geometric_rotation () |
Set the rotation of the object to be ignored (only really useful if you have a circular shape) More... | |
double & | initial_phi () |
Access function for the initial angle. More... | |
double & | initial_centre_of_mass (const unsigned &i) |
Access function for the initial centre of mass. More... | |
const double & | initial_centre_of_mass (const unsigned &i) const |
Access function for the initial centre of mass (const version) More... | |
void | position (const Vector< double > &xi, Vector< double > &r) const |
Overload the position to apply the rotation and translation. More... | |
void | position (const unsigned &t, const Vector< double > &xi, Vector< double > &r) const |
Overload to include the time history of the motion of the object. More... | |
void | dposition_dt (const Vector< double > &zeta, const unsigned &j, Vector< double > &drdt) |
Work out the position derivative, including rigid body motion. More... | |
~ImmersedRigidBodyElement () | |
Destuctor: Cleanup if required. More... | |
double & | mass_shape () |
double & | moment_of_inertia_shape () |
Access to dimensionless polar "moment of inertia" shape parameter. More... | |
Data *& | centre_displacement_data_pt () |
Pointer to Data for centre of gravity displacement. Values: 0: x-displ; 1: y-displ; 2: rotation angle. More... | |
double & | centre_x_displacement () |
x-displacement of centre of mass More... | |
double & | centre_y_displacement () |
y-displacement of centre of mass More... | |
double & | centre_rotation_angle () |
rotation of centre of mass More... | |
Vector< double > | centre_of_gravity () |
Get current centre of gravity. More... | |
void | pin_centre_of_mass_coordinate (const unsigned &i) |
Pin the i-th coordinate of the centre of mass. More... | |
void | unpin_centre_of_mass_coordinate (const unsigned &i) |
Unpin the i-th coordinate of the centre of mass. More... | |
void | pin_rotation_angle () |
Pin the rotation angle. More... | |
void | unpin_rotation_angle () |
Unpin the rotation angle. More... | |
void | output_centre_of_gravity (std::ostream &outfile) |
Output position velocity and acceleration of centre of gravity. More... | |
void | fill_in_contribution_to_residuals (Vector< double > &residuals) |
Get the contribution to the residuals. More... | |
void | fill_in_contribution_to_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
Get residuals including contribution to jacobian. More... | |
void | node_update_adjacent_fluid_elements () |
Update the positions of the nodes in fluid elements adjacent to the rigid body, defined as being elements in the drag mesh. More... | |
void | update_in_external_fd (const unsigned &i) |
After an external data change, update the nodal positions. More... | |
void | reset_in_external_fd (const unsigned &i) |
Do nothing to reset within finite-differencing of external data. More... | |
void | reset_after_external_fd () |
After all external data finite-differencing, update nodal positions. More... | |
void | update_in_internal_fd (const unsigned &i) |
After an internal data change, update the nodal positions. More... | |
void | reset_in_internal_fd (const unsigned &i) |
Do nothing to reset within finite-differencing of internal data. More... | |
void | reset_after_internal_fd () |
After all internal data finite-differencing, update nodal positions. More... | |
void | get_force_and_torque (const double &time, Vector< double > &force, double &torque) |
Get force and torque from specified fct pointers and drag mesh. More... | |
ExternalForceFctPt & | external_force_fct_pt () |
Access to function pointer to function that specifies external force. More... | |
ExternalTorqueFctPt & | external_torque_fct_pt () |
Access to function pointer to function that specifies external torque. More... | |
Mesh *const & | drag_mesh_pt () |
Access fct to mesh containing face elements that allow the computation of the drag on the body. More... | |
void | set_drag_mesh (Mesh *const &drag_mesh_pt) |
Function to set the drag mesh and add the appropriate load and geometric data as external data to the Rigid Body. More... | |
void | flush_drag_mesh () |
Function to clear the drag mesh and all associated external data. More... | |
unsigned | ngeom_data () const |
The position of the object depends on one data item. More... | |
Data * | geom_data_pt (const unsigned &j) |
Return pointer to the j-th (only) Data item that the object's shape depends on. More... | |
Vector< double > *& | g_pt () |
Access function to the direction of gravity. More... | |
const Vector< double > & | g () const |
Access function for gravity. More... | |
double *& | re_pt () |
Access function for the pointer to the fluid Reynolds number. More... | |
const double & | re () const |
Access function for the fluid Reynolds number. More... | |
double *& | st_pt () |
Access function for the pointer to the fluid Strouhal number. More... | |
const double & | st () const |
Access function for the fluid Strouhal number. More... | |
double *& | re_invfr_pt () |
Access function for pointer to the fluid inverse Froude number (dimensionless gravitational loading) More... | |
const double & | re_invfr () |
Access to the fluid inverse Froude number. More... | |
double *& | density_ratio_pt () |
Access function for the pointer to the density ratio. More... | |
const double & | density_ratio () const |
Access function for the the density ratio. More... | |
![]() | |
GeneralisedElement() | GeneralisedElement (const GeneralisedElement &) |
Constructor: Initialise all pointers and all values to zero. More... | |
void | operator= (const GeneralisedElement &) |
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 |
Return the global equation number corresponding to the ieqn_local-th local equation number. More... | |
int | local_eqn_number (const unsigned long &ieqn_global) const |
Return the local equation number corresponding to the ieqn_global-th global equation number. Returns minus one (-1) if there is no local degree of freedom corresponding to the chosen global equation number. More... | |
unsigned | add_external_data (Data *const &data_pt, const bool &fd=true) |
bool | external_data_fd (const unsigned &i) const |
Return the status of the boolean flag indicating whether the external data is included in the finite difference loop. More... | |
void | exclude_external_data_fd (const unsigned &i) |
Set the boolean flag to exclude the external datum from the the finite difference loop when computing the jacobian matrix. More... | |
void | include_external_data_fd (const unsigned &i) |
Set the boolean flag to include the external datum in the the finite difference loop when computing the jacobian matrix. More... | |
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) |
Set the timestepper associated with the i-th internal data object. More... | |
void | assign_internal_eqn_numbers (unsigned long &global_number, Vector< double *> &Dof_pt) |
Assign the global equation numbers to the internal Data. The arguments are the current highest global equation number (which will be incremented) and a Vector of pointers to the global variables (to which any unpinned values in the internal Data are added). More... | |
void | describe_dofs (std::ostream &out, const std::string ¤t_string) const |
Function to describe the dofs of the element. The ostream specifies the output stream to which the description is written; the string stores the currently assembled output that is ultimately written to the output stream by Data::describe_dofs(...); it is typically built up incrementally as we descend through the call hierarchy of this function when called from Problem::describe_dofs(...) More... | |
virtual void | describe_local_dofs (std::ostream &out, const std::string ¤t_string) const |
Function to describe the local dofs of the element. The ostream specifies the output stream to which the description is written; the string stores the currently assembled output that is ultimately written to the output stream by Data::describe_dofs(...); it is typically built up incrementally as we descend through the call hierarchy of this function when called from Problem::describe_dofs(...) More... | |
void | add_internal_value_pt_to_map (std::map< unsigned, double *> &map_of_value_pt) |
Add pointers to the internal data values to map indexed by the global equation number. More... | |
void | add_internal_data_values_to_vector (Vector< double > &vector_of_values) |
Add all internal data and time history values to the vector in the internal storage order. More... | |
void | read_internal_data_values_from_vector (const Vector< double > &vector_of_values, unsigned &index) |
Read all internal data and time history values from the vector starting from index. On return the index will be set to the value at the end of the data that has been read in. More... | |
void | add_internal_eqn_numbers_to_vector (Vector< long > &vector_of_eqn_numbers) |
Add all equation numbers associated with internal data to the vector in the internal storage order. More... | |
void | read_internal_eqn_numbers_from_vector (const Vector< long > &vector_of_eqn_numbers, unsigned &index) |
Read all equation numbers associated with internal data from the vector starting from index. On return the index will be set to the value at the end of the data that has been read in. More... | |
virtual void | assign_local_eqn_numbers (const bool &store_local_dof_pt) |
Setup the arrays of local equation numbers for the element. If the optional boolean argument is true, then pointers to the associated degrees of freedom are stored locally in the array Dof_pt. More... | |
virtual void | complete_setup_of_dependencies () |
Complete the setup of any additional dependencies that the element may have. Empty virtual function that may be overloaded for specific derived elements. Used, e.g., for elements with algebraic node update functions to determine the "geometric
Data", i.e. the Data that affects the element's shape. This function is called (for all elements) at the very beginning of the equation numbering procedure to ensure that all dependencies are accounted for. More... | |
virtual void | get_residuals (Vector< double > &residuals) |
Calculate the vector of residuals of the equations in the element. By default initialise the vector to zero and then call the fill_in_contribution_to_residuals() function. Note that this entire function can be overloaded if desired. More... | |
virtual void | get_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
Calculate the elemental Jacobian matrix "d equation / d variable". More... | |
virtual void | get_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &mass_matrix) |
Calculate the residuals and the elemental "mass" matrix, the matrix that multiplies the time derivative terms in a problem. More... | |
virtual void | get_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix) |
Calculate the residuals and jacobian and elemental "mass" matrix, the matrix that multiplies the time derivative terms. More... | |
virtual void | get_dresiduals_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam) |
Calculate the derivatives of the residuals with respect to a parameter. More... | |
virtual void | get_djacobian_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam) |
Calculate the derivatives of the elemental Jacobian matrix and residuals with respect to a parameter. More... | |
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) |
Calculate the derivatives of the elemental Jacobian matrix mass matrix and residuals with respect to a parameter. More... | |
virtual void | get_hessian_vector_products (Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product) |
Calculate the product of the Hessian (derivative of Jacobian with respect to all variables) an eigenvector, Y, and other specified vectors, C (d(J_{ij})/d u_{k}) Y_{j} C_{k}. More... | |
virtual void | get_inner_products (Vector< std::pair< unsigned, unsigned > > const &history_index, Vector< double > &inner_product) |
Return the vector of inner product of the given pairs of history values. More... | |
virtual void | get_inner_product_vectors (Vector< unsigned > const &history_index, Vector< Vector< double > > &inner_product_vector) |
Compute the vectors that when taken as a dot product with other history values give the inner product over the element. More... | |
virtual unsigned | self_test () |
Self-test: Have all internal values been classified as pinned/unpinned? Return 0 if OK. More... | |
virtual void | compute_norm (double &norm) |
Compute norm of solution – broken virtual can be overloaded by element writer to implement whatever norm is desired for the specific element. More... | |
void | set_halo (const unsigned &non_halo_proc_ID) |
Label the element as halo and specify processor that holds non-halo counterpart. More... | |
void | set_nonhalo () |
Label the element as not being a halo. More... | |
bool | is_halo () const |
Is this element a halo? More... | |
int | non_halo_proc_ID () |
ID of processor ID that holds non-halo counterpart of halo element; negative if not a halo. More... | |
void | set_must_be_kept_as_halo () |
Insist that this element be kept as a halo element during a distribute? More... | |
void | unset_must_be_kept_as_halo () |
Do not insist that this element be kept as a halo element during distribution. More... | |
bool | must_be_kept_as_halo () const |
Test whether the element must be kept as a halo element. More... | |
virtual unsigned | ndof_types () const |
The number of types of degrees of freedom in this element are sub-divided into. More... | |
virtual void | get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned > > &dof_lookup_list) const |
Create a list of pairs for the unknowns that this element is "in charge of" – ignore any unknowns associated with external Data . The first entry in each pair must contain the global equation number of the unknown, while the second one contains the number of the DOF type that this unknown is associated with. (The function can obviously only be called if the equation numbering scheme has been set up.) More... | |
![]() | |
GeomObject () | |
Default constructor. More... | |
GeomObject (const unsigned &ndim) | |
Constructor: Pass dimension of geometric object (# of Eulerian coords = # of Lagrangian coords; no time history available/needed) More... | |
GeomObject (const unsigned &nlagrangian, const unsigned &ndim) | |
Constructor: pass # of Eulerian and Lagrangian coordinates. No time history available/needed. More... | |
GeomObject (const unsigned &nlagrangian, const unsigned &ndim, TimeStepper *time_stepper_pt) | |
Constructor: pass # of Eulerian and Lagrangian coordinates and pointer to time-stepper which is used to handle the position at previous timesteps and allows the evaluation of veloc/acceleration etc. in cases where the GeomData varies with time. More... | |
GeomObject (const GeomObject &dummy) | |
Broken copy constructor. More... | |
void | operator= (const GeomObject &) |
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 () |
Access function for pointer to time stepper: Null if object is not time-dependent. More... | |
TimeStepper * | time_stepper_pt () const |
Access function for pointer to time stepper: Null if object is not time-dependent. Const version. More... | |
virtual void | dposition (const Vector< double > &zeta, DenseMatrix< double > &drdzeta) const |
Derivative of position Vector w.r.t. to coordinates: ![]() | |
virtual void | d2position (const Vector< double > &zeta, RankThreeTensor< double > &ddrdzeta) const |
2nd derivative of position Vector w.r.t. to coordinates: ![]() | |
virtual void | d2position (const Vector< double > &zeta, Vector< double > &r, DenseMatrix< double > &drdzeta, RankThreeTensor< double > &ddrdzeta) const |
Posn Vector and its 1st & 2nd derivatives w.r.t. to coordinates: ![]() ![]() | |
virtual void | locate_zeta (const Vector< double > &zeta, GeomObject *&sub_geom_object_pt, Vector< double > &s, const bool &use_coordinate_as_initial_guess=false) |
A geometric object may be composed of may sub-objects (e.g. a finite-element representation of a boundary). In order to implement sparse update functions, it is necessary to know the sub-object and local coordinate within that sub-object at a given intrinsic coordinate, zeta. Note that only one sub-object can "cover" any given intrinsic position. If the position is at an "interface" between sub-objects, either one can be returned. The default implementation merely returns, the pointer to the "entire" GeomObject and the coordinate, zeta The optional boolean flag only applies if a Newton method is used to find the value of zeta, and if true the value of the coordinate s is used as the initial guess for the method. If the flag is false (the default) a value of s=0 is used as the initial guess. More... | |
virtual void | interpolated_zeta (const Vector< double > &s, Vector< double > &zeta) const |
A geometric object may be composed of many sub-objects each with their own local coordinate. This function returns the "global" intrinsic coordinate zeta (within the compound object), at a given local coordinate s (i.e. the intrinsic coordinate of the sub-GeomObject. In simple (non-compound) GeomObjects, the local intrinsic coordinate is the global intrinsic coordinate and so the function merely returns s. To make it less likely that the default implementation is called in error (because it is not overloaded in a derived GeomObject where the default is not appropriate, we do at least check that s and zeta have the same size if called in PARANOID mode. More... | |
Protected Member Functions | |
ImmersedRigidBodyElement (TimeStepper *const &time_stepper_pt, Data *const ¢re_displacement_data_pt=0) | |
Default constructor that intialises everything to zero. This is expected to be called only from derived clases such as the ImmersedRigidBodyTriangleMeshPolygon that can provided their own position() functions. More... | |
void | apply_rigid_body_motion (const unsigned &t, const Vector< double > &initial_x, Vector< double > &r) const |
Helper function to adjust the position in response to changes in position and angle of the solid about the centre of mass. More... | |
![]() | |
unsigned | add_internal_data (Data *const &data_pt, const bool &fd=true) |
Add a (pointer to an) internal data object to the element and return the index required to obtain it from the access function internal_data_pt() . The boolean indicates whether the datum should be included in the general finite-difference loop when calculating the jacobian. The default value is true, i.e. the data will be included in the finite differencing. More... | |
bool | internal_data_fd (const unsigned &i) const |
Return the status of the boolean flag indicating whether the internal data is included in the finite difference loop. More... | |
void | exclude_internal_data_fd (const unsigned &i) |
Set the boolean flag to exclude the internal datum from the finite difference loop when computing the jacobian matrix. More... | |
void | include_internal_data_fd (const unsigned &i) |
Set the boolean flag to include the internal datum in the finite difference loop when computing the jacobian matrix. More... | |
void | clear_global_eqn_numbers () |
Clear the storage for the global equation numbers and pointers to dofs (if stored) More... | |
void | add_global_eqn_numbers (std::deque< unsigned long > const &global_eqn_numbers, std::deque< double *> const &global_dof_pt) |
Add the contents of the queue global_eqn_numbers to the local storage for the local-to-global translation scheme. It is essential that the entries in the queue are added IN ORDER i.e. from the front. More... | |
virtual void | assign_internal_and_external_local_eqn_numbers (const bool &store_local_dof_pt) |
Assign the local equation numbers for the internal and external Data This must be called after the global equation numbers have all been assigned. It is virtual so that it can be overloaded by ElementWithExternalElements so that any external data from the external elements in included in the numbering scheme. If the boolean argument is true then pointers to the dofs will be stored in Dof_pt. More... | |
virtual void | assign_all_generic_local_eqn_numbers (const bool &store_local_dof_pt) |
Assign all the local equation numbering schemes that can be applied generically for the element. In most cases, this is the function that will be overloaded by inherited classes. It is required to ensure that assign_additional_local_eqn_numbers() can always be called after ALL other local equation numbering has been performed. The default for the GeneralisedElement is simply to call internal and external local equation numbering. If the boolean argument is true then pointers to the dofs will be stored in Dof_pt. More... | |
virtual void | assign_additional_local_eqn_numbers () |
Setup any additional look-up schemes for local equation numbers. Examples of use include using local storage to refer to explicit degrees of freedom. The additional memory cost of such storage may or may not be offset by fast local access. More... | |
int | internal_local_eqn (const unsigned &i, const unsigned &j) const |
Return the local equation number corresponding to the j-th value stored at the i-th internal data. More... | |
int | external_local_eqn (const unsigned &i, const unsigned &j) |
Return the local equation number corresponding to the j-th value stored at the i-th external data. More... | |
void | fill_in_jacobian_from_internal_by_fd (Vector< double > &residuals, DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
Calculate the contributions to the jacobian from the internal degrees of freedom using finite differences. This version of the function assumes that the residuals vector has already been calculated. If the boolean argument is true, the finite differencing will be performed for all internal data, irrespective of the information in Data_fd. The default value (false) uses the information in Data_fd to selectively difference only certain data. More... | |
void | fill_in_jacobian_from_internal_by_fd (DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
Calculate the contributions to the jacobian from the internal degrees of freedom using finite differences. This version computes the residuals vector before calculating the jacobian terms. If the boolean argument is true, the finite differencing will be performed for all internal data, irrespective of the information in Data_fd. The default value (false) uses the information in Data_fd to selectively difference only certain data. More... | |
void | fill_in_jacobian_from_external_by_fd (Vector< double > &residuals, DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
Calculate the contributions to the jacobian from the external degrees of freedom using finite differences. This version of the function assumes that the residuals vector has already been calculated. If the boolean argument is true, the finite differencing will be performed for all external data, irrespective of the information in Data_fd. The default value (false) uses the information in Data_fd to selectively difference only certain data. More... | |
void | fill_in_jacobian_from_external_by_fd (DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
Calculate the contributions to the jacobian from the external degrees of freedom using finite differences. This version computes the residuals vector before calculating the jacobian terms. If the boolean argument is true, the finite differencing will be performed for all internal data, irrespective of the information in Data_fd. The default value (false) uses the information in Data_fd to selectively difference only certain data. More... | |
virtual void | update_before_internal_fd () |
Function that is called before the finite differencing of any internal data. This may be overloaded to update any slaved data before finite differencing takes place. More... | |
virtual void | update_before_external_fd () |
Function that is called before the finite differencing of any external data. This may be overloaded to update any slaved data before finite differencing takes place. More... | |
virtual void | fill_in_contribution_to_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &mass_matrix) |
Add the elemental contribution to the mass matrix matrix. and the residuals vector. Note that this function should NOT initialise the residuals vector or the mass matrix. It must be called after the residuals vector and jacobian matrix have been initialised to zero. The default is deliberately broken. More... | |
virtual void | fill_in_contribution_to_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix) |
Add the elemental contribution to the jacobian matrix, mass matrix and the residuals vector. Note that this function should NOT initialise any entries. It must be called after the residuals vector and matrices have been initialised to zero. More... | |
virtual void | fill_in_contribution_to_dresiduals_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam) |
Add the elemental contribution to the derivatives of the residuals with respect to a parameter. This function should NOT initialise any entries and must be called after the entries have been initialised to zero The default implementation is to use finite differences to calculate the derivatives. More... | |
virtual void | fill_in_contribution_to_djacobian_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam) |
Add the elemental contribution to the derivatives of the elemental Jacobian matrix and residuals with respect to a parameter. This function should NOT initialise any entries and must be called after the entries have been initialised to zero The default implementation is to use finite differences to calculate the derivatives. More... | |
virtual void | fill_in_contribution_to_djacobian_and_dmass_matrix_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam) |
Add the elemental contribution to the derivative of the jacobian matrix, mass matrix and the residuals vector with respect to the passed parameter. Note that this function should NOT initialise any entries. It must be called after the residuals vector and matrices have been initialised to zero. More... | |
virtual void | fill_in_contribution_to_hessian_vector_products (Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product) |
Fill in contribution to the product of the Hessian (derivative of Jacobian with respect to all variables) an eigenvector, Y, and other specified vectors, C (d(J_{ij})/d u_{k}) Y_{j} C_{k}. More... | |
virtual void | fill_in_contribution_to_inner_products (Vector< std::pair< unsigned, unsigned > > const &history_index, Vector< double > &inner_product) |
Fill in the contribution to the inner products between given pairs of history values. More... | |
virtual void | fill_in_contribution_to_inner_product_vectors (Vector< unsigned > const &history_index, Vector< Vector< double > > &inner_product_vector) |
Fill in the contributions to the vectors that when taken as dot product with other history values give the inner product over the element. More... | |
Protected Attributes | |
Vector< double > | Initial_centre_of_mass |
X-coordinate of initial centre of gravity. More... | |
double | Initial_Phi |
Original rotation angle. More... | |
double | Mass |
double | Moment_of_inertia |
Polar moment of inertia of body. More... | |
Data * | Centre_displacement_data_pt |
Data for centre of gravity displacement. Values: 0: x-displ; 1: y-displ; 2: rotation angle. More... | |
![]() | |
int | Non_halo_proc_ID |
Non-halo processor ID for Data; -1 if it's not a halo. More... | |
bool | Must_be_kept_as_halo |
Does this element need to be kept as a halo element during a distribute? More... | |
![]() | |
unsigned | NLagrangian |
Number of Lagrangian (intrinsic) coordinates. More... | |
unsigned | Ndim |
Number of Eulerian coordinates. More... | |
TimeStepper * | Geom_object_time_stepper_pt |
Timestepper (used to handle access to geometry at previous timesteps) More... | |
Private Member Functions | |
int | centre_displacement_local_eqn (const unsigned &i) |
Return the equation number associated with the i-th centre of gravity displacment 0: x-displ; 1: y-displ; 2: rotation angle. More... | |
void | initialise (TimeStepper *const &time_stepper_pt) |
Initialisation function. More... | |
void | get_residuals_rigid_body_generic (Vector< double > &residuals, DenseMatrix< double > &jacobian, const bool &flag) |
Get residuals and/or Jacobian. More... | |
void | delete_external_hijacked_data () |
Delete the storage for the external data formed from hijacked data. More... | |
Private Attributes | |
std::list< unsigned > | List_of_external_hijacked_data |
GeomObject * | Geom_object_pt |
Underlying geometric object. More... | |
ExternalForceFctPt | External_force_fct_pt |
Function pointer to function that specifies external force. More... | |
ExternalTorqueFctPt | External_torque_fct_pt |
Function pointer to function that specifies external torque. More... | |
Mesh * | Drag_mesh_pt |
Mesh containing face elements that allow the computation of the drag on the body. More... | |
Vector< double > * | G_pt |
The direction of gravity. More... | |
double * | Re_pt |
Reynolds number of external fluid. More... | |
double * | St_pt |
Strouhal number of external fluid. More... | |
double * | ReInvFr_pt |
Reynolds number divided by Froude number of external fluid. More... | |
double * | Density_ratio_pt |
Density ratio of the solid to the external fluid. More... | |
unsigned | Index_for_centre_displacement |
Index for the data (internal or external) that contains the centre-of-gravity displacement. More... | |
bool | Displacement_data_is_internal |
Boolean flag to indicate whether data is internal. More... | |
bool | Include_geometric_rotation |
Static Private Attributes | |
static double | Default_Physical_Constant_Value =0.0 |
Static default value for physical constants. More... | |
static double | Default_Physical_Ratio_Value =1.0 |
Static default value for physical ratios. More... | |
static Vector< double > | Default_Gravity_vector |
Static default value for gravity. More... | |
Additional Inherited Members | |
![]() | |
static bool | Suppress_warning_about_repeated_internal_data =false |
Static boolean to suppress warnings about repeated internal data. Defaults to false. More... | |
static bool | Suppress_warning_about_repeated_external_data =true |
Static boolean to suppress warnings about repeated external data. Defaults to true. More... | |
static double | Default_fd_jacobian_step =1.0e-8 |
Double used for the default finite difference step in elemental jacobian calculations. More... | |
![]() | |
static DenseMatrix< double > | Dummy_matrix |
Empty dense matrix used as a dummy argument to combined residual and jacobian functions in the case when only the residuals are being assembled. More... | |
static std::deque< double * > | Dof_pt_deque |
Static storage for deque used to add_global_equation_numbers when pointers to the dofs in each element are not required. More... | |
Class that solves the equations of motion for a general two-dimensional rigid body subject to a particular imposed force and torque distribution and immersed within an external fluid. The body's position is entirely specified by the location of its centre of mass, , and a single angle,
, that represents a possible rotation. The equations of motion are then simply Newton's second law for the conservation of linear momentum in two directions and angular momentum about the single possible axis of rotation.
The non-dimensionalisation is based on the viscous scales of the surrounding fluid, in which case, the governing equations are
where is the external force per unit length;
is the net force per unit length applied on the rigid body by the surrounding fluid;
is the external torque per unit length; and
is the net torque per unit length applied on the body by the fluid.
is a scaled mass the density ratio multiplied by a shape parameter and
is a scaled moment of inertia. Finally,
and
are the Reynolds and Strouhal numbers of the surrounding fluid. Note that these equations may be used without the external fluid, in which case the non-dimensionalisation doesn't make a lot of sense, but may be re-interpreted accordingly.
A Data object whose three values represent the x and y displacements of the body's centre of mass and its rotation about the centre of mass may be passed in as external data or, if not, it will be constructed internally.
For general usage, an underlying geometric object must passed to the constructor and the position will be determined by applying rigid body motions to the underlying object based on the initial_centre_of_mass and initial_phi (angle), which default to zero. If these defaults are not suitable, the values must be set externally. In addition a mass and moment of inertia should also be set externally.
If added to a mesh in the Problem (in its incarnation as a GeneralisedElement) the displacement/rotation of the body is computed in response to (i) user-specifiable applied forces and a torque and (ii) the net drag (and associated torque) from a mesh of elements that can exert a drag onto the body (typically Navier-Stokes FaceElements that apply a viscous drag to an immersed body, represented by the body.)
Definition at line 101 of file immersed_rigid_body_elements.h.
typedef void(* oomph::ImmersedRigidBodyElement::ExternalForceFctPt) (const double &time, Vector< double > &external_force) |
Function pointer to function that specifies external force.
Definition at line 108 of file immersed_rigid_body_elements.h.
typedef void(* oomph::ImmersedRigidBodyElement::ExternalTorqueFctPt) (const double &time, double &external_torque) |
Function pointer to function that specifies external torque.
Definition at line 113 of file immersed_rigid_body_elements.h.
|
inlineprotected |
Default constructor that intialises everything to zero. This is expected to be called only from derived clases such as the ImmersedRigidBodyTriangleMeshPolygon that can provided their own position() functions.
Definition at line 122 of file immersed_rigid_body_elements.h.
References initialise().
|
inline |
Constructor that takes an underlying geometric object: and timestepper.
Definition at line 142 of file immersed_rigid_body_elements.h.
References initialise().
|
inline |
Destuctor: Cleanup if required.
Definition at line 200 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt, Displacement_data_is_internal, and oomph::GeneralisedElement::internal_data_pt().
|
inlineprotected |
Helper function to adjust the position in response to changes in position and angle of the solid about the centre of mass.
Definition at line 417 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt, Include_geometric_rotation, Initial_centre_of_mass, and oomph::Data::value().
Referenced by position(), oomph::ImmersedRigidBodyTriangleMeshPolygon::position(), and oomph::ImmersedRigidBodyTriangleMeshPolygon::reset_reference_configuration().
|
inline |
Pointer to Data for centre of gravity displacement. Values: 0: x-displ; 1: y-displ; 2: rotation angle.
Definition at line 219 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt.
|
inlineprivate |
Return the equation number associated with the i-th centre of gravity displacment 0: x-displ; 1: y-displ; 2: rotation angle.
Definition at line 457 of file immersed_rigid_body_elements.h.
References Displacement_data_is_internal, oomph::GeneralisedElement::external_local_eqn(), get_residuals_rigid_body_generic(), Index_for_centre_displacement, initialise(), oomph::GeneralisedElement::internal_local_eqn(), and oomph::GeomObject::time_stepper_pt().
Referenced by get_residuals_rigid_body_generic().
|
inline |
Get current centre of gravity.
Definition at line 235 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt, i, Initial_centre_of_mass, and oomph::Data::value().
|
inline |
rotation of centre of mass
Definition at line 231 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt, and oomph::Data::value_pt().
|
inline |
x-displacement of centre of mass
Definition at line 223 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt, and oomph::Data::value_pt().
|
inline |
y-displacement of centre of mass
Definition at line 227 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt, and oomph::Data::value_pt().
|
inlineprivate |
Delete the storage for the external data formed from hijacked data.
Definition at line 482 of file immersed_rigid_body_elements.h.
References oomph::GeneralisedElement::external_data_pt().
Referenced by flush_drag_mesh(), and set_drag_mesh().
|
inline |
Access function for the the density ratio.
Definition at line 410 of file immersed_rigid_body_elements.h.
References Density_ratio_pt.
Referenced by get_residuals_rigid_body_generic().
|
inline |
Access function for the pointer to the density ratio.
Definition at line 407 of file immersed_rigid_body_elements.h.
References Density_ratio_pt.
|
virtual |
Work out the position derivative, including rigid body motion.
Work out the position derivative taking into account the movement relative to the original centre of mass
Reimplemented from oomph::GeomObject.
Definition at line 50 of file immersed_rigid_body_elements.cc.
References Centre_displacement_data_pt, Geom_object_pt, i, Include_geometric_rotation, Initial_centre_of_mass, position(), oomph::GeomObject::position(), oomph::TimeStepper::time_derivative(), oomph::Data::time_stepper_pt(), and oomph::Data::value().
Referenced by position().
|
inline |
Access fct to mesh containing face elements that allow the computation of the drag on the body.
Definition at line 356 of file immersed_rigid_body_elements.h.
References Drag_mesh_pt, and set_drag_mesh().
Referenced by set_drag_mesh().
|
inline |
Access to function pointer to function that specifies external force.
Definition at line 348 of file immersed_rigid_body_elements.h.
References External_force_fct_pt.
|
inline |
Access to function pointer to function that specifies external torque.
Definition at line 352 of file immersed_rigid_body_elements.h.
References External_torque_fct_pt.
|
inlinevirtual |
Get residuals including contribution to jacobian.
Reimplemented from oomph::GeneralisedElement.
Definition at line 283 of file immersed_rigid_body_elements.h.
References oomph::GeneralisedElement::fill_in_jacobian_from_external_by_fd(), oomph::GeneralisedElement::fill_in_jacobian_from_internal_by_fd(), and get_residuals_rigid_body_generic().
|
inlinevirtual |
Get the contribution to the residuals.
Reimplemented from oomph::GeneralisedElement.
Definition at line 274 of file immersed_rigid_body_elements.h.
References oomph::GeneralisedElement::Dummy_matrix, and get_residuals_rigid_body_generic().
|
inline |
Function to clear the drag mesh and all associated external data.
Definition at line 363 of file immersed_rigid_body_elements.h.
References delete_external_hijacked_data(), Drag_mesh_pt, and oomph::GeneralisedElement::flush_external_data().
|
inline |
Access function for gravity.
Definition at line 385 of file immersed_rigid_body_elements.h.
References G_pt.
Referenced by get_residuals_rigid_body_generic().
|
inline |
Access function to the direction of gravity.
Definition at line 382 of file immersed_rigid_body_elements.h.
References G_pt.
|
inlinevirtual |
Return pointer to the j-th (only) Data item that the object's shape depends on.
Reimplemented from oomph::GeomObject.
Definition at line 378 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt.
void oomph::ImmersedRigidBodyElement::get_force_and_torque | ( | const double & | time, |
Vector< double > & | force, | ||
double & | torque | ||
) |
Get force and torque from specified fct pointers and drag mesh.
Obtain the external force and torque on the body from specified function pointers and also from a drag mesh, if there is one
Definition at line 151 of file immersed_rigid_body_elements.cc.
References Drag_mesh_pt, e, oomph::Mesh::element_pt(), External_force_fct_pt, External_torque_fct_pt, and oomph::Mesh::nelement().
Referenced by get_residuals_rigid_body_generic(), and reset_after_internal_fd().
|
private |
Get residuals and/or Jacobian.
Calculate the contributions to the residuals and the jacobian.
Definition at line 300 of file immersed_rigid_body_elements.cc.
References Centre_displacement_data_pt, centre_displacement_local_eqn(), density_ratio(), g(), get_force_and_torque(), oomph::ImmersedRigidBodyTriangleMeshPolygon::ImmersedRigidBodyTriangleMeshPolygon(), Mass, Moment_of_inertia, re(), re_invfr(), st(), oomph::TimeStepper::time(), oomph::TimeStepper::time_derivative(), oomph::Data::time_stepper_pt(), and oomph::TimeStepper::weight().
Referenced by centre_displacement_local_eqn(), fill_in_contribution_to_jacobian(), and fill_in_contribution_to_residuals().
|
inline |
Access function for the initial centre of mass.
Definition at line 170 of file immersed_rigid_body_elements.h.
References i, and Initial_centre_of_mass.
|
inline |
Access function for the initial centre of mass (const version)
Definition at line 174 of file immersed_rigid_body_elements.h.
References i, and Initial_centre_of_mass.
|
inline |
Access function for the initial angle.
Definition at line 167 of file immersed_rigid_body_elements.h.
References Initial_Phi.
|
private |
Initialisation function.
Initialise the internal data.
Definition at line 264 of file immersed_rigid_body_elements.cc.
References oomph::GeneralisedElement::add_external_data(), oomph::GeneralisedElement::add_internal_data(), Centre_displacement_data_pt, Displacement_data_is_internal, Index_for_centre_displacement, and Initial_centre_of_mass.
Referenced by centre_displacement_local_eqn(), and ImmersedRigidBodyElement().
|
inline |
Access to dimensionless "mass" shape parameter that must be set by hand for non polygonal shapes
Definition at line 212 of file immersed_rigid_body_elements.h.
References Mass.
|
inline |
Access to dimensionless polar "moment of inertia" shape parameter.
Definition at line 215 of file immersed_rigid_body_elements.h.
References Moment_of_inertia.
|
inlinevirtual |
The position of the object depends on one data item.
Reimplemented from oomph::GeomObject.
Definition at line 374 of file immersed_rigid_body_elements.h.
|
inline |
Update the positions of the nodes in fluid elements adjacent to the rigid body, defined as being elements in the drag mesh.
Definition at line 300 of file immersed_rigid_body_elements.h.
References Drag_mesh_pt, e, oomph::Mesh::element_pt(), oomph::Mesh::nelement(), and oomph::FiniteElement::node_update().
Referenced by reset_after_external_fd(), reset_after_internal_fd(), update_in_external_fd(), and update_in_internal_fd().
void oomph::ImmersedRigidBodyElement::output_centre_of_gravity | ( | std::ostream & | outfile | ) |
Output position velocity and acceleration of centre of gravity.
Output the position of the centre of gravity including velocities and accelerations
Definition at line 120 of file immersed_rigid_body_elements.cc.
References Centre_displacement_data_pt, Initial_centre_of_mass, Initial_Phi, oomph::TimeStepper::time(), oomph::TimeStepper::time_derivative(), oomph::GeomObject::time_stepper_pt(), oomph::Data::time_stepper_pt(), and oomph::Data::value().
Referenced by unpin_rotation_angle().
|
inline |
Pin the i-th coordinate of the centre of mass.
Definition at line 247 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt, and oomph::Data::pin().
|
inline |
Pin the rotation angle.
Definition at line 259 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt, and oomph::Data::pin().
|
inlinevirtual |
Overload the position to apply the rotation and translation.
Implements oomph::GeomObject.
Reimplemented in oomph::ImmersedRigidBodyTriangleMeshPolygon.
Definition at line 178 of file immersed_rigid_body_elements.h.
References apply_rigid_body_motion(), Geom_object_pt, and oomph::GeomObject::position().
Referenced by dposition_dt().
|
inlinevirtual |
Overload to include the time history of the motion of the object.
Reimplemented from oomph::GeomObject.
Reimplemented in oomph::ImmersedRigidBodyTriangleMeshPolygon.
Definition at line 186 of file immersed_rigid_body_elements.h.
References apply_rigid_body_motion(), dposition_dt(), Geom_object_pt, and oomph::GeomObject::position().
|
inline |
Access function for the fluid Reynolds number.
Definition at line 391 of file immersed_rigid_body_elements.h.
References Re_pt.
Referenced by get_residuals_rigid_body_generic().
|
inline |
Access to the fluid inverse Froude number.
Definition at line 404 of file immersed_rigid_body_elements.h.
References ReInvFr_pt.
Referenced by get_residuals_rigid_body_generic().
|
inline |
Access function for pointer to the fluid inverse Froude number (dimensionless gravitational loading)
Definition at line 401 of file immersed_rigid_body_elements.h.
References ReInvFr_pt.
|
inline |
Access function for the pointer to the fluid Reynolds number.
Definition at line 388 of file immersed_rigid_body_elements.h.
References Re_pt.
|
inlinevirtual |
After all external data finite-differencing, update nodal positions.
Reimplemented from oomph::GeneralisedElement.
Definition at line 326 of file immersed_rigid_body_elements.h.
References node_update_adjacent_fluid_elements().
|
inlinevirtual |
After all internal data finite-differencing, update nodal positions.
Reimplemented from oomph::GeneralisedElement.
Definition at line 337 of file immersed_rigid_body_elements.h.
References get_force_and_torque(), and node_update_adjacent_fluid_elements().
|
inlinevirtual |
Do nothing to reset within finite-differencing of external data.
Reimplemented from oomph::GeneralisedElement.
Definition at line 323 of file immersed_rigid_body_elements.h.
|
inlinevirtual |
Do nothing to reset within finite-differencing of internal data.
Reimplemented from oomph::GeneralisedElement.
Definition at line 334 of file immersed_rigid_body_elements.h.
void oomph::ImmersedRigidBodyElement::set_drag_mesh | ( | Mesh *const & | drag_mesh_pt | ) |
Function to set the drag mesh and add the appropriate load and geometric data as external data to the Rigid Body.
Set the external drag mesh, which should consist of NavierStokesSurfaceDragTorqueElements and then read out the appropriate load and geometric data from those elements and set as external data for this element.
Definition at line 205 of file immersed_rigid_body_elements.cc.
References oomph::GeneralisedElement::add_external_data(), delete_external_hijacked_data(), drag_mesh_pt(), Drag_mesh_pt, e, oomph::Mesh::element_pt(), oomph::GeneralisedElement::flush_external_data(), oomph::FiniteElement::identify_geometric_data(), oomph::FSIFluidElement::identify_load_data(), List_of_external_hijacked_data, and oomph::Mesh::nelement().
Referenced by drag_mesh_pt().
|
inline |
Set the rotation of the object to be included.
Definition at line 160 of file immersed_rigid_body_elements.h.
References Include_geometric_rotation.
|
inline |
Access function for the fluid Strouhal number.
Definition at line 397 of file immersed_rigid_body_elements.h.
References St_pt.
Referenced by get_residuals_rigid_body_generic().
|
inline |
Access function for the pointer to the fluid Strouhal number.
Definition at line 394 of file immersed_rigid_body_elements.h.
References St_pt.
|
inline |
Unpin the i-th coordinate of the centre of mass.
Definition at line 253 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt, and oomph::Data::unpin().
|
inline |
Unpin the rotation angle.
Definition at line 265 of file immersed_rigid_body_elements.h.
References Centre_displacement_data_pt, output_centre_of_gravity(), and oomph::Data::unpin().
|
inline |
Set the rotation of the object to be ignored (only really useful if you have a circular shape)
Definition at line 164 of file immersed_rigid_body_elements.h.
References Include_geometric_rotation.
|
inlinevirtual |
After an external data change, update the nodal positions.
Reimplemented from oomph::GeneralisedElement.
Definition at line 319 of file immersed_rigid_body_elements.h.
References node_update_adjacent_fluid_elements().
|
inlinevirtual |
After an internal data change, update the nodal positions.
Reimplemented from oomph::GeneralisedElement.
Definition at line 330 of file immersed_rigid_body_elements.h.
References node_update_adjacent_fluid_elements().
|
protected |
Data for centre of gravity displacement. Values: 0: x-displ; 1: y-displ; 2: rotation angle.
Definition at line 512 of file immersed_rigid_body_elements.h.
Referenced by apply_rigid_body_motion(), centre_displacement_data_pt(), centre_of_gravity(), centre_rotation_angle(), centre_x_displacement(), centre_y_displacement(), dposition_dt(), geom_data_pt(), get_residuals_rigid_body_generic(), initialise(), output_centre_of_gravity(), pin_centre_of_mass_coordinate(), pin_rotation_angle(), oomph::ImmersedRigidBodyTriangleMeshPolygon::reset_reference_configuration(), unpin_centre_of_mass_coordinate(), unpin_rotation_angle(), and ~ImmersedRigidBodyElement().
|
staticprivate |
Static default value for gravity.
Static default gravity direction vector.
Definition at line 553 of file immersed_rigid_body_elements.h.
|
staticprivate |
Static default value for physical constants.
Static default value for physical constants Zero gives instantaneous force and torque balances — no solid intertia.
Definition at line 547 of file immersed_rigid_body_elements.h.
|
staticprivate |
Static default value for physical ratios.
Static default value for physical ratio.
Definition at line 550 of file immersed_rigid_body_elements.h.
|
private |
Density ratio of the solid to the external fluid.
Definition at line 544 of file immersed_rigid_body_elements.h.
Referenced by density_ratio(), and density_ratio_pt().
|
private |
Boolean flag to indicate whether data is internal.
Definition at line 560 of file immersed_rigid_body_elements.h.
Referenced by centre_displacement_local_eqn(), initialise(), and ~ImmersedRigidBodyElement().
|
private |
Mesh containing face elements that allow the computation of the drag on the body.
Definition at line 529 of file immersed_rigid_body_elements.h.
Referenced by drag_mesh_pt(), flush_drag_mesh(), get_force_and_torque(), node_update_adjacent_fluid_elements(), and set_drag_mesh().
|
private |
Function pointer to function that specifies external force.
Definition at line 521 of file immersed_rigid_body_elements.h.
Referenced by external_force_fct_pt(), and get_force_and_torque().
|
private |
Function pointer to function that specifies external torque.
Definition at line 525 of file immersed_rigid_body_elements.h.
Referenced by external_torque_fct_pt(), and get_force_and_torque().
|
private |
The direction of gravity.
Definition at line 532 of file immersed_rigid_body_elements.h.
|
private |
Underlying geometric object.
Definition at line 517 of file immersed_rigid_body_elements.h.
Referenced by dposition_dt(), and position().
|
private |
Boolean to indicate that the rotation variable does not affect the boundary shape
Definition at line 564 of file immersed_rigid_body_elements.h.
Referenced by apply_rigid_body_motion(), dposition_dt(), set_geometric_rotation(), and unset_geometric_rotation().
|
private |
Index for the data (internal or external) that contains the centre-of-gravity displacement.
Definition at line 557 of file immersed_rigid_body_elements.h.
Referenced by centre_displacement_local_eqn(), and initialise().
|
protected |
X-coordinate of initial centre of gravity.
Definition at line 499 of file immersed_rigid_body_elements.h.
Referenced by apply_rigid_body_motion(), centre_of_gravity(), dposition_dt(), oomph::ImmersedRigidBodyTriangleMeshPolygon::ImmersedRigidBodyTriangleMeshPolygon(), initial_centre_of_mass(), initialise(), output_centre_of_gravity(), and oomph::ImmersedRigidBodyTriangleMeshPolygon::reset_reference_configuration().
|
protected |
Original rotation angle.
Definition at line 502 of file immersed_rigid_body_elements.h.
Referenced by oomph::ImmersedRigidBodyTriangleMeshPolygon::ImmersedRigidBodyTriangleMeshPolygon(), initial_phi(), output_centre_of_gravity(), and oomph::ImmersedRigidBodyTriangleMeshPolygon::reset_reference_configuration().
|
private |
Storage for the external data that is formed from hijacked data that must be deleted by this element
Definition at line 479 of file immersed_rigid_body_elements.h.
Referenced by set_drag_mesh().
|
protected |
Definition at line 505 of file immersed_rigid_body_elements.h.
Referenced by get_residuals_rigid_body_generic(), oomph::ImmersedRigidBodyTriangleMeshPolygon::ImmersedRigidBodyTriangleMeshPolygon(), and mass_shape().
|
protected |
Polar moment of inertia of body.
Definition at line 508 of file immersed_rigid_body_elements.h.
Referenced by get_residuals_rigid_body_generic(), oomph::ImmersedRigidBodyTriangleMeshPolygon::ImmersedRigidBodyTriangleMeshPolygon(), and moment_of_inertia_shape().
|
private |
Reynolds number of external fluid.
Definition at line 535 of file immersed_rigid_body_elements.h.
|
private |
Reynolds number divided by Froude number of external fluid.
Definition at line 541 of file immersed_rigid_body_elements.h.
Referenced by re_invfr(), and re_invfr_pt().
|
private |
Strouhal number of external fluid.
Definition at line 538 of file immersed_rigid_body_elements.h.