/////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// More...
#include <navier_stokes_flux_control_elements.h>
Public Member Functions | |
NetFluxControlElement (Mesh *flux_control_mesh_pt, double *prescribed_flux_value_pt) | |
Constructor takes a mesh of TemplateFreeNavierStokesFluxControlElementBase elements that impose the pressure to control the flux, plus a pointer to the double which contains the desired flux value. More... | |
~NetFluxControlElement () | |
Empty Destructor - Data gets deleted automatically. More... | |
NetFluxControlElement (const NetFluxControlElement &dummy)=delete | |
Broken copy constructor. More... | |
unsigned | dim () const |
Broken assignment operator. More... | |
Data * | pressure_data_pt () const |
Function to return a pointer to the Data object whose single value is the pressure applied by the NavierStokesFluxControlElement elements. More... | |
void | fill_in_contribution_to_residuals (Vector< double > &residuals) |
Add the element's contribution to its residual vector: i.e. the flux constraint. More... | |
void | fill_in_contribution_to_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
This function returns the residuals, but adds nothing to the Jacobian as this element's Jacobian contributions are calculated by the NavierStokesFluxControlElements which impose the traction used to control the flux. More... | |
unsigned | ndof_types () const |
The number of "DOF types" that degrees of freedom in this element are sub-divided into - it's set to Dof_number_for_unknown+1 because it's expected this element is added to a fluid mesh containing navier stokes elements. More... | |
unsigned & | dof_number_for_unknown () |
Function to set / get the nodal value of the "DOF type" to which the degree of freedom in this element (the pressure that enforces the required volume flux!) is added to. This should be set to the Navier-Stokes pressure DOF type (usually the dimension of the problem, for example, in 3D, the DOF types for single-physics Navier-Stokes elements are usually labelled 0, 1, 2, 3 for u, v and w velocities and pressure respectively. It is important to note that this is dimension dependent, so should not be hard coded in!! In particularly, this should not simply be set to the dimension of the problem if there is further splitting of the velocity DOF types) if this element is added to a fluid mesh containing Navier-Stokes elements. More... | |
void | get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const |
Create a list of pairs for all unknowns in this element, so that the first entry in each pair contains the global equation number of the unknown, while the second one contains the number of the "DOF type" that this unknown is associated with. (Function can obviously only be called if the equation numbering scheme has been set up.) The single degree of freedom is given the DOF type number of Dof_number_for_unknown since it's expected this unknown is added to the Navier-Stokes pressure DOF block (it is also assumed that the user has set the Dof_number_for_unknown variable to the velocity DOF type using the function dof_number_for_unknown()). More... | |
Public Member Functions inherited from oomph::GeneralisedElement | |
GeneralisedElement() | GeneralisedElement (const GeneralisedElement &)=delete |
Constructor: Initialise all pointers and all values to zero. 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 |
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) |
Add a (pointer to an) external data object to the element and return its index (i.e. the index required to obtain it from the access function external_data_pt(...) . The optional boolean flag indicates whether the data 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 | 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 (Vector< 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... | |
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... | |
Protected Member Functions | |
void | fill_in_generic_residual_contribution_flux_control (Vector< double > &residuals) |
This function returns the residuals for the flux control master element. More... | |
Protected Member Functions inherited from oomph::GeneralisedElement | |
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 dependent data before finite differencing takes place. More... | |
virtual void | reset_after_internal_fd () |
Function that is call after the finite differencing of the internal data. This may be overloaded to reset any dependent variables that may have changed during the finite differencing. More... | |
virtual void | update_in_internal_fd (const unsigned &i) |
Function called within the finite difference loop for internal data after a change in any values in the i-th internal data object. More... | |
virtual void | reset_in_internal_fd (const unsigned &i) |
Function called within the finite difference loop for internal data after the values in the i-th external data object are reset. The default behaviour is to call the update function. 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 dependent data before finite differencing takes place. More... | |
virtual void | reset_after_external_fd () |
Function that is call after the finite differencing of the external data. This may be overloaded to reset any dependent variables that may have changed during the finite differencing. More... | |
virtual void | update_in_external_fd (const unsigned &i) |
Function called within the finite difference loop for external data after a change in any values in the i-th external data object. More... | |
virtual void | reset_in_external_fd (const unsigned &i) |
Function called within the finite difference loop for external data after the values in the i-th external data object are reset. The default behaviour is to call the update function. 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... | |
Private Attributes | |
Data * | Pressure_data_pt |
Data object whose single value is the pressure applied by the elements in the Flux_control_mesh_pt. More... | |
Mesh * | Flux_control_mesh_pt |
Mesh of elements which impose the pressure which controls the net flux. More... | |
double * | Prescribed_flux_value_pt |
Pointer to the value that stores the prescribed flux. More... | |
unsigned | Dof_number_for_unknown |
The id number of the "DOF type" to which the degree of freedom in this element is added to. This should be set to the number id of the Navier-Stokes pressure DOF block (which is dimension dependent!) if this element is added to a fluid mesh containing navier stokes elements. More... | |
unsigned | Dim |
spatial dim of NS system More... | |
Additional Inherited Members | |
Static Public Attributes inherited from oomph::GeneralisedElement | |
static bool | Suppress_warning_about_repeated_internal_data |
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... | |
Protected Attributes inherited from oomph::GeneralisedElement | |
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... | |
Static Protected Attributes inherited from oomph::GeneralisedElement | |
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... | |
/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
A class for an element that controls the net fluid flux across a boundary by the imposition of an unknown applied pressure to the Navier-Stokes equations. This element is used with a mesh of NavierStokesFluxControlElement elements which are attached to the boundary. Note: fill_in_contribution_to_jacobian() does not calculate Jacobian contributions for this element as they are calculated by NavierStokesFluxControlElement::fill_in_contribution_to_jacobian(...)
Definition at line 103 of file navier_stokes_flux_control_elements.h.
|
inline |
Constructor takes a mesh of TemplateFreeNavierStokesFluxControlElementBase elements that impose the pressure to control the flux, plus a pointer to the double which contains the desired flux value.
Definition at line 110 of file navier_stokes_flux_control_elements.h.
References oomph::GeneralisedElement::add_internal_data(), oomph::TemplateFreeNavierStokesFluxControlElementBase::add_pressure_data(), Dof_number_for_unknown, e, oomph::Mesh::element_pt(), Flux_control_mesh_pt, oomph::Mesh::nelement(), and Pressure_data_pt.
|
inline |
Empty Destructor - Data gets deleted automatically.
Definition at line 148 of file navier_stokes_flux_control_elements.h.
|
delete |
Broken copy constructor.
|
inline |
Broken assignment operator.
Spatial dimension of the problem
Definition at line 162 of file navier_stokes_flux_control_elements.h.
References Dim.
|
inline |
Function to set / get the nodal value of the "DOF type" to which the degree of freedom in this element (the pressure that enforces the required volume flux!) is added to. This should be set to the Navier-Stokes pressure DOF type (usually the dimension of the problem, for example, in 3D, the DOF types for single-physics Navier-Stokes elements are usually labelled 0, 1, 2, 3 for u, v and w velocities and pressure respectively. It is important to note that this is dimension dependent, so should not be hard coded in!! In particularly, this should not simply be set to the dimension of the problem if there is further splitting of the velocity DOF types) if this element is added to a fluid mesh containing Navier-Stokes elements.
Definition at line 229 of file navier_stokes_flux_control_elements.h.
References Dof_number_for_unknown.
|
inlinevirtual |
This function returns the residuals, but adds nothing to the Jacobian as this element's Jacobian contributions are calculated by the NavierStokesFluxControlElements which impose the traction used to control the flux.
Reimplemented from oomph::GeneralisedElement.
Definition at line 188 of file navier_stokes_flux_control_elements.h.
References fill_in_generic_residual_contribution_flux_control().
|
inlinevirtual |
Add the element's contribution to its residual vector: i.e. the flux constraint.
Reimplemented from oomph::GeneralisedElement.
Definition at line 178 of file navier_stokes_flux_control_elements.h.
References fill_in_generic_residual_contribution_flux_control().
|
inlineprotected |
This function returns the residuals for the flux control master element.
Definition at line 273 of file navier_stokes_flux_control_elements.h.
References e, oomph::Mesh::element_pt(), Flux_control_mesh_pt, oomph::TemplateFreeNavierStokesFluxControlElementBase::get_volume_flux(), oomph::Mesh::nelement(), and Prescribed_flux_value_pt.
Referenced by fill_in_contribution_to_jacobian(), and fill_in_contribution_to_residuals().
|
inlinevirtual |
Create a list of pairs for all unknowns in this element, so that the first entry in each pair contains the global equation number of the unknown, while the second one contains the number of the "DOF type" that this unknown is associated with. (Function can obviously only be called if the equation numbering scheme has been set up.) The single degree of freedom is given the DOF type number of Dof_number_for_unknown since it's expected this unknown is added to the Navier-Stokes pressure DOF block (it is also assumed that the user has set the Dof_number_for_unknown variable to the velocity DOF type using the function dof_number_for_unknown()).
Reimplemented from oomph::GeneralisedElement.
Reimplemented in oomph::NetFluxControlElementForWomersleyPressureControl.
Definition at line 244 of file navier_stokes_flux_control_elements.h.
References Dof_number_for_unknown, and oomph::GeneralisedElement::eqn_number().
|
inlinevirtual |
The number of "DOF types" that degrees of freedom in this element are sub-divided into - it's set to Dof_number_for_unknown+1 because it's expected this element is added to a fluid mesh containing navier stokes elements.
Reimplemented from oomph::GeneralisedElement.
Reimplemented in oomph::NetFluxControlElementForWomersleyPressureControl.
Definition at line 200 of file navier_stokes_flux_control_elements.h.
References Dof_number_for_unknown.
|
inline |
Function to return a pointer to the Data object whose single value is the pressure applied by the NavierStokesFluxControlElement elements.
Definition at line 170 of file navier_stokes_flux_control_elements.h.
References Pressure_data_pt.
Referenced by oomph::NetFluxControlElementForWomersleyPressureControl::NetFluxControlElementForWomersleyPressureControl().
|
private |
spatial dim of NS system
Definition at line 329 of file navier_stokes_flux_control_elements.h.
Referenced by dim().
|
private |
The id number of the "DOF type" to which the degree of freedom in this element is added to. This should be set to the number id of the Navier-Stokes pressure DOF block (which is dimension dependent!) if this element is added to a fluid mesh containing navier stokes elements.
Definition at line 326 of file navier_stokes_flux_control_elements.h.
Referenced by dof_number_for_unknown(), get_dof_numbers_for_unknowns(), ndof_types(), and NetFluxControlElement().
|
private |
Mesh of elements which impose the pressure which controls the net flux.
Definition at line 316 of file navier_stokes_flux_control_elements.h.
Referenced by fill_in_generic_residual_contribution_flux_control(), and NetFluxControlElement().
|
private |
Pointer to the value that stores the prescribed flux.
Definition at line 319 of file navier_stokes_flux_control_elements.h.
Referenced by fill_in_generic_residual_contribution_flux_control().
|
private |
Data object whose single value is the pressure applied by the elements in the Flux_control_mesh_pt.
Definition at line 312 of file navier_stokes_flux_control_elements.h.
Referenced by NetFluxControlElement(), and pressure_data_pt().