30 #ifndef CONSTRAINED_FLUID_VOLUME_ELEMENTS_HEADER
31 #define CONSTRAINED_FLUID_VOLUME_ELEMENTS_HEADER
35 #include <oomph-lib-config.h>
39 #include "../generic/Qelements.h"
40 #include "../generic/spines.h"
41 #include "../axisym_navier_stokes/axisym_navier_stokes_elements.h"
90 External_or_internal_data_index_of_traded_pressure,
96 External_or_internal_data_index_of_traded_pressure,
263 const bool& check_nodal_data =
true)
267 if (check_nodal_data)
271 long* global_eqn_number =
278 const unsigned n_node = this->
nnode();
279 for (
unsigned n = 0;
n < n_node;
n++)
284 unsigned n_value = nod_pt->
nvalue();
287 for (
unsigned i = 0;
i < n_value;
i++)
368 template<
class ELEMENT>
396 this->fill_in_jacobian_from_solid_position_by_fd(jacobian);
404 const unsigned&
i)
const
420 template<
class ELEMENT>
457 const unsigned&
i)
const
513 const unsigned n_node = this->
nnode();
517 DShape dpsifds(n_node, 1);
526 for (
unsigned ipt = 0; ipt < n_intpt; ipt++)
542 for (
unsigned l = 0; l < n_node; l++)
545 for (
unsigned i = 0;
i < 2;
i++)
552 ->u_index_axi_nst(
i)) *
559 double tlength = interpolated_t1[0] * interpolated_t1[0] +
560 interpolated_t1[1] * interpolated_t1[1];
571 for (
unsigned k = 0;
k < 2;
k++)
573 dot += interpolated_u[
k] * interpolated_n[
k];
601 template<
class ELEMENT>
629 this->fill_in_jacobian_from_solid_position_by_fd(jacobian);
637 const unsigned&
i)
const
654 template<
class ELEMENT>
691 const unsigned&
i)
const
752 template<
class ELEMENT>
781 this->fill_in_jacobian_from_solid_position_by_fd(jacobian);
790 const unsigned&
i)
const
812 template<
class ELEMENT>
850 const unsigned&
i)
const
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
Definition: axisym_navier_stokes_elements.h:115
Definition: constrained_volume_elements.h:483
void fill_in_generic_residual_contribution_volume_constraint(Vector< double > &residuals)
Definition: constrained_volume_elements.cc:352
double contribution_to_enclosed_volume()
Return this element's contribution to the total volume enclosed.
Definition: constrained_volume_elements.cc:267
AxisymmetricVolumeConstraintBoundingElement()
Empty Contructor.
Definition: constrained_volume_elements.h:494
double contribution_to_volume_flux()
Definition: constrained_volume_elements.h:507
~AxisymmetricVolumeConstraintBoundingElement()
Empty Destructor.
Definition: constrained_volume_elements.h:500
long * eqn_number_pt(const unsigned &i)
Return the pointer to the equation number of the i-th stored variable.
Definition: nodes.h:358
unsigned nvalue() const
Return number of values stored in data object (incl pinned ones).
Definition: nodes.h:483
double value(const unsigned &i) const
Definition: nodes.h:293
Definition: constrained_volume_elements.h:605
ElasticAxisymmetricVolumeConstraintBoundingElement(FiniteElement *const &element_pt, const int &face_index)
Definition: constrained_volume_elements.h:609
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: constrained_volume_elements.h:635
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: constrained_volume_elements.h:621
Definition: constrained_volume_elements.h:372
ElasticLineVolumeConstraintBoundingElement(FiniteElement *const &element_pt, const int &face_index)
Definition: constrained_volume_elements.h:376
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: constrained_volume_elements.h:388
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: constrained_volume_elements.h:402
Definition: constrained_volume_elements.h:756
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: constrained_volume_elements.h:773
ElasticSurfaceVolumeConstraintBoundingElement(FiniteElement *const &element_pt, const int &face_index)
Definition: constrained_volume_elements.h:760
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: constrained_volume_elements.h:788
void fill_in_jacobian_from_geometric_data(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: element_with_moving_nodes.cc:323
Definition: elements.h:4338
int & face_index()
Definition: elements.h:4626
void outer_unit_normal(const Vector< double > &s, Vector< double > &unit_normal) const
Compute outer unit normal at the specified local coordinate.
Definition: elements.cc:6006
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:4497
FiniteElement *& bulk_element_pt()
Pointer to higher-dimensional "bulk" element.
Definition: elements.h:4735
double interpolated_x(const Vector< double > &s, const unsigned &i) const
Definition: elements.h:4528
Definition: elements.h:4998
Definition: elements.h:1313
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
Definition: elements.h:2175
virtual void build_face_element(const int &face_index, FaceElement *face_element_pt)
Definition: elements.cc:5132
virtual void dshape_local_at_knot(const unsigned &ipt, Shape &psi, DShape &dpsids) const
Definition: elements.cc:3239
int nodal_local_eqn(const unsigned &n, const unsigned &i) const
Definition: elements.h:1432
unsigned nnode() const
Return the number of nodes.
Definition: elements.h:2210
Integral *const & integral_pt() const
Return the pointer to the integration scheme (const version)
Definition: elements.h:1963
double nodal_position(const unsigned &n, const unsigned &i) const
Definition: elements.h:2317
Definition: elements.h:73
Data *& external_data_pt(const unsigned &i)
Return a pointer to i-th external data object.
Definition: elements.h:659
Data *& internal_data_pt(const unsigned &i)
Return a pointer to i-th internal data object.
Definition: elements.h:622
unsigned add_external_data(Data *const &data_pt, const bool &fd=true)
Definition: elements.cc:307
int internal_local_eqn(const unsigned &i, const unsigned &j) const
Definition: elements.h:267
int external_local_eqn(const unsigned &i, const unsigned &j)
Definition: elements.h:311
virtual double knot(const unsigned &i, const unsigned &j) const =0
Return local coordinate s[j] of i-th integration point.
virtual unsigned nweight() const =0
Return the number of integration points of the scheme.
virtual double weight(const unsigned &i) const =0
Return weight of i-th integration point.
Definition: constrained_volume_elements.h:332
void fill_in_generic_residual_contribution_volume_constraint(Vector< double > &residuals)
Definition: constrained_volume_elements.cc:115
double contribution_to_enclosed_volume()
Return this element's contribution to the total volume enclosed.
Definition: constrained_volume_elements.cc:189
LineVolumeConstraintBoundingElement()
Empty Contructor.
Definition: constrained_volume_elements.h:343
~LineVolumeConstraintBoundingElement()
Empty Destructor.
Definition: constrained_volume_elements.h:346
double value(const unsigned &i) const
Definition: nodes.cc:2408
Definition: constrained_volume_elements.h:658
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: constrained_volume_elements.h:676
SpineAxisymmetricVolumeConstraintBoundingElement(FiniteElement *const &element_pt, const int &face_index)
Definition: constrained_volume_elements.h:662
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: constrained_volume_elements.h:689
Definition: constrained_volume_elements.h:424
SpineLineVolumeConstraintBoundingElement(FiniteElement *const &element_pt, const int &face_index)
Definition: constrained_volume_elements.h:428
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: constrained_volume_elements.h:442
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: constrained_volume_elements.h:455
Definition: constrained_volume_elements.h:816
SpineSurfaceVolumeConstraintBoundingElement(FiniteElement *const &element_pt, const int &face_index)
Definition: constrained_volume_elements.h:820
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: constrained_volume_elements.h:834
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: constrained_volume_elements.h:848
Definition: constrained_volume_elements.h:717
SurfaceVolumeConstraintBoundingElement()
Empty Contructor.
Definition: constrained_volume_elements.h:728
void fill_in_generic_residual_contribution_volume_constraint(Vector< double > &residuals)
Definition: constrained_volume_elements.cc:435
~SurfaceVolumeConstraintBoundingElement()
Empty Desctructor.
Definition: constrained_volume_elements.h:733
Definition: constrained_volume_elements.h:196
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Fill in contribution to residuals and Jacobian.
Definition: constrained_volume_elements.h:245
void set_volume_constraint_element(VolumeConstraintElement *const &vol_constraint_el_pt, const bool &check_nodal_data=true)
Definition: constrained_volume_elements.h:261
unsigned Index_of_traded_pressure_value
Definition: constrained_volume_elements.h:205
VolumeConstraintBoundingElement()
Definition: constrained_volume_elements.h:239
~VolumeConstraintBoundingElement()
Empty Destructor.
Definition: constrained_volume_elements.h:242
virtual void fill_in_generic_residual_contribution_volume_constraint(Vector< double > &residuals)=0
bool Traded_pressure_stored_at_node
Definition: constrained_volume_elements.h:210
int ptraded_local_eqn()
The local eqn number for the traded pressure.
Definition: constrained_volume_elements.h:213
unsigned Data_number_of_traded_pressure
Definition: constrained_volume_elements.h:201
Definition: constrained_volume_elements.h:66
void fill_in_generic_contribution_to_residuals_volume_constraint(Vector< double > &residuals)
Fill in the residuals for the volume constraint.
Definition: constrained_volume_elements.cc:38
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Fill in the residuals for the volume constraint.
Definition: constrained_volume_elements.h:152
~VolumeConstraintElement()
Empty destructor.
Definition: constrained_volume_elements.h:121
unsigned Index_of_traded_pressure_value
Definition: constrained_volume_elements.h:82
unsigned External_or_internal_data_index_of_traded_pressure
Definition: constrained_volume_elements.h:74
Data * p_traded_data_pt()
Access to Data that contains the traded pressure.
Definition: constrained_volume_elements.h:124
VolumeConstraintElement(double *prescribed_volume_pt)
Definition: constrained_volume_elements.cc:60
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Fill in the residuals and jacobian for the volume constraint.
Definition: constrained_volume_elements.h:159
double p_traded()
Return the traded pressure value.
Definition: constrained_volume_elements.h:139
bool Traded_pressure_stored_as_internal_data
Definition: constrained_volume_elements.h:78
int ptraded_local_eqn()
The local eqn number for the traded pressure.
Definition: constrained_volume_elements.h:85
unsigned index_of_traded_pressure()
Return the index of Data object at which the traded pressure is stored.
Definition: constrained_volume_elements.h:145
double * Prescribed_volume_pt
Pointer to the desired value of the volume.
Definition: constrained_volume_elements.h:69
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: constrained_volume_elements.h:169
RealScalar s
Definition: level1_cplx_impl.h:130
Scalar EIGEN_BLAS_FUNC_NAME() dot(int *n, Scalar *px, int *incx, Scalar *py, int *incy)
Definition: level1_real_impl.h:52
char char char int int * k
Definition: level2_impl.h:374
@ W
Definition: quadtree.h:63
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10