26 #ifndef DOUBLE_BUOYANT_NAVIER_STOKES_ELEMENTS_HEADER
27 #define DOUBLE_BUOYANT_NAVIER_STOKES_ELEMENTS_HEADER
58 template<
unsigned DIM>
59 class DoubleBuoyantQCrouzeixRaviartElement :
60 public virtual QAdvectionDiffusionReactionElement<2,DIM,3>,
61 public virtual QCrouzeixRaviartElement<DIM>
110 const double &
n()
const {
return *
N_pt;}
138 const double J_m = this->
km()*(
pow(C[0],this->
n()) - C[1]);
150 const double Km = this->
km();
const double N = this->
n();
152 dRdC(0,0) = Km*
N*
pow(
C[0],
N-1); dRdC(0,1) = -Km;
153 dRdC(1,0) = -dRdC(0,0); dRdC(1,1) = -dRdC(0,1);
167 void output(std::ostream &outfile,
const unsigned &nplot)
177 for (
unsigned iplot=0;iplot<num_plot_points;iplot++)
183 for(
unsigned i=0;
i<
DIM;
i++)
187 for(
unsigned i=0;
i<
DIM;
i++)
194 for(
unsigned i=0;
i<2;
i++)
200 outfile << std::endl;
212 void output(FILE* file_pt,
const unsigned &n_plot)
216 void output_fct(std::ostream &outfile,
const unsigned &Nplot,
224 void output_fct(std::ostream &outfile,
const unsigned &Nplot,
247 double&
error,
double& norm)
258 double&
error,
double& norm)
289 #ifdef USE_FD_JACOBIAN_FOR_BUOYANT_Q_CROZIER_RAVIART_ELEMENT
310 unsigned u_nodal_nst[
DIM];
311 for(
unsigned i=0;
i<
DIM;
i++)
316 unsigned C_nodal_adv_diff_react[2];
317 for(
unsigned r=0;
r<2;
r++)
322 unsigned n_dof = this->
ndof();
328 int local_unknown =0, local_eqn = 0;
334 unsigned n_node = this->
nnode();
340 for(
unsigned n=0;
n<n_node;
n++)
343 for(
unsigned i=0;
i<
DIM;
i++)
349 if(local_unknown >= 0)
355 double old_var = *value_pt;
358 *value_pt += fd_step;
364 for(
unsigned m=0;
m<n_dof;
m++) {newres[
m] = 0.0;}
370 for(
unsigned m=0;
m<n_node;
m++)
372 for(
unsigned r=0;
r<2;
r++)
380 double sum = (newres[local_eqn] - residuals[local_eqn])/fd_step;
381 jacobian(local_eqn,local_unknown) = sum;
394 for(
unsigned r=0;
r<2;
r++)
400 if(local_unknown >= 0)
407 double old_var = *value_pt;
410 *value_pt += fd_step;
416 for(
unsigned m=0;
m<n_dof;
m++) {newres[
m] = 0.0;}
420 for(
unsigned m=0;
m<n_node;
m++)
423 for(
unsigned j=0;
j<
DIM;
j++)
429 double sum = (newres[local_eqn] - residuals[local_eqn])/fd_step;
430 jacobian(local_eqn,local_unknown) = sum;
472 residuals,jacobian,mass_matrix);
476 residuals,jacobian,mass_matrix);
487 const unsigned n_node = this->
nnode();
492 for(
unsigned r=0;
r<2;++
r)
497 for(
unsigned ipt=0;ipt<n_intpt;ipt++)
509 for(
unsigned l=0;l<n_node;++l)
511 const double psi_ = psi(l);
512 for(
unsigned r=0;
r<2;++
r)
518 for(
unsigned r=0;
r<2;++
r)
520 sum[
r] += interpolated_C[
r]*
W;
525 int_C = sum[0]; int_M = sum[1];
540 template<
unsigned int DIM>
552 class FaceGeometry<FaceGeometry<DoubleBuoyantQCrouzeixRaviartElement<2> > >:
553 public virtual PointElement
581 template<
unsigned DIM>
634 const double &
n()
const {
return *
N_pt;}
662 const double J_m = this->
km()*(
pow(C[0],this->
n()) - C[1]);
674 const double Km = this->
km();
const double N = this->
n();
676 dRdC(0,0) = Km*
N*
pow(
C[0],
N-1); dRdC(0,1) = -Km;
677 dRdC(1,0) = -dRdC(0,0); dRdC(1,1) = -dRdC(0,1);
691 void output(std::ostream &outfile,
const unsigned &nplot)
701 for (
unsigned iplot=0;iplot<num_plot_points;iplot++)
707 for(
unsigned i=0;
i<
DIM;
i++)
711 for(
unsigned i=0;
i<
DIM;
i++)
718 for(
unsigned i=0;
i<2;
i++)
724 outfile << std::endl;
738 void output(FILE* file_pt,
const unsigned &n_plot)
742 void output_fct(std::ostream &outfile,
const unsigned &Nplot,
750 void output_fct(std::ostream &outfile,
const unsigned &Nplot,
802 for(
unsigned i=0;
i<
DIM;
i++) {values.push_back(nst_values[
i]);}
805 for(
unsigned i=0;
i<2;
i++) {values.push_back(advection_values[
i]);}
832 for(
unsigned i=0;
i<
DIM;
i++) {values.push_back(nst_values[
i]);}
835 for(
unsigned i=0;
i<
DIM;
i++) {values.push_back(advection_values[
i]);}
878 this->Km_pt = cast_father_element_pt->
km_pt();
879 this->N_pt = cast_father_element_pt->
n_pt();
902 unsigned n_fluid_flux =
909 unsigned n_conc_flux =
918 for(
unsigned i=0;
i<n_conc_flux;
i++)
920 flux[n_fluid_flux+
i] = conc_flux[
i];
935 unsigned n_fluid_flux =
938 unsigned n_conc_flux =
944 for(
unsigned i=0;
i<n_fluid_flux;
i++) {flux_index[
i] = 0;}
947 for(
unsigned i=0;
i<n_conc_flux;
i++) {flux_index[n_fluid_flux +
i] = 1;}
960 double&
error,
double& norm)
971 double&
error,
double& norm)
1003 #ifdef USE_FD_JACOBIAN_FOR_BUOYANT_Q_CROZIER_RAVIART_ELEMENT
1024 unsigned u_nodal_nst[
DIM];
1025 for(
unsigned i=0;
i<
DIM;
i++)
1030 unsigned C_nodal_adv_diff_react[2];
1031 for(
unsigned r=0;
r<2;
r++)
1035 unsigned n_dof = this->
ndof();
1041 int local_unknown =0, local_eqn = 0;
1047 unsigned n_node = this->
nnode();
1053 for(
unsigned n=0;
n<n_node;
n++)
1059 for(
unsigned i=0;
i<
DIM;
i++)
1062 if(local_node_pt->
is_hanging(u_nodal_nst[
i]) ==
false)
1068 if(local_unknown >= 0)
1071 double *value_pt = local_node_pt->
value_pt(u_nodal_nst[
i]);
1074 double old_var = *value_pt;
1077 *value_pt += fd_step;
1083 for(
unsigned l=0;l<n_dof;l++) {newres[l] = 0.0;}
1089 for(
unsigned l=0;l<n_node;l++)
1091 for(
unsigned r=0;
r<2;
r++)
1099 double sum = (newres[local_eqn] - residuals[local_eqn])/fd_step;
1100 jacobian(local_eqn,local_unknown) = sum;
1106 *value_pt = old_var;
1115 const unsigned n_master = hang_info_pt->
nmaster();
1116 for(
unsigned m=0;
m<n_master;
m++)
1124 if(local_unknown >= 0)
1127 double*
const value_pt = master_node_pt->
value_pt(u_nodal_nst[
i]);
1129 double old_var = *value_pt;
1132 *value_pt += fd_step;
1138 for(
unsigned l=0;l<n_dof;l++) {newres[l] = 0.0;}
1144 for(
unsigned l=0;l<n_node;l++)
1146 for(
unsigned r=0;
r<2;
r++)
1154 double sum = (newres[local_eqn] - residuals[local_eqn])/fd_step;
1155 jacobian(local_eqn,local_unknown) = sum;
1161 *value_pt = old_var;
1169 for(
unsigned r=0;
r<2;
r++)
1172 if(local_node_pt->
is_hanging(C_nodal_adv_diff_react[
r]) ==
false)
1178 if(local_unknown >= 0)
1182 local_node_pt->
value_pt(C_nodal_adv_diff_react[
r]);
1185 double old_var = *value_pt;
1188 *value_pt += fd_step;
1194 for(
unsigned l=0;l<n_dof;l++) {newres[l] = 0.0;}
1198 for(
unsigned l=0;l<n_node;l++)
1201 for(
unsigned j=0;
j<
DIM;
j++)
1207 double sum = (newres[local_eqn] - residuals[local_eqn])/fd_step;
1208 jacobian(local_eqn,local_unknown) = sum;
1214 *value_pt = old_var;
1222 const unsigned n_master = hang_info_pt->
nmaster();
1223 for(
unsigned m=0;
m<n_master;
m++)
1229 local_unknown = this->
local_hang_eqn(master_node_pt,C_nodal_adv_diff_react[
r]);
1231 if(local_unknown >= 0)
1234 double*
const value_pt = master_node_pt->
value_pt(C_nodal_adv_diff_react[
r]);
1237 double old_var = *value_pt;
1240 *value_pt += fd_step;
1246 for(
unsigned l=0;l<n_dof;l++) {newres[l] = 0.0;}
1250 for(
unsigned l=0;l<n_node;l++)
1253 for(
unsigned j=0;
j<
DIM;
j++)
1259 double sum = (newres[local_eqn] - residuals[local_eqn])/fd_step;
1260 jacobian(local_eqn,local_unknown) = sum;
1266 *value_pt = old_var;
1305 residuals,jacobian,mass_matrix);
1309 residuals,jacobian,mass_matrix);
1320 const unsigned n_node = this->
nnode();
1324 unsigned C_index[2];
1325 for(
unsigned r=0;
r<2;++
r)
1330 for(
unsigned ipt=0;ipt<n_intpt;ipt++)
1342 for(
unsigned l=0;l<n_node;++l)
1344 const double psi_ = psi(l);
1345 for(
unsigned r=0;
r<2;++
r)
1351 for(
unsigned r=0;
r<2;++
r)
1353 sum[
r] += interpolated_C[
r]*
W;
1358 int_C = sum[0]; int_M = sum[1];
1373 template<
unsigned int DIM>
int i
Definition: BiCGSTAB_step_by_step.cpp:9
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
RowVector3d w
Definition: Matrix_resize_int.cpp:3
@ R
Definition: StatisticsVector.h:21
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Add the element's contribution to its residual vector (wrapper)
Definition: advection_diffusion_reaction_elements.h:519
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: advection_diffusion_reaction_elements.h:533
void enable_ALE()
Definition: advection_diffusion_reaction_elements.h:189
double interpolated_c_adv_diff_react(const Vector< double > &s, const unsigned &i) const
Return FE representation of function value c_i(s) at local coordinate s.
Definition: advection_diffusion_reaction_elements.h:556
void disable_ALE()
Definition: advection_diffusion_reaction_elements.h:180
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: advection_diffusion_reaction_elements.h:544
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
Definition: db_navier_st_elements.h:61
void compute_norm(double &norm)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:158
void get_reaction_deriv_adv_diff_react(const unsigned &ipt, const Vector< double > &C, DenseMatrix< double > &dRdC) const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:145
static double Default_Physical_Constant_Value
The static default value of the Rayleigh number.
Definition: db_navier_st_elements.h:72
void fill_in_off_diagonal_jacobian_blocks_by_fd(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:305
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: db_navier_st_elements.h:464
void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:256
void compute_error(std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:244
void get_reaction_adv_diff_react(const unsigned &ipt, const Vector< double > &C, Vector< double > &R) const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:133
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:466
void integrated_C_and_M(double &int_C, double &int_M)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:481
void output_fct(std::ostream &outfile, const unsigned &Nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output function for an exact solution: Broken default.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:216
void output(std::ostream &outfile)
Overload the standard output function with the broken default.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:162
const double & n() const
Access function for the number of monomers in the micelle.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:110
void unfix_pressure(const unsigned &p_dof)
UnPin p_dof-th pressure dof.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:89
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:278
unsigned c_index_adv_diff_react(const unsigned &i) const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:236
void output(std::ostream &outfile, const unsigned &nplot)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:167
void output_fct(std::ostream &outfile, const unsigned &Nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:224
double * Km_pt
Pointer to private data. The value of Km.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:67
void enable_ALE()
Final override for enable ALE.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:124
const double & km() const
Access function for the transfer constant.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:104
void output(FILE *file_pt, const unsigned &n_plot)
C-style output function: Broken default.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:212
double *& n_pt()
Access function for the pointer to the number of monomers in the micelle.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:113
DoubleBuoyantQCrouzeixRaviartElement()
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:80
double *& km_pt()
Access function for the pointer to transfer constant.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:107
void disable_ALE()
Final override for disable ALE.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:116
double * N_pt
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:70
void output(FILE *file_pt)
C-style output function: Broken default.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:208
unsigned required_nvalue(const unsigned &n) const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:98
void get_wind_adv_diff_react(const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &wind) const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:264
FaceGeometry()
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:545
FaceGeometry()
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:556
FaceGeometry()
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:1389
FaceGeometry()
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:1378
Definition: elements.h:4998
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: elements.h:1735
virtual void output_fct(std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output an exact solution over the element.
Definition: elements.h:3104
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 output(std::ostream &outfile)
Definition: elements.h:3050
virtual std::string tecplot_zone_string(const unsigned &nplot) const
Definition: elements.h:3161
virtual double interpolated_x(const Vector< double > &s, const unsigned &i) const
Return FE interpolated coordinate x[i] at local coordinate s.
Definition: elements.cc:3962
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 void compute_error(FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Calculate the norm of the error and that of the exact solution.
Definition: elements.h:3198
void(* SteadyExactSolutionFctPt)(const Vector< double > &, Vector< double > &)
Definition: elements.h:1759
Integral *const & integral_pt() const
Return the pointer to the integration scheme (const version)
Definition: elements.h:1963
virtual void get_s_plot(const unsigned &i, const unsigned &nplot, Vector< double > &s, const bool &shifted_to_interior=false) const
Definition: elements.h:3148
virtual unsigned nplot_points(const unsigned &nplot) const
Definition: elements.h:3186
virtual void write_tecplot_zone_footer(std::ostream &outfile, const unsigned &nplot) const
Definition: elements.h:3174
virtual double J_eulerian_at_knot(const unsigned &ipt) const
Definition: elements.cc:4168
virtual void shape_at_knot(const unsigned &ipt, Shape &psi) const
Definition: elements.cc:3220
void(* UnsteadyExactSolutionFctPt)(const double &, const Vector< double > &, Vector< double > &)
Definition: elements.h:1765
static double Default_fd_jacobian_step
Definition: elements.h:1198
unsigned ndof() const
Return the number of equations/dofs in the element.
Definition: elements.h:835
Data *& internal_data_pt(const unsigned &i)
Return a pointer to i-th internal data object.
Definition: elements.h:622
Node *const & master_node_pt(const unsigned &i) const
Return a pointer to the i-th master node.
Definition: nodes.h:791
unsigned nmaster() const
Return the number of master nodes.
Definition: nodes.h:785
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: matrices.h:74
void disable_ALE()
Definition: navier_stokes_elements.h:909
virtual unsigned u_index_nst(const unsigned &i) const
Definition: navier_stokes_elements.h:866
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Compute the element's residual Vector.
Definition: navier_stokes_elements.h:1260
void interpolated_u_nst(const Vector< double > &s, Vector< double > &veloc) const
Compute vector of FE interpolated velocity u at local coordinate s.
Definition: navier_stokes_elements.h:1505
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: navier_stokes_elements.h:1283
void enable_ALE()
Definition: navier_stokes_elements.h:918
void compute_norm(double &norm)
Compute norm of solution: square of the L2 norm of the velocities.
Definition: navier_stokes_elements.cc:186
virtual double interpolated_p_nst(const Vector< double > &s) const
Return FE interpolated pressure at local coordinate s.
Definition: navier_stokes_elements.h:1639
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: navier_stokes_elements.h:1273
HangInfo *const & hanging_pt() const
Definition: nodes.h:1228
bool is_hanging() const
Test whether the node is geometrically hanging.
Definition: nodes.h:1285
Definition: elements.h:3439
Definition: advection_diffusion_reaction_elements.h:664
Definition: navier_stokes_elements.h:1749
unsigned P_nst_internal_index
Definition: navier_stokes_elements.h:1757
Definition: Qelements.h:459
unsigned num_Z2_flux_terms()
Number of 'flux' terms for Z2 error estimation.
Definition: refineable_advection_diffusion_reaction_elements.h:80
void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)
Definition: refineable_advection_diffusion_reaction_elements.h:87
void get_interpolated_values(const Vector< double > &s, Vector< double > &values)
Definition: refineable_advection_diffusion_reaction_elements.h:97
void further_build()
Definition: refineable_advection_diffusion_reaction_elements.h:166
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:585
void fill_in_off_diagonal_jacobian_blocks_by_fd(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:1019
void output(FILE *file_pt, const unsigned &n_plot)
C-style output function: Broken default.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:738
static double Default_Physical_Constant_Value
The static default value of the Rayleigh number.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:596
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:991
void get_interpolated_values(const unsigned &t, const Vector< double > &s, Vector< double > &values)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:814
void output(std::ostream &outfile)
Overload the standard output function with the broken default.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:686
void output(FILE *file_pt)
C-style output function: Broken default.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:734
void get_reaction_adv_diff_react(const unsigned &ipt, const Vector< double > &C, Vector< double > &R) const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:657
Node * vertex_node_pt(const unsigned &j) const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:773
void further_build()
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:865
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:1299
RefineableDoubleBuoyantQCrouzeixRaviartElement()
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:603
void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:969
unsigned nrecovery_order()
The recovery order is that of the NavierStokes elements.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:885
void output_fct(std::ostream &outfile, const unsigned &Nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:750
double *& km_pt()
Access function for the pointer to transfer constant.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:631
void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:899
unsigned num_Z2_flux_terms()
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:890
void compute_error(std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:957
double *& n_pt()
Access function for the pointer to the number of monomers in the micelle.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:637
void get_reaction_deriv_adv_diff_react(const unsigned &ipt, const Vector< double > &C, DenseMatrix< double > &dRdC) const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:669
const double & n() const
Access function for the number of monomers in the micelle.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:634
void unfix_pressure(const unsigned &p_dof)
UnPin p_dof-th pressure dof.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:612
void enable_ALE()
Final override for enable ALE.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:648
unsigned ncont_interpolated_values() const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:778
void further_setup_hanging_nodes()
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:842
void disable_ALE()
Final override for disable ALE.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:640
void get_Z2_compound_flux_indices(Vector< unsigned > &flux_index)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:932
void rebuild_from_sons(Mesh *&mesh_pt)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:853
void compute_norm(double &norm)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:681
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:1277
unsigned nvertex_node() const
geometric element.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:768
void output(std::ostream &outfile, const unsigned &nplot)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:691
void output_fct(std::ostream &outfile, const unsigned &Nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output function for an exact solution: Broken default.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:742
unsigned required_nvalue(const unsigned &n) const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:621
double * N_pt
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:593
unsigned c_index_adv_diff_react(const unsigned &i) const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:762
void get_wind_adv_diff_react(const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &wind) const
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:977
void integrated_C_and_M(double &int_C, double &int_M)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:1314
double * Km_pt
Pointer to private data. The value of Km.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:590
unsigned ncompound_fluxes()
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:928
void get_interpolated_values(const Vector< double > &s, Vector< double > &values)
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:785
const double & km() const
Access function for the transfer constant.
Definition: two_layer_soluble_surfactant/double_buoyant_navier_stokes_elements.h:628
virtual RefineableElement * father_element_pt() const
Return a pointer to the father element.
Definition: refineable_elements.h:539
int local_hang_eqn(Node *const &node_pt, const unsigned &i)
Definition: refineable_elements.h:278
unsigned num_Z2_flux_terms()
Number of 'flux' terms for Z2 error estimation.
Definition: refineable_navier_stokes_elements.h:395
void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)
Definition: refineable_navier_stokes_elements.h:403
Definition: refineable_advection_diffusion_reaction_elements.h:211
void further_setup_hanging_nodes()
Definition: refineable_advection_diffusion_reaction_elements.h:268
void rebuild_from_sons(Mesh *&mesh_pt)
Rebuild from sons: empty.
Definition: refineable_advection_diffusion_reaction_elements.h:257
Refineable version of Crouzeix Raviart elements. Generic class definitions.
Definition: refineable_navier_stokes_elements.h:1109
void get_interpolated_values(const Vector< double > &s, Vector< double > &values)
Definition: refineable_navier_stokes_elements.h:1178
unsigned nrecovery_order()
Definition: refineable_navier_stokes_elements.h:1157
void further_setup_hanging_nodes()
Definition: refineable_navier_stokes_elements.h:1234
void rebuild_from_sons(Mesh *&mesh_pt)
@ N
Definition: constructor.cpp:22
RealScalar s
Definition: level1_cplx_impl.h:130
int * m
Definition: level2_cplx_impl.h:294
#define DIM
Definition: linearised_navier_stokes_elements.h:44
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 pow(const bfloat16 &a, const bfloat16 &b)
Definition: BFloat16.h:625
void flux(const double &time, const Vector< double > &x, double &flux)
Get flux applied along boundary x=0.
Definition: pretend_melt.cc:59
int error
Definition: calibrate.py:297
@ W
Definition: quadtree.h:63
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
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2