28 #ifndef OOMPH_LINEARISED_NAVIER_STOKES_ELEMENTS_HEADER
29 #define OOMPH_LINEARISED_NAVIER_STOKES_ELEMENTS_HEADER
33 #include <oomph-lib-config.h>
37 #include "../generic/Qelements.h"
38 #include "../generic/fsi.h"
130 DShape& dtestdx)
const = 0;
140 DShape& dtestdx)
const = 0;
144 Shape& psi)
const = 0;
162 for (
unsigned i = 0;
i <
DIM;
i++)
170 (*Base_flow_u_fct_pt)(time,
x, result);
186 for (
unsigned i = 0;
i <
DIM;
i++)
189 for (
unsigned j = 0;
j <
DIM;
j++)
198 (*Base_flow_dudx_fct_pt)(time,
x, result);
206 this->Index_of_eigenvalue +
i);
253 const double&
re()
const
405 for (
unsigned t = 0;
t < n_time;
t++)
434 const unsigned&
i)
const = 0;
457 const unsigned&
real)
const;
463 const unsigned nplot = 5;
469 void output(std::ostream& outfile,
const unsigned& nplot);
475 const unsigned nplot = 5;
481 void output(FILE* file_pt,
const unsigned& nplot);
487 const unsigned& nplot,
526 const unsigned&
i)
const
529 const unsigned n_node =
nnode();
541 double interpolated_u = 0.0;
544 for (
unsigned l = 0; l < n_node; l++)
546 interpolated_u +=
nodal_value(l, u_nodal_index) * psi[l];
549 return (interpolated_u);
555 const unsigned&
i)
const
561 Shape psi(n_pressure_nodes);
567 double interpolated_p = 0.0;
570 for (
unsigned l = 0; l < n_pressure_nodes; l++)
578 return (interpolated_p);
649 for (
unsigned i = 0;
i < 4;
i++)
673 for (
unsigned i = 2;
i < 4;
i++)
681 unsigned n_node = this->
nnode();
682 for (
unsigned n = 0;
n < n_node;
n++)
686 for (
unsigned i = 0;
i <
DIM; ++
i)
703 unsigned n_node = this->
nnode();
704 for (
unsigned n = 0;
n < n_node;
n++)
708 for (
unsigned i = 0;
i <
DIM; ++
i)
713 nod_pt->
unpin(2 *
i + real_index);
725 unsigned n_node = this->
nnode();
726 for (
unsigned n = 0;
n < n_node;
n++)
731 for (
unsigned i = 0;
i <
DIM; ++
i)
733 for (
unsigned j = 0;
j < 2; ++
j)
741 for (
unsigned i = 0;
i < 2; ++
i)
743 Data* local_data_pt =
745 Data* norm_local_data_pt =
747 for (
unsigned j = 0;
j < 3;
j++)
767 for (
unsigned i = 0;
i < 2;
i++)
789 void output(std::ostream& outfile,
const unsigned& n_plot)
801 void output(FILE* file_pt,
const unsigned& n_plot)
810 return 2 * (
DIM + 1);
884 for (
unsigned i = 0;
i < 3;
i++)
985 return (2 *
DIM +
i);
1031 for (
unsigned i = 0;
i < 2;
i++)
1052 void output(std::ostream& outfile,
const unsigned& n_plot)
1064 void output(FILE* file_pt,
const unsigned& n_plot)
1133 double psi1[2], psi2[2];
1141 for (
unsigned i = 0;
i < 2;
i++)
1143 for (
unsigned j = 0;
j < 2;
j++)
1146 psi[2 *
i +
j] = psi2[
i] * psi1[
j];
1161 for (
unsigned i = 0;
i < 4;
i++)
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
void pin_all()
Pin all the stored variables.
Definition: nodes.h:397
void pin(const unsigned &i)
Pin the i-th stored variable.
Definition: nodes.h:385
void unpin(const unsigned &i)
Unpin the i-th stored variable.
Definition: nodes.h:391
double * value_pt(const unsigned &i) const
Definition: nodes.h:324
void unpin_all()
Unpin all the stored variables.
Definition: nodes.h:407
TimeStepper *& time_stepper_pt()
Return the pointer to the timestepper.
Definition: nodes.h:238
void set_value(const unsigned &i, const double &value_)
Definition: nodes.h:271
double value(const unsigned &i) const
Definition: nodes.h:293
bool is_constrained(const unsigned &i)
Definition: nodes.h:472
FaceGeometry()
Definition: linearised_navier_stokes_elements.h:910
FaceGeometry()
Definition: linearised_navier_stokes_elements.h:1187
FaceGeometry()
Definition: linearised_navier_stokes_elements.h:898
FaceGeometry()
Definition: linearised_navier_stokes_elements.h:1175
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
double nodal_value(const unsigned &n, const unsigned &i) const
Definition: elements.h:2593
virtual void shape(const Vector< double > &s, Shape &psi) const =0
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
virtual double dshape_eulerian_at_knot(const unsigned &ipt, Shape &psi, DShape &dpsidx) const
Definition: elements.cc:3325
double dshape_eulerian(const Vector< double > &s, Shape &psi, DShape &dpsidx) const
Definition: elements.cc:3298
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
static DenseMatrix< double > Dummy_matrix
Definition: elements.h:227
int external_local_eqn(const unsigned &i, const unsigned &j)
Definition: elements.h:311
unsigned add_internal_data(Data *const &data_pt, const bool &fd=true)
Definition: elements.cc:62
TimeStepper *& time_stepper_pt()
Definition: geom_objects.h:192
Definition: linearised_navier_stokes_eigenvalue_elements.h:52
Data * eigenvalue_data_pt()
Access to Data that contains the traded pressure.
Definition: linearised_navier_stokes_eigenvalue_elements.h:94
unsigned index_of_eigenvalue()
Return the index of Data object at which the traded pressure is stored.
Definition: linearised_navier_stokes_eigenvalue_elements.h:106
Definition: linearised_navier_stokes_elements.h:54
LinearisedNavierStokesEquations()
Definition: linearised_navier_stokes_elements.h:221
virtual unsigned u_index_linearised_nst(const unsigned &i) const
Definition: linearised_navier_stokes_elements.h:380
double *& re_pt()
Pointer to Reynolds number.
Definition: linearised_navier_stokes_elements.h:275
virtual void pshape_linearised_nst(const Vector< double > &s, Shape &psi, Shape &test) const =0
Compute the pressure shape and test functions at local coordinate s.
LinearisedNavierStokesEigenfunctionNormalisationElement * normalisation_element_pt()
Pointer to normalisation element.
Definition: linearised_navier_stokes_elements.h:299
virtual void pin_real_or_imag(const unsigned &real)=0
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Compute the element's residual Vector.
Definition: linearised_navier_stokes_elements.h:491
static Vector< double > Gamma
Vector to decide whether the stress-divergence form is used or not.
Definition: linearised_navier_stokes_elements.h:247
virtual unsigned npres_linearised_nst() const =0
void output(FILE *file_pt)
Definition: linearised_navier_stokes_elements.h:473
void(* Base_flow_dudx_fct_pt)(const double &time, const Vector< double > &x, DenseMatrix< double > &result)
Definition: linearised_navier_stokes_elements.h:108
const double & re() const
Reynolds number.
Definition: linearised_navier_stokes_elements.h:253
unsigned Data_number_of_eigenvalue
Index of datum where eigenvalue is stored.
Definition: linearised_navier_stokes_elements.h:97
virtual int p_local_eqn(const unsigned &n, const unsigned &i)=0
LinearisedNavierStokesEigenfunctionNormalisationElement * Normalisation_element_pt
Pointer to the normalisation element.
Definition: linearised_navier_stokes_elements.h:93
const double & re_st() const
Product of Reynolds and Strouhal number (=Womersley number)
Definition: linearised_navier_stokes_elements.h:259
void strain_rate(const Vector< double > &s, DenseMatrix< double > &strain_rate, const unsigned &real) const
Definition: linearised_navier_stokes_elements.cc:248
void output_veloc(std::ostream &outfile, const unsigned &nplot, const unsigned &t)
Definition: linearised_navier_stokes_elements.cc:56
void(*&)(const double &time, const Vector< double > &x, DenseMatrix< double > &f) base_flow_dudx_fct_pt()
Definition: linearised_navier_stokes_elements.h:363
virtual void pshape_linearised_nst(const Vector< double > &s, Shape &psi) const =0
Compute the pressure shape functions at local coordinate s.
bool ALE_is_disabled
Definition: linearised_navier_stokes_elements.h:115
double du_dt_linearised_nst(const unsigned &n, const unsigned &i) const
Definition: linearised_navier_stokes_elements.h:387
void set_eigenfunction_normalisation_element(LinearisedNavierStokesEigenfunctionNormalisationElement *const &normalisation_el_pt)
the boolean flag check_nodal_data is set to false.
Definition: linearised_navier_stokes_elements.h:305
double * Lambda_pt
Pointer to eigenvalue.
Definition: linearised_navier_stokes_elements.h:86
virtual void get_base_flow_u(const double &time, const unsigned &ipt, const Vector< double > &x, Vector< double > &result) const
Definition: linearised_navier_stokes_elements.h:153
virtual double p_linearised_nst(const unsigned &n_p, const unsigned &i) const =0
static int Pressure_not_stored_at_node
Definition: linearised_navier_stokes_elements.h:58
virtual void pin_pressure_normalisation_dofs()=0
Pin the normalisation dofs.
double *& lambda_pt()
Pointer to lambda.
Definition: linearised_navier_stokes_elements.h:287
virtual double dshape_and_dtest_eulerian_at_knot_linearised_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
void output(std::ostream &outfile)
Definition: linearised_navier_stokes_elements.h:461
int eigenvalue_local_eqn(const unsigned &i)
Definition: linearised_navier_stokes_elements.h:203
double * Viscosity_Ratio_pt
Definition: linearised_navier_stokes_elements.h:73
void disable_ALE()
Definition: linearised_navier_stokes_elements.h:417
void(*&)(const double &time, const Vector< double > &x, Vector< double > &f) base_flow_u_fct_pt()
Access function for the base flow solution pointer.
Definition: linearised_navier_stokes_elements.h:354
void(* Base_flow_u_fct_pt)(const double &time, const Vector< double > &x, Vector< double > &result)
Pointer to base flow solution (velocity components) function.
Definition: linearised_navier_stokes_elements.h:102
double *& omega_pt()
Pointer to frequency.
Definition: linearised_navier_stokes_elements.h:293
virtual void fill_in_generic_residual_contribution_linearised_nst(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix, unsigned flag)
Definition: linearised_navier_stokes_elements.cc:366
void enable_ALE()
Definition: linearised_navier_stokes_elements.h:426
const double & lambda() const
Definition: linearised_navier_stokes_elements.h:264
double interpolated_p_linearised_nst(const Vector< double > &s, const unsigned &i) const
Definition: linearised_navier_stokes_elements.h:554
double * ReSt_pt
Pointer to global Reynolds number x Strouhal number (=Womersley)
Definition: linearised_navier_stokes_elements.h:83
virtual void get_base_flow_dudx(const double &time, const unsigned &ipt, const Vector< double > &x, DenseMatrix< double > &result) const
Definition: linearised_navier_stokes_elements.h:177
double * Re_pt
Pointer to global Reynolds number.
Definition: linearised_navier_stokes_elements.h:80
double *& viscosity_ratio_pt()
Pointer to the viscosity ratio.
Definition: linearised_navier_stokes_elements.h:335
unsigned Index_of_eigenvalue
Definition: linearised_navier_stokes_elements.h:99
double *& re_st_pt()
Pointer to product of Reynolds and Strouhal number (=Womersley number)
Definition: linearised_navier_stokes_elements.h:281
double *& density_ratio_pt()
Pointer to the density ratio.
Definition: linearised_navier_stokes_elements.h:348
double * Density_Ratio_pt
Definition: linearised_navier_stokes_elements.h:77
static double Default_Physical_Constant_Value
Definition: linearised_navier_stokes_elements.h:62
const double & viscosity_ratio() const
Definition: linearised_navier_stokes_elements.h:329
double interpolated_u_linearised_nst(const Vector< double > &s, const unsigned &i) const
Definition: linearised_navier_stokes_elements.h:525
const double & omega() const
Definition: linearised_navier_stokes_elements.h:269
virtual void unpin_real_or_imag(const unsigned &real)=0
virtual int p_index_linearised_nst(const unsigned &i) const
Which nodal value represents the pressure?
Definition: linearised_navier_stokes_elements.h:448
static double Default_Physical_Ratio_Value
Static default value for the physical ratios (all initialised to one)
Definition: linearised_navier_stokes_elements.h:65
const double & density_ratio() const
Definition: linearised_navier_stokes_elements.h:342
double * Omega_pt
Pointer to frequency.
Definition: linearised_navier_stokes_elements.h:89
virtual double dshape_and_dtest_eulerian_linearised_nst(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
Definition: linearised_navier_stokes_elements.h:597
void fix_pressure(const unsigned &p_dof, const double &pvalue)
Definition: linearised_navier_stokes_elements.h:764
void output(std::ostream &outfile)
Redirect output to NavierStokesEquations output.
Definition: linearised_navier_stokes_elements.h:783
double p_linearised_nst(const unsigned &i_internal, const unsigned &i) const
Definition: linearised_navier_stokes_elements.h:664
void output(FILE *file_pt)
Redirect output to NavierStokesEquations output.
Definition: linearised_navier_stokes_elements.h:795
LinearisedQCrouzeixRaviartElement()
Definition: linearised_navier_stokes_elements.h:642
void output(FILE *file_pt, const unsigned &n_plot)
Redirect output to NavierStokesEquations output.
Definition: linearised_navier_stokes_elements.h:801
void copy_efunction_to_normalisation()
Definition: linearised_navier_stokes_elements.h:723
double dshape_and_dtest_eulerian_linearised_nst(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: linearised_navier_stokes_elements.h:825
static const unsigned Initial_Nvalue[]
Static array of ints to hold required number of variables at nodes.
Definition: linearised_navier_stokes_elements.h:600
void pin_real_or_imag(const unsigned &real_index)
Definition: linearised_navier_stokes_elements.h:679
unsigned npres_linearised_nst() const
Definition: linearised_navier_stokes_elements.h:757
Vector< unsigned > P_linearised_nst_internal_index
Definition: linearised_navier_stokes_elements.h:607
void pshape_linearised_nst(const Vector< double > &s, Shape &psi) const
Compute the pressure shape functions at local coordinate s.
Definition: linearised_navier_stokes_elements.h:866
int p_local_eqn(const unsigned &n, const unsigned &i)
Definition: linearised_navier_stokes_elements.h:777
void output(std::ostream &outfile, const unsigned &n_plot)
Redirect output to NavierStokesEquations output.
Definition: linearised_navier_stokes_elements.h:789
void pin_pressure_normalisation_dofs()
Pin the normalisation dofs.
Definition: linearised_navier_stokes_elements.h:671
double dshape_and_dtest_eulerian_at_knot_linearised_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: linearised_navier_stokes_elements.h:846
void unpin_real_or_imag(const unsigned &real_index)
Definition: linearised_navier_stokes_elements.h:701
unsigned ndof_types() const
Definition: linearised_navier_stokes_elements.h:808
virtual unsigned required_nvalue(const unsigned &n) const
Return number of values (pinned or dofs) required at local node n.
Definition: linearised_navier_stokes_elements.cc:792
Definition: linearised_navier_stokes_elements.h:927
double dshape_and_dtest_eulerian_at_knot_linearised_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: linearised_navier_stokes_elements.h:1110
void fix_pressure(const unsigned &n_p, const double &pvalue)
Definition: linearised_navier_stokes_elements.h:1028
void output(std::ostream &outfile)
Redirect output to NavierStokesEquations output.
Definition: linearised_navier_stokes_elements.h:1046
void pin_pressure_normalisation_dofs()
Pin the normalisation dofs.
Definition: linearised_navier_stokes_elements.h:996
void output(FILE *file_pt, const unsigned &n_plot)
Redirect output to NavierStokesEquations output.
Definition: linearised_navier_stokes_elements.h:1064
unsigned ndof_types() const
Definition: linearised_navier_stokes_elements.h:1071
void output(std::ostream &outfile, const unsigned &n_plot)
Redirect output to NavierStokesEquations output.
Definition: linearised_navier_stokes_elements.h:1052
unsigned npres_linearised_nst() const
Definition: linearised_navier_stokes_elements.h:1021
static const unsigned Pconv[]
Set the data for the pressure conversion array.
Definition: linearised_navier_stokes_elements.h:935
virtual void pin_real_or_imag(const unsigned &real)
Definition: linearised_navier_stokes_elements.h:1004
static const unsigned Initial_Nvalue[]
Static array of ints to hold number of variables at node.
Definition: linearised_navier_stokes_elements.h:930
void output(FILE *file_pt)
Redirect output to NavierStokesEquations output.
Definition: linearised_navier_stokes_elements.h:1058
void pshape_linearised_nst(const Vector< double > &s, Shape &psi) const
Compute the pressure shape functions at local coordinate s.
Definition: linearised_navier_stokes_elements.h:1129
virtual int p_index_linearised_nst(const unsigned &i) const
Definition: linearised_navier_stokes_elements.h:983
double p_linearised_nst(const unsigned &n_p, const unsigned &i) const
Definition: linearised_navier_stokes_elements.h:990
LinearisedQTaylorHoodElement()
Constructor, no internal data points.
Definition: linearised_navier_stokes_elements.h:969
virtual unsigned required_nvalue(const unsigned &n) const
Definition: linearised_navier_stokes_elements.h:976
int p_local_eqn(const unsigned &n, const unsigned &i)
Definition: linearised_navier_stokes_elements.h:1040
double dshape_and_dtest_eulerian_linearised_nst(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: linearised_navier_stokes_elements.h:1088
virtual void unpin_real_or_imag(const unsigned &real)
Definition: linearised_navier_stokes_elements.h:1011
double value(const unsigned &i) const
Definition: nodes.cc:2408
Definition: oomph_definitions.h:222
Definition: elements.h:3439
Definition: Qelements.h:459
Definition: timesteppers.h:231
unsigned ntstorage() const
Definition: timesteppers.h:601
virtual double weight(const unsigned &i, const unsigned &j) const
Access function for j-th weight for the i-th derivative.
Definition: timesteppers.h:594
bool is_steady() const
Definition: timesteppers.h:389
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
RealScalar s
Definition: level1_cplx_impl.h:130
#define DIM
Definition: linearised_navier_stokes_elements.h:44
void shape< 2 >(const double &s, double *Psi)
1D shape functions specialised to linear order (2 Nodes)
Definition: shape.h:608
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
list x
Definition: plotDoE.py:28
t
Definition: plotPSD.py:36
Definition: indexed_view.cpp:20
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2