ProblemParameters Namespace Reference

Namespace for exact solution and problem parameters. More...

Functions

void update_dependent_parameters ()
 Helper function to update dependent parameters. More...
 
double zero_fct (const double &time, const Vector< double > &x)
 
double boundary_displ_0 (const double &time, const Vector< double > &x)
 Imposed boundary displacement in r-direction. More...
 
double boundary_displ_1 (const double &time, const Vector< double > &x)
 Imposed boundary displacement in z-direction. More...
 
double boundary_veloc_0 (const double &time, const Vector< double > &x)
 Imposed boundary velocity in r-direction. More...
 
double boundary_veloc_1 (const double &time, const Vector< double > &x)
 Imposed boundary velocity in z-direction. More...
 
double boundary_accel_0 (const double &time, const Vector< double > &x)
 Imposed boundary accel in r-direction. More...
 
double boundary_accel_1 (const double &time, const Vector< double > &x)
 Imposed boundary accel in z-direction. More...
 
double boundary_flux_0 (const double &time, const Vector< double > &x)
 Imposed boundary flux in r-direction. More...
 
double boundary_flux_1 (const double &time, const Vector< double > &x)
 Imposed boundary flux in z-direction. More...
 
double boundary_dfluxdt_0 (const double &time, const Vector< double > &x)
 Imposed boundary d/dt flux in r-direction. More...
 
double boundary_dfluxdt_1 (const double &time, const Vector< double > &x)
 Imposed boundary d/dt flux in z-direction. More...
 
double boundary_d2fluxdt2_0 (const double &time, const Vector< double > &x)
 Imposed boundary d2/dt2 flux in r-direction. More...
 
double boundary_d2fluxdt2_1 (const double &time, const Vector< double > &x)
 Imposed boundary d2/dt2 flux in z-direction. More...
 
void exact_soln (const double &time, const Vector< double > &x, Vector< double > &soln)
 
void Solid_body_force (const double &time, const Vector< double > &x, Vector< double > &b)
 Solid body force. More...
 
void Fluid_body_force (const double &time, const Vector< double > &x, Vector< double > &f)
 Fluid body force. More...
 
void Mass_source (const double &time, const Vector< double > &x, double &f)
 Source term for continuity. More...
 
double pressure_magnitude (const double &time)
 Get time-dep pressure magnitude. More...
 
void boundary_pressure (const double &time, const Vector< double > &x, const Vector< double > &n, double &result)
 Pressure around the boundary of the domain. More...
 
void boundary_traction (const double &time, const Vector< double > &x, const Vector< double > &n, Vector< double > &traction)
 Boundary traction. More...
 
std::string Directory ("RESLT")
 
template<class ELEMENT >
void edge_sign_setup (Mesh *mesh_pt)
 
std::complex< doubleI (0.0, 1.0)
 Imaginary unit. More...
 
void get_exact_u (const Vector< double > &x, Vector< double > &u)
 Exact solution as a Vector of size 2, containing real and imag parts. More...
 
void exact_minus_dudr (const Vector< double > &x, std::complex< double > &flux)
 
void atmospheric_radiation (const double &time, double &solar_flux_magnitude, Vector< double > &solar_flux_unit_vector, double &total_diffuse_radiation)
 
void unit_flux (const double &time, const Vector< double > &x, double &flux)
 hierher temp flux. More...
 
void body_force (const double &time, const Vector< double > &x, Vector< double > &result)
 The body force function. More...
 
void flux (const double &time, const Vector< double > &x, double &flux)
 Get flux applied along boundary x=0. More...
 
std::complex< doubleMagnitude (100.0, 100.0)
 Point source magnitude (Complex) More...
 

Variables

bool Steady =false
 Steady flag. More...
 
double Dt =0.01
 Timestep. More...
 
double Lambda_sq =0.7
 Timescale ratio (non-dim density) More...
 
double Permeability =1.0
 Permeability. More...
 
double E_mod =1.0
 
double Nu =0.3
 Poisson's ratio. More...
 
double Alpha =0.5
 Alpha, the Biot parameter. More...
 
double Porosity =0.3
 Porosity. More...
 
double Density_ratio =0.6
 Ratio of pore fluid density to solid matrix density. More...
 
double P =1.0
 
double T_tanh =0.25
 Parameter for tanh origin for pressure incrementation. More...
 
double Alpha_tanh =100.0
 Steepness parameter for tanh for pressure incrementation. More...
 
double Lambda = 0.0
 
double Mu = 0.0
 
double Rho_f_over_rho = 0.0
 
double Domain_radius =1.0
 Radius of the smaller arcs in the curved mesh. More...
 
double Inner_radius =0.3
 
double Element_area = 0.01
 Target area for initial mesh. More...
 
TimeStepperInternal_time_stepper_pt =0
 Pointer to timestepper for internal dofs. More...
 
double K_squared =10.0
 Square of the wavenumber. More...
 
int N_fourier =3
 Fourier wave number. More...
 
unsigned Nterms_for_DtN =6
 Number of terms in computation of DtN boundary condition. More...
 
unsigned N_terms =6
 Number of terms in the exact solution. More...
 
Vector< doubleCoeff (N_terms, 1.0)
 Coefficients in the exact solution. More...
 
unsigned El_multiplier =1
 Multiplier for number of elements. More...
 
double Melt_temperature =0.0
 Melt-temperature. More...
 
ConstitutiveLawConstitutive_law_pt =0
 Pointer to constitutive law. More...
 
double Radius =0.2
 Radius of penetrator. More...
 
double Y_c_initial =1.05
 Initial y position of centre of penetrator. More...
 
Vector< doubleCentre
 Position of centre of penetrator. More...
 
PenetratorPenetrator_pt =0
 Penetrator. More...
 
double Diffuse_radiation =0.4147111183
 Diffuse radiation (based on 300 W/m^2) More...
 
double Direct_radiation =1.382370394
 Direct radiation for peak of 1000 W/m^2. More...
 
double One_day =0.4084910633
 One day in our non-dim units. More...
 
double Alpha_rock =0.001
 Nondim thermal inertia for rock. More...
 
double Beta_rock =10.0
 Nondim thermal conductivity for rock. More...
 
double T_contact =0.0
 hierher More...
 
double X_contact_end_left =0.3
 Left end of contact region (for unstructured mesh only) More...
 
double X_contact_end_right =0.7
 Right end of contact region (for unstructured mesh only) More...
 
WarpedLine Boundary_geom_object_left (1.0e-10, 0.0, X_contact_end_left)
 
WarpedLine Boundary_geom_object_contact (1.0e-10, X_contact_end_left, X_contact_end_right)
 
WarpedLine Boundary_geom_object_right (1.0e-10, X_contact_end_right, 1.0)
 
bool Impose_position_of_centre =true
 
IsotropicElasticityTensor E (Nu)
 The elasticity tensor. More...
 
double Weight =0.0
 NOTE: WE IMPOSE EITHER THESE ... More...
 
double Horizontal_force =0.0
 Horizontal force of penetrator. More...
 
double Y_c =0.0
 ... OR THESE... More...
 
double Rotation_angle =0.0
 Target rotation angle about control node. More...
 
double El_area =0.02
 Initial/max element area. More...
 
double Element_length_factor =0.01
 Factor for element length on contact boundary. More...
 
double Body_force_amplitude =0.0
 Body force magnitude. More...
 
double Body_force_alpha =1.0e4
 
double Y_c_max =0.0
 Initial/max y-position. More...
 
double Radius_of_elastic_body =2.0
 Radius of elastic body. More...
 
string Directory ="RESLT"
 Output directory. More...
 
double PML_thickness =4.0
 Default physical PML thickness. More...
 
unsigned Nel_pml =15
 Default number of elements within PMLs. More...
 
double R_source = 2.0
 Radial position of point source. More...
 
double Z_source = 2.0
 Axial position of point source. More...
 

Detailed Description

Namespace for exact solution and problem parameters.

Namespace for problem parameters.

Namespace for the Fourier decomposed Helmholtz problem parameters.

////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////

Function Documentation

◆ atmospheric_radiation()

void ProblemParameters::atmospheric_radiation ( const double time,
double solar_flux_magnitude,
Vector< double > &  solar_flux_unit_vector,
double total_diffuse_radiation 
)

Function that specifies atmospheric radiation in terms of directional solar flux vector (which has direction and magnitude; well, like most vectors, actually) and total diffusive radiation (which is later weighted by diffuse limiting angles). Input argument: time.

105  {
106  // Diffuse background radiation
107  total_diffuse_radiation=Diffuse_radiation;
108 
109  // Solar flux magnitude; constant (hierher: probably needs further
110  // modulation, because this obviously ain't true...)
111  solar_flux_magnitude=Direct_radiation;
112 
113  // t=0: sunrise: Sun is horizontal from the left
114  solar_flux_unit_vector[0]= cos(2.0*MathematicalConstants::Pi*time/One_day);
115  solar_flux_unit_vector[1]=-sin(2.0*MathematicalConstants::Pi*time/One_day);
116  }
AnnoyingScalar cos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:136
AnnoyingScalar sin(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:137
double Pi
Definition: two_d_biharmonic.cc:235
double Diffuse_radiation
Diffuse radiation (based on 300 W/m^2)
Definition: circular_boulder_solar_radiation.cc:88
double Direct_radiation
Direct radiation for peak of 1000 W/m^2.
Definition: circular_boulder_solar_radiation.cc:91
double One_day
One day in our non-dim units.
Definition: circular_boulder_solar_radiation.cc:94

References cos(), Diffuse_radiation, Direct_radiation, One_day, BiharmonicTestFunctions2::Pi, and sin().

Referenced by SolarRadiationProblem< ELEMENT >::complete_problem_setup(), and SolarRadiationProblem< ELEMENT >::doc_solution().

◆ body_force()

void ProblemParameters::body_force ( const double time,
const Vector< double > &  x,
Vector< double > &  result 
)

The body force function.

897  {
898  result[0] = 0.0;
899  result[1] = -Body_force_amplitude*(1.0-x[0])*x[0]*
900  exp(-Body_force_alpha*(x[0]-0.5)*(x[0]-0.5));
901  }
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 exp(const bfloat16 &a)
Definition: BFloat16.h:615
double Body_force_alpha
Definition: linear_solid_contact_with_gravity.cc:891
double Body_force_amplitude
Body force magnitude.
Definition: linear_solid_contact_with_gravity.cc:888
list x
Definition: plotDoE.py:28

References Body_force_alpha, Body_force_amplitude, Eigen::bfloat16_impl::exp(), and plotDoE::x.

Referenced by ContactProblem< ELEMENT >::complete_problem_setup().

◆ boundary_accel_0()

double ProblemParameters::boundary_accel_0 ( const double time,
const Vector< double > &  x 
)

Imposed boundary accel in r-direction.

180  {
182  {
183  const double r=x[0],z=x[1];
184  return 2*time*(r*z*z);
185  }
186  else
187  {
188  return 0.0;
189  }
190  }
r
Definition: UniformPSDSelfTest.py:20
bool command_line_flag_has_been_set(const std::string &flag)
Definition: oomph_utilities.cc:501

References oomph::CommandLineArgs::command_line_flag_has_been_set(), UniformPSDSelfTest::r, and plotDoE::x.

Referenced by exact_soln(), AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_boundary_values(), and AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_initial_condition().

◆ boundary_accel_1()

double ProblemParameters::boundary_accel_1 ( const double time,
const Vector< double > &  x 
)

Imposed boundary accel in z-direction.

195  {
197  {
198  const double r=x[0],z=x[1];
199  return 2*time*(-z/r);
200  }
201  else
202  {
203  return 0.0;
204  }
205  }

References oomph::CommandLineArgs::command_line_flag_has_been_set(), UniformPSDSelfTest::r, and plotDoE::x.

Referenced by exact_soln(), AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_boundary_values(), and AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_initial_condition().

◆ boundary_d2fluxdt2_0()

double ProblemParameters::boundary_d2fluxdt2_0 ( const double time,
const Vector< double > &  x 
)

Imposed boundary d2/dt2 flux in r-direction.

273  {
275  {
276  const double r=x[0],z=x[1];
277  return 1.0/Permeability*2.0*Alpha*(1+r*z);
278  }
279  else
280  {
281  return 0.0;
282  }
283  }
double Permeability
Permeability.
Definition: unstructured_two_d_curved.cc:57
double Alpha
Alpha, the Biot parameter.
Definition: unstructured_two_d_curved.cc:68

References Alpha, oomph::CommandLineArgs::command_line_flag_has_been_set(), Permeability, UniformPSDSelfTest::r, and plotDoE::x.

◆ boundary_d2fluxdt2_1()

double ProblemParameters::boundary_d2fluxdt2_1 ( const double time,
const Vector< double > &  x 
)

Imposed boundary d2/dt2 flux in z-direction.

288  {
290  {
291  const double z=x[1];
292  return 1.0/Permeability*2.0*Alpha*(-2.0/3.0*pow(z,3)-z*z);
293  }
294  else
295  {
296  return 0.0;
297  }
298  }
EIGEN_DEVICE_FUNC const GlobalUnaryPowReturnType< Derived, ScalarExponent > pow(const Eigen::ArrayBase< Derived > &x, const ScalarExponent &exponent)
Definition: GlobalFunctions.h:137

References Alpha, oomph::CommandLineArgs::command_line_flag_has_been_set(), Permeability, Eigen::bfloat16_impl::pow(), and plotDoE::x.

◆ boundary_dfluxdt_0()

double ProblemParameters::boundary_dfluxdt_0 ( const double time,
const Vector< double > &  x 
)

Imposed boundary d/dt flux in r-direction.

242  {
244  {
245  const double r=x[0],z=x[1];
246  return 1.0/Permeability*2.0*Alpha*time*(1+r*z);
247  }
248  else
249  {
250  return 0.0;
251  }
252  }

References Alpha, oomph::CommandLineArgs::command_line_flag_has_been_set(), Permeability, UniformPSDSelfTest::r, and plotDoE::x.

Referenced by exact_soln().

◆ boundary_dfluxdt_1()

double ProblemParameters::boundary_dfluxdt_1 ( const double time,
const Vector< double > &  x 
)

Imposed boundary d/dt flux in z-direction.

257  {
259  {
260  const double z=x[1];
261  return 1.0/Permeability*2.0*Alpha*time*(-2.0/3.0*pow(z,3)-z*z);
262  }
263  else
264  {
265  return 0.0;
266  }
267  }

References Alpha, oomph::CommandLineArgs::command_line_flag_has_been_set(), Permeability, Eigen::bfloat16_impl::pow(), and plotDoE::x.

Referenced by exact_soln().

◆ boundary_displ_0()

double ProblemParameters::boundary_displ_0 ( const double time,
const Vector< double > &  x 
)

Imposed boundary displacement in r-direction.

121  {
123  {
124  const double r=x[0],z=x[1];
125  return 1.0/3.0*pow(time,3)*(r*z*z);
126  }
127  else
128  {
129  return 0.0;
130  }
131  }

References oomph::CommandLineArgs::command_line_flag_has_been_set(), Eigen::bfloat16_impl::pow(), UniformPSDSelfTest::r, and plotDoE::x.

Referenced by exact_soln(), AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_boundary_values(), and AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_initial_condition().

◆ boundary_displ_1()

double ProblemParameters::boundary_displ_1 ( const double time,
const Vector< double > &  x 
)

Imposed boundary displacement in z-direction.

136  {
138  {
139  const double r=x[0],z=x[1];
140  return 1.0/3.0*pow(time,3)*(-z/r);
141  }
142  else
143  {
144  return 0.0;
145  }
146  }

References oomph::CommandLineArgs::command_line_flag_has_been_set(), Eigen::bfloat16_impl::pow(), UniformPSDSelfTest::r, and plotDoE::x.

Referenced by exact_soln(), AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_boundary_values(), and AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_initial_condition().

◆ boundary_flux_0()

double ProblemParameters::boundary_flux_0 ( const double time,
const Vector< double > &  x 
)

Imposed boundary flux in r-direction.

210  {
212  {
213  const double r=x[0],z=x[1];
214  return 1.0/Permeability*Alpha*time*time*(1+r*z);
215  }
216  else
217  {
218  return 0.0;
219  }
220  }

References Alpha, oomph::CommandLineArgs::command_line_flag_has_been_set(), Permeability, UniformPSDSelfTest::r, and plotDoE::x.

Referenced by exact_soln().

◆ boundary_flux_1()

double ProblemParameters::boundary_flux_1 ( const double time,
const Vector< double > &  x 
)

Imposed boundary flux in z-direction.

225  {
227  {
228  const double z=x[1];
229  return 1.0/Permeability*Alpha*time*time*(-2.0/3.0*pow(z,3)-z*z);
230  }
231  else
232  {
233  return 0.0;
234  }
235  }

References Alpha, oomph::CommandLineArgs::command_line_flag_has_been_set(), Permeability, Eigen::bfloat16_impl::pow(), and plotDoE::x.

Referenced by exact_soln().

◆ boundary_pressure()

void ProblemParameters::boundary_pressure ( const double time,
const Vector< double > &  x,
const Vector< double > &  n,
double result 
)

Pressure around the boundary of the domain.

430  {
432  {
433  Vector<double> soln(13);
434  exact_soln(time,x,soln);
435  result=soln[5];
436  }
437  else
438  {
439  result=pressure_magnitude(time);
440  }
441  }
void exact_soln(const double &time, const Vector< double > &x, Vector< double > &soln)
Definition: unstructured_two_d_curved.cc:301
double pressure_magnitude(const double &time)
Get time-dep pressure magnitude.
Definition: unstructured_two_d_curved.cc:420

References oomph::CommandLineArgs::command_line_flag_has_been_set(), exact_soln(), pressure_magnitude(), and plotDoE::x.

Referenced by boundary_traction(), and AxiPoroProblem< ELEMENT, TIMESTEPPER >::create_pressure_elements().

◆ boundary_traction()

void ProblemParameters::boundary_traction ( const double time,
const Vector< double > &  x,
const Vector< double > &  n,
Vector< double > &  traction 
)

Boundary traction.

449  {
451  {
452  const double r=x[0],z=x[1];
453 
454  traction[0]=
455  n[0]*(1.0/3.0*Lambda*pow(time,3)*(2*z*z-1/r)+
456  2.0/3.0*Mu*pow(time,3)*z*z-Alpha*time*time*(r*r*z-2*z))+
457  n[1]*1.0/3.0*Mu*pow(time,3)*(z/(r*r)+2*r*z);
458  traction[1]=
459  n[0]*1.0/3.0*Mu*pow(time,3)*(z/(r*r)+2*r*z)+
460  n[1]*(1.0/3.0*Lambda*pow(time,3)*(2*z*z-1/r)-
461  2.0/3.0*Mu*pow(time,3)/r-Alpha*time*time*(r*r*z-2*z));
462  }
463  // Pure pressure load
464  else
465  {
466  double p=0.0;
467  boundary_pressure(time,x,n,p);
468  traction[0]=-p*n[0];
469  traction[1]=-p*n[1];
470  }
471  }
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
float * p
Definition: Tutorial_Map_using.cpp:9
double Lambda
Definition: unstructured_two_d_curved.cc:87
void boundary_pressure(const double &time, const Vector< double > &x, const Vector< double > &n, double &result)
Pressure around the boundary of the domain.
Definition: unstructured_two_d_curved.cc:426
double Mu
Definition: unstructured_two_d_curved.cc:90

References Alpha, boundary_pressure(), oomph::CommandLineArgs::command_line_flag_has_been_set(), Lambda, Mu, n, p, Eigen::bfloat16_impl::pow(), UniformPSDSelfTest::r, and plotDoE::x.

Referenced by AxiPoroProblem< ELEMENT, TIMESTEPPER >::create_pressure_elements().

◆ boundary_veloc_0()

double ProblemParameters::boundary_veloc_0 ( const double time,
const Vector< double > &  x 
)

Imposed boundary velocity in r-direction.

150  {
152  {
153  const double r=x[0],z=x[1];
154  return time*time*(r*z*z);
155  }
156  else
157  {
158  return 0.0;
159  }
160  }

References oomph::CommandLineArgs::command_line_flag_has_been_set(), UniformPSDSelfTest::r, and plotDoE::x.

Referenced by exact_soln(), AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_boundary_values(), and AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_initial_condition().

◆ boundary_veloc_1()

double ProblemParameters::boundary_veloc_1 ( const double time,
const Vector< double > &  x 
)

Imposed boundary velocity in z-direction.

165  {
167  {
168  const double r=x[0],z=x[1];
169  return time*time*(-z/r);
170  }
171  else
172  {
173  return 0.0;
174  }
175  }

References oomph::CommandLineArgs::command_line_flag_has_been_set(), UniformPSDSelfTest::r, and plotDoE::x.

Referenced by exact_soln(), AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_boundary_values(), and AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_initial_condition().

◆ Directory()

std::string ProblemParameters::Directory ( "RESLT"  )

◆ edge_sign_setup()

template<class ELEMENT >
void ProblemParameters::edge_sign_setup ( Mesh mesh_pt)

Global function that completes the edge sign setup – has to be called before projection in unstructured adaptation

487  {
488  // The dictionary keeping track of edge signs
489  std::map<Edge,unsigned> assignments;
490 
491  // Loop over all elements
492  unsigned n_element = mesh_pt->nelement();
493  for(unsigned e=0;e<n_element;e++)
494  {
495  ELEMENT* el_pt = dynamic_cast<ELEMENT*>(mesh_pt->element_pt(e));
496 
497  // Assign edge signs: Loop over the vertex nodes (always
498  // first 3 nodes for triangles)
499  for(unsigned i=0;i<3;i++)
500  {
501  Node *nod_pt1, *nod_pt2;
502  nod_pt1 = el_pt->node_pt(i);
503  nod_pt2 = el_pt->node_pt((i+1)%3);
504  Edge edge(nod_pt1,nod_pt2);
505  unsigned status = assignments[edge];
506 
507  // This relies on the default value for an int being 0 in a map
508  switch(status)
509  {
510  // If not assigned on either side, give it a + on current side
511  case 0:
512  assignments[edge]=1;
513  break;
514  // If assigned + on other side, give it a - on current side
515  case 1:
516  assignments[edge]=2;
517  el_pt->sign_edge(i)=-1;
518  break;
519  // If assigned - on other side, give it a + on current side
520  case 2:
521  assignments[edge]=1;
522  break;
523  }
524  } // end of loop over vertex nodes
525 
526  // Set the internal q dofs' timestepper to the problem timestepper
527  el_pt->set_q_internal_timestepper(Internal_time_stepper_pt);
528 
529  } // end of loop over elements
530  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Edge class.
Definition: mesh.h:2692
GeneralisedElement *& element_pt(const unsigned long &e)
Return pointer to element e.
Definition: mesh.h:448
unsigned long nelement() const
Return number of elements in the mesh.
Definition: mesh.h:590
Definition: nodes.h:906
TimeStepper * Internal_time_stepper_pt
Pointer to timestepper for internal dofs.
Definition: unstructured_two_d_curved.cc:480
void assignments()
Definition: skew_symmetric_matrix3.cpp:38

References anonymous_namespace{skew_symmetric_matrix3.cpp}::assignments(), e(), oomph::Mesh::element_pt(), i, Internal_time_stepper_pt, and oomph::Mesh::nelement().

◆ exact_minus_dudr()

void ProblemParameters::exact_minus_dudr ( const Vector< double > &  x,
std::complex< double > &  flux 
)

Get -du/dr (spherical r) for exact solution. Equal to prescribed flux on inner boundary.

303  {
304  // Initialise flux
305  flux=std::complex<double>(0.0,0.0);
306 
307  // Switch to spherical coordinates
308  double R=sqrt(x[0]*x[0]+x[1]*x[1]);
309 
310  double theta;
311  theta=atan2(x[0],x[1]);
312 
313  // Argument for Bessel/Hankel functions
314  double kr=sqrt(K_squared)*R;
315 
316  // Helmholtz wavenumber
317  double k=sqrt(K_squared);
318 
319  // Need half-order Bessel functions
320  double bessel_offset=0.5;
321 
322  // Evaluate Bessel/Hankel functions
325  Vector<double> djv(N_terms);
326  Vector<double> dyv(N_terms);
327  double order_max_in=double(N_terms-1)+bessel_offset;
328  double order_max_out=0;
329 
330  // This function returns vectors containing
331  // J_k(x), Y_k(x) and their derivatives
332  // up to k=order_max, with k increasing in
333  // integer increments starting with smallest
334  // positive value. So, e.g. for order_max=3.5
335  // jv[0] contains J_{1/2}(x),
336  // jv[1] contains J_{3/2}(x),
337  // jv[2] contains J_{5/2}(x),
338  // jv[3] contains J_{7/2}(x).
339  CRBond_Bessel::bessjyv(order_max_in,
340  kr,
341  order_max_out,
342  &jv[0],&yv[0],
343  &djv[0],&dyv[0]);
344 
345 
346  // Assemble exact solution (actually no need to add terms
347  // below i=N_fourier as Legendre polynomial would be zero anyway)
348  complex<double> u_ex(0.0,0.0);
349  for(unsigned i=N_fourier;i<N_terms;i++)
350  {
351  //Associated_legendre_functions
353  cos(theta));
354  // Set flux of exact solution
356  ( k*(djv[i]+I*dyv[i]) - (0.5*(jv[i]+I*yv[i])/R) );
357  }
358 
359  }// end of exact_normal_derivative
AnnoyingScalar atan2(const AnnoyingScalar &y, const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:139
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
@ R
Definition: StatisticsVector.h:21
char char char int int * k
Definition: level2_impl.h:374
#define I
Definition: main.h:127
double theta
Definition: two_d_biharmonic.cc:236
int bessjyv(double v, double x, double &vm, double *jv, double *yv, double *djv, double *dyv)
Definition: crbond_bessel.cc:1050
void flux(const double &time, const Vector< double > &x, double &flux)
Get flux applied along boundary x=0.
Definition: pretend_melt.cc:59
unsigned N_terms
Number of terms in the exact solution.
Definition: sphere_scattering.cc:234
double K_squared
Square of the wavenumber.
Definition: sphere_scattering.cc:225
int N_fourier
Fourier wave number.
Definition: sphere_scattering.cc:228
Vector< double > Coeff(N_terms, 1.0)
Coefficients in the exact solution.
double plgndr2(const unsigned &l, const unsigned &m, const double &x)
Legendre polynomials depending on two parameters.
Definition: fourier_decomposed_helmholtz_elements.cc:97

References atan2(), CRBond_Bessel::bessjyv(), Coeff, cos(), flux(), i, I, k, K_squared, N_fourier, N_terms, p, oomph::MathematicalConstants::Pi, oomph::Legendre_functions_helper::plgndr2(), R, sqrt(), BiharmonicTestFunctions2::theta, and plotDoE::x.

Referenced by FourierDecomposedHelmholtzProblem< ELEMENT >::check_gamma(), FourierDecomposedHelmholtzProblem< ELEMENT >::create_flux_elements_on_inner_boundary(), and PMLFourierDecomposedHelmholtzProblem< ELEMENT >::create_flux_elements_on_inner_boundary().

◆ exact_soln()

void ProblemParameters::exact_soln ( const double time,
const Vector< double > &  x,
Vector< double > &  soln 
)
304  {
306  {
307  // u[0] -- radial displacement
308  soln[0]=boundary_displ_0(time,x);
309 
310  // u[1] -- axial displacement
311  soln[1]=boundary_displ_1(time,x);
312 
313  // Convert coordinates
314  double r=x[0];
315  double z=x[1];
316 
317  // q[0] -- radial flux
318  soln[2]=boundary_flux_0(time,x);
319 
320  // q[1] -- axial flux
321  soln[3]=boundary_flux_1(time,x);
322 
323  // div q
324  soln[4]=1.0/Permeability*Alpha*pow(time,2)*(1/r-2*z*z);
325 
326  // p -- pore pressure
327  soln[5]=time*time*(r*r*z-2*z);
328 
329  // dudt[0] radial veloc
330  soln[6]=boundary_veloc_0(time,x);
331 
332  // dudt[1] axial veloc
333  soln[7]=boundary_veloc_1(time,x);
334 
335  // div of solid veloc
336  soln[8]=boundary_veloc_0(time,x)+boundary_veloc_1(time,x);
337 
338  // d2udt2[0] radial accel
339  soln[9]=boundary_accel_0(time,x);
340 
341  // d2udt2[1] axial accel
342  soln[10]=boundary_accel_1(time,x);
343 
344  // dqdt[0] -- radial flux accel
345  soln[11]=boundary_dfluxdt_0(time,x);
346 
347  // dqdt[1] -- axial flux accel
348  soln[12]=boundary_dfluxdt_1(time,x);
349  }
350  else
351  {
352  unsigned n=soln.size();
353  for (unsigned i=0;i<n;i++)
354  {
355  soln[i]=0.0;
356  }
357  }
358  }
double boundary_flux_0(const double &time, const Vector< double > &x)
Imposed boundary flux in r-direction.
Definition: unstructured_two_d_curved.cc:208
double boundary_accel_0(const double &time, const Vector< double > &x)
Imposed boundary accel in r-direction.
Definition: unstructured_two_d_curved.cc:178
double boundary_accel_1(const double &time, const Vector< double > &x)
Imposed boundary accel in z-direction.
Definition: unstructured_two_d_curved.cc:193
double boundary_veloc_0(const double &time, const Vector< double > &x)
Imposed boundary velocity in r-direction.
Definition: unstructured_two_d_curved.cc:148
double boundary_flux_1(const double &time, const Vector< double > &x)
Imposed boundary flux in z-direction.
Definition: unstructured_two_d_curved.cc:223
double boundary_dfluxdt_1(const double &time, const Vector< double > &x)
Imposed boundary d/dt flux in z-direction.
Definition: unstructured_two_d_curved.cc:255
double boundary_displ_1(const double &time, const Vector< double > &x)
Imposed boundary displacement in z-direction.
Definition: unstructured_two_d_curved.cc:134
double boundary_dfluxdt_0(const double &time, const Vector< double > &x)
Imposed boundary d/dt flux in r-direction.
Definition: unstructured_two_d_curved.cc:240
double boundary_veloc_1(const double &time, const Vector< double > &x)
Imposed boundary velocity in z-direction.
Definition: unstructured_two_d_curved.cc:163
double boundary_displ_0(const double &time, const Vector< double > &x)
Imposed boundary displacement in r-direction.
Definition: unstructured_two_d_curved.cc:119

References Alpha, boundary_accel_0(), boundary_accel_1(), boundary_dfluxdt_0(), boundary_dfluxdt_1(), boundary_displ_0(), boundary_displ_1(), boundary_flux_0(), boundary_flux_1(), boundary_veloc_0(), boundary_veloc_1(), oomph::CommandLineArgs::command_line_flag_has_been_set(), i, n, Permeability, Eigen::bfloat16_impl::pow(), UniformPSDSelfTest::r, and plotDoE::x.

Referenced by boundary_pressure(), ModalPoissonEquations< DIM >::compute_error(), MyTaylorHoodElement::compute_error(), oomph::NavierStokesElementWithSingularity< BASIC_NAVIER_STOKES_ELEMENT >::compute_error(), oomph::MultiPoissonEquations< DIM, NFIELDS >::compute_error(), PoissonElementWithSingularity< BASIC_POISSON_ELEMENT >::compute_error(), Rotateable< ELEMENT >::compute_error(), oomph::AdvectionDiffusionEquations< DIM >::compute_error(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::compute_error(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::compute_error(), oomph::AxisymAdvectionDiffusionEquations::compute_error(), oomph::AxisymFoepplvonKarmanEquations::compute_error(), oomph::AxisymmetricLinearElasticityEquations::compute_error(), oomph::BiharmonicEquations< DIM >::compute_error(), oomph::DisplacementBasedFoepplvonKarmanEquations::compute_error(), oomph::FoepplvonKarmanEquations::compute_error(), oomph::FourierDecomposedHelmholtzEquations::compute_error(), oomph::HelmholtzEquations< DIM >::compute_error(), oomph::LinearElasticityEquations< DIM >::compute_error(), oomph::LinearWaveEquations< DIM >::compute_error(), oomph::PMLFourierDecomposedHelmholtzEquations::compute_error(), oomph::PMLHelmholtzEquations< DIM >::compute_error(), oomph::PMLTimeHarmonicLinearElasticityEquations< DIM >::compute_error(), oomph::SpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >::compute_error(), oomph::SpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >::compute_error(), oomph::SphericalAdvectionDiffusionEquations::compute_error(), oomph::SteadyAxisymAdvectionDiffusionEquations::compute_error(), oomph::TimeHarmonicFourierDecomposedLinearElasticityEquations::compute_error(), oomph::UnsteadyHeatEquations< DIM >::compute_error(), oomph::WomersleyEquations< DIM >::compute_error(), oomph::YoungLaplaceEquations::compute_error(), oomph::AxisymmetricPoroelasticityEquations::compute_error(), oomph::DarcyEquations< DIM >::compute_error(), oomph::PoroelasticityEquations< DIM >::compute_error(), oomph::AxisymmetricNavierStokesEquations::compute_error(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::compute_error(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::compute_error(), oomph::NavierStokesEquations< DIM >::compute_error(), oomph::PolarNavierStokesEquations::compute_error(), oomph::SpaceTimeNavierStokesEquations< DIM >::compute_error(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::compute_error(), oomph::SphericalNavierStokesEquations::compute_error(), oomph::SphericalNavierStokesEquations::compute_error_e(), AxiPoroProblem< ELEMENT, TIMESTEPPER >::doc_solution(), oomph::YoungLaplaceEquations::exact_position(), oomph::NavierStokesEquations< 2 >::fill_in_contribution_to_hessian_vector_products(), ModalPoissonEquations< DIM >::output_fct(), oomph::MultiPoissonEquations< DIM, NFIELDS >::output_fct(), oomph::AxisymFoepplvonKarmanEquations::output_fct(), oomph::DisplacementBasedFoepplvonKarmanEquations::output_fct(), oomph::FoepplvonKarmanEquations::output_fct(), oomph::FourierDecomposedHelmholtzEquations::output_fct(), oomph::HelmholtzEquations< DIM >::output_fct(), oomph::PMLFourierDecomposedHelmholtzEquations::output_fct(), oomph::PMLHelmholtzEquations< DIM >::output_fct(), oomph::PoissonEquations< DIM >::output_fct(), oomph::YoungLaplaceEquations::output_fct(), Rotateable< ELEMENT >::output_fct(), oomph::AdvectionDiffusionEquations< DIM >::output_fct(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::output_fct(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::output_fct(), oomph::AxisymAdvectionDiffusionEquations::output_fct(), oomph::AxisymmetricLinearElasticityEquations::output_fct(), oomph::AxisymmetricNavierStokesEquations::output_fct(), oomph::AxisymmetricPoroelasticityEquations::output_fct(), oomph::BiharmonicEquations< DIM >::output_fct(), oomph::DarcyEquations< DIM >::output_fct(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::output_fct(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::output_fct(), oomph::LinearElasticityEquations< DIM >::output_fct(), oomph::LinearWaveEquations< DIM >::output_fct(), oomph::NavierStokesEquations< DIM >::output_fct(), oomph::PMLTimeHarmonicLinearElasticityEquations< DIM >::output_fct(), oomph::PolarNavierStokesEquations::output_fct(), oomph::PoroelasticityEquations< DIM >::output_fct(), oomph::SpaceTimeNavierStokesEquations< DIM >::output_fct(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::output_fct(), oomph::SpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >::output_fct(), oomph::SpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >::output_fct(), oomph::SphericalAdvectionDiffusionEquations::output_fct(), oomph::SphericalNavierStokesEquations::output_fct(), oomph::SteadyAxisymAdvectionDiffusionEquations::output_fct(), oomph::TimeHarmonicFourierDecomposedLinearElasticityEquations::output_fct(), oomph::TimeHarmonicLinearElasticityEquations< DIM >::output_fct(), oomph::UnsteadyHeatEquations< DIM >::output_fct(), oomph::WomersleyEquations< DIM >::output_fct(), oomph::PMLHelmholtzEquations< DIM >::output_imag_fct(), oomph::FourierDecomposedHelmholtzEquations::output_real_fct(), oomph::HelmholtzEquations< DIM >::output_real_fct(), oomph::PMLFourierDecomposedHelmholtzEquations::output_real_fct(), oomph::PMLHelmholtzEquations< DIM >::output_real_fct(), oomph::NavierStokesEquations< DIM >::scalar_value_fct_paraview(), oomph::SpaceTimeNavierStokesEquations< DIM >::scalar_value_fct_paraview(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::scalar_value_fct_paraview(), oomph::PMLHelmholtzEquations< DIM >::scalar_value_fct_paraview(), oomph::PoissonEquations< DIM >::scalar_value_fct_paraview(), oomph::SpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >::scalar_value_fct_paraview(), oomph::SpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >::scalar_value_fct_paraview(), and AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_boundary_values().

◆ Fluid_body_force()

void ProblemParameters::Fluid_body_force ( const double time,
const Vector< double > &  x,
Vector< double > &  f 
)

Fluid body force.

389  {
391  {
392  const double r=x[0],z=x[1];
393  f[0]=(time*(2*Rho_f_over_rho*(1+r*z)*Alpha*Lambda_sq+
394  Porosity*(1.0/Permeability*time*Alpha+r*z*
395  (2*time+1.0/Permeability*time*Alpha+
396  2*Rho_f_over_rho*z*Lambda_sq))))/
398  f[1]=(time*(-2*r*Rho_f_over_rho*z*z*(3+2*z)*Alpha*Lambda_sq+
399  Porosity*(3*pow(r,3)*time-r*time*
400  (6+1.0/Permeability*z*z*(3+2*z)*Alpha)-
401  6*Rho_f_over_rho*z*Lambda_sq)))/
403  }
404  else
405  {
406  f[0]=0;
407  f[1]=0;
408  }
409  }
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
double Rho_f_over_rho
Definition: unstructured_two_d_curved.cc:94
double Porosity
Porosity.
Definition: unstructured_two_d_curved.cc:71
double Lambda_sq
Timescale ratio (non-dim density)
Definition: unstructured_two_d_curved.cc:54

References Alpha, oomph::CommandLineArgs::command_line_flag_has_been_set(), f(), Lambda_sq, Permeability, Porosity, Eigen::bfloat16_impl::pow(), UniformPSDSelfTest::r, Rho_f_over_rho, and plotDoE::x.

Referenced by AxiPoroProblem< ELEMENT, TIMESTEPPER >::complete_problem_setup().

◆ flux()

void ProblemParameters::flux ( const double time,
const Vector< double > &  x,
double flux 
)

Get flux applied along boundary x=0.

60  {
61  flux = 20.0*sin(2.0*4.0*MathematicalConstants::Pi*time);
62  }

References BiharmonicTestFunctions2::Pi, and sin().

Referenced by ElasticAxisymmetricSolubleSurfactantTransportInterfaceElement< ELEMENT >::add_additional_residual_contributions_interface(), oomph::SpineLineMarangoniSurfactantFluidInterfaceElement< ELEMENT >::add_additional_residual_contributions_interface(), oomph::SolubleSurfactantTransportInterfaceElement::add_additional_residual_contributions_interface(), DragNusseltCalculationElement< ELEMENT >::calculate_drag_nusselt(), FourierDecomposedHelmholtzProblem< ELEMENT >::check_gamma(), UnsteadyHeatProblem< ELEMENT >::complete_problem_setup(), oomph::FluxTransportEquations< DIM >::dflux_du(), oomph::WomersleyProblem< ELEMENT, DIM >::doc_solution(), exact_minus_dudr(), oomph::SurfaceMeltElement< ELEMENT >::fill_in_contribution_to_residuals_surface_melt(), SingularPoissonSolutionElement< WRAPPED_POISSON_ELEMENT >::fill_in_generic_contribution_to_residuals(), oomph::AdvectionDiffusionFluxElement< ELEMENT >::fill_in_generic_residual_contribution_adv_diff_flux(), oomph::FluxTransportEquations< DIM >::fill_in_generic_residual_contribution_flux_transport(), oomph::FourierDecomposedHelmholtzFluxElement< ELEMENT >::fill_in_generic_residual_contribution_fourier_decomposed_helmholtz_flux(), oomph::RefineableFpPressureAdvDiffRobinBCSpaceTimeElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::RefineableFpPressureAdvDiffRobinBCMixedOrderSpaceTimeElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::FpPressureAdvDiffRobinBCSpaceTimeElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::FpPressureAdvDiffRobinBCMixedOrderSpaceTimeElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::FpPressureAdvDiffRobinBCElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::RefineableFpPressureAdvDiffRobinBCElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::HelmholtzFluxElement< ELEMENT >::fill_in_generic_residual_contribution_helmholtz_flux(), oomph::PMLHelmholtzFluxElement< ELEMENT >::fill_in_generic_residual_contribution_helmholtz_flux(), oomph::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::fill_in_generic_residual_contribution_helmholtz_flux_from_displacement(), oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::fill_in_generic_residual_contribution_helmholtz_flux_from_displacement(), oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::fill_in_generic_residual_contribution_helmholtz_flux_from_displacement(), oomph::LinearWaveFluxElement< ELEMENT >::fill_in_generic_residual_contribution_lin_wave_flux(), oomph::PMLFourierDecomposedHelmholtzFluxElement< ELEMENT >::fill_in_generic_residual_contribution_pml_fourier_decomposed_helmholtz_flux(), oomph::PoissonFluxElement< ELEMENT >::fill_in_generic_residual_contribution_poisson_flux(), oomph::UnsteadyHeatBaseFaceElement< ELEMENT >::fill_in_generic_residual_contribution_ust_heat_flux(), oomph::HeatedPenetratorFluxElement< ELEMENT >::fill_in_generic_residual_contribution_ust_heat_flux(), oomph::UnsteadyHeatFluxPseudoMeltElement< ELEMENT >::fill_in_generic_residual_contribution_ust_heat_flux(), oomph::UnsteadyHeatFluxElement< ELEMENT >::fill_in_generic_residual_contribution_ust_heat_flux(), SpineGravityTractionElement< ELEMENT >::flow(), ExactSolution::flux_into_bulk(), SpineGravityTractionElement< ELEMENT >::get_flux(), oomph::UnsteadyHeatFluxPseudoMeltElement< ELEMENT >::get_flux(), oomph::LinearWaveFluxElement< ELEMENT >::get_flux(), oomph::UnsteadyHeatFluxElement< ELEMENT >::get_flux(), oomph::TemplateFreeUnsteadyHeatBaseFaceElement::get_flux(), oomph::StefanBoltzmannUnsteadyHeatFluxElement< ELEMENT >::get_flux(), oomph::PolarStreamfunctionEquations::get_flux(), oomph::AdvectionDiffusionEquations< DIM >::get_flux(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::get_flux(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::get_flux(), oomph::AxisymAdvectionDiffusionEquations::get_flux(), oomph::get_flux(), oomph::LinearWaveEquations< DIM >::get_flux(), oomph::PoissonEquations< DIM >::get_flux(), oomph::SpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >::get_flux(), oomph::SpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >::get_flux(), oomph::SphericalAdvectionDiffusionEquations::get_flux(), oomph::SteadyAxisymAdvectionDiffusionEquations::get_flux(), oomph::UnsteadyHeatEquations< DIM >::get_flux(), oomph::WomersleyEquations< DIM >::get_flux(), oomph::YoungLaplaceEquations::get_flux(), ModalPoissonEquations< DIM >::get_flux(), oomph::FourierDecomposedHelmholtzEquations::get_flux(), oomph::HelmholtzEquations< DIM >::get_flux(), oomph::PMLFourierDecomposedHelmholtzEquations::get_flux(), oomph::PMLHelmholtzEquations< DIM >::get_flux(), oomph::AdvectionDiffusionFluxElement< ELEMENT >::get_flux(), oomph::PoissonFluxElement< ELEMENT >::get_flux(), oomph::FourierDecomposedHelmholtzFluxElement< ELEMENT >::get_flux(), oomph::HelmholtzFluxElement< ELEMENT >::get_flux(), oomph::PMLFourierDecomposedHelmholtzFluxElement< ELEMENT >::get_flux(), oomph::PMLHelmholtzFluxElement< ELEMENT >::get_flux(), oomph::BiharmonicFluxElement< DIM >::get_flux0(), oomph::BiharmonicFluxElement< DIM >::get_flux1(), AirwayReopeningProblem< ELEMENT >::get_outlet_flux(), oomph::WomersleyEquations< DIM >::get_volume_flux(), oomph::RefineableLinearisedAxisymmetricNavierStokesEquations::get_Z2_flux(), get_Z2_flux(), oomph::TLinearHeatAndElasticityElement< DIM, NNODE_1D >::get_Z2_flux(), RefineableBuoyantQCrouzeixRaviartElement< DIM >::get_Z2_flux(), oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement::get_Z2_flux(), oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement::get_Z2_flux(), oomph::RefineableDoubleBuoyantQCrouzeixRaviartElement< DIM >::get_Z2_flux(), RefineableModalPoissonEquations< DIM >::get_Z2_flux(), oomph::RefineablePolarStreamfunctionEquations::get_Z2_flux(), oomph::RefineableAdvectionDiffusionEquations< DIM >::get_Z2_flux(), oomph::RefineableGeneralisedAdvectionDiffusionEquations< DIM >::get_Z2_flux(), oomph::RefineableAdvectionDiffusionReactionEquations< NREAGENT, DIM >::get_Z2_flux(), oomph::TAdvectionDiffusionReactionElement< NREAGENT, DIM, NNODE_1D >::get_Z2_flux(), oomph::RefineableAxisymAdvectionDiffusionEquations::get_Z2_flux(), oomph::RefineableGeneralisedAxisymAdvectionDiffusionEquations::get_Z2_flux(), oomph::TAxisymmetricLinearElasticityElement< NNODE_1D >::get_Z2_flux(), oomph::RefineableAxisymmetricNavierStokesEquations::get_Z2_flux(), oomph::AxisymmetricTCrouzeixRaviartElement::get_Z2_flux(), oomph::AxisymmetricTTaylorHoodElement::get_Z2_flux(), oomph::AxisymmetricPoroelasticityEquations::get_Z2_flux(), oomph::DarcyEquations< DIM >::get_Z2_flux(), oomph::TDisplacementBasedFoepplvonKarmanElement< NNODE_1D >::get_Z2_flux(), oomph::TFoepplvonKarmanElement< NNODE_1D >::get_Z2_flux(), oomph::TFourierDecomposedHelmholtzElement< NNODE_1D >::get_Z2_flux(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_Z2_flux(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::get_Z2_flux(), oomph::GeneralisedNewtonianAxisymmetricTTaylorHoodElement::get_Z2_flux(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::get_Z2_flux(), oomph::GeneralisedNewtonianTCrouzeixRaviartElement< DIM >::get_Z2_flux(), oomph::GeneralisedNewtonianTTaylorHoodElement< DIM >::get_Z2_flux(), oomph::SpectralPeriodicOrbitElement< NNODE_1D >::get_Z2_flux(), oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::get_Z2_flux(), oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::get_Z2_flux(), oomph::RefineableHelmholtzEquations< DIM >::get_Z2_flux(), oomph::THelmholtzElement< DIM, NNODE_1D >::get_Z2_flux(), oomph::RefineableLinearElasticityEquations< DIM >::get_Z2_flux(), oomph::TLinearElasticityElement< DIM, NNODE_1D >::get_Z2_flux(), oomph::RefineableLinearWaveEquations< DIM >::get_Z2_flux(), oomph::RefineableLinearisedNavierStokesEquations::get_Z2_flux(), oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >::get_Z2_flux(), oomph::RefineableNavierStokesEquations< DIM >::get_Z2_flux(), oomph::TCrouzeixRaviartElement< DIM >::get_Z2_flux(), oomph::TTaylorHoodElement< DIM >::get_Z2_flux(), oomph::TPMLFourierDecomposedHelmholtzElement< NNODE_1D >::get_Z2_flux(), oomph::RefineablePMLHelmholtzEquations< DIM >::get_Z2_flux(), oomph::TPMLHelmholtzElement< DIM, NNODE_1D >::get_Z2_flux(), oomph::TPMLTimeHarmonicLinearElasticityElement< DIM, NNODE_1D >::get_Z2_flux(), oomph::RefineablePoissonEquations< DIM >::get_Z2_flux(), oomph::TPoissonElement< DIM, NNODE_1D >::get_Z2_flux(), oomph::RefineablePolarNavierStokesEquations::get_Z2_flux(), oomph::RefineablePVDEquations< DIM >::get_Z2_flux(), oomph::RefineablePVDEquationsWithPressure< DIM >::get_Z2_flux(), oomph::TPVDElement< DIM, NNODE_1D >::get_Z2_flux(), oomph::TPVDBubbleEnrichedElement< DIM, NNODE_1D >::get_Z2_flux(), oomph::TPVDElementWithContinuousPressure< DIM >::get_Z2_flux(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::get_Z2_flux(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::get_Z2_flux(), oomph::RefineableSpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >::get_Z2_flux(), oomph::RefineableSpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >::get_Z2_flux(), oomph::RefineableSphericalAdvectionDiffusionEquations::get_Z2_flux(), oomph::RefineableSphericalNavierStokesEquations::get_Z2_flux(), oomph::TTimeHarmonicFourierDecomposedLinearElasticityElement< NNODE_1D >::get_Z2_flux(), oomph::RefineableTimeHarmonicLinearElasticityEquations< DIM >::get_Z2_flux(), oomph::TTimeHarmonicLinearElasticityElement< DIM, NNODE_1D >::get_Z2_flux(), oomph::RefineableUnsteadyHeatEquations< DIM >::get_Z2_flux(), oomph::TUnsteadyHeatElement< DIM, NNODE_1D >::get_Z2_flux(), oomph::RefineableYoungLaplaceEquations::get_Z2_flux(), oomph::PMLHelmholtzPowerElement< ELEMENT >::global_flux_contribution(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_helmholtz(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_solid(), oomph::StefanBoltzmannRadiationBase::incoming_stefan_boltzmann_radiation(), oomph::DGEulerFaceElement< ELEMENT >::numerical_flux(), oomph::DGFaceElement::numerical_flux_at_knot(), oomph::UnsteadyHeatBaseFaceElement< ELEMENT >::output(), oomph::UnsteadyHeatFluxPseudoMeltElement< ELEMENT >::output(), oomph::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::PoissonFluxElement< ELEMENT >::output(), oomph::SurfaceMeltElement< ELEMENT >::output_melt(), oomph::StefanBoltzmannUnsteadyHeatFluxElement< ELEMENT >::output_stefan_boltzmann_radiation(), oomph::DarcyEquations< DIM >::output_with_projected_flux(), AirwayReopeningProblem< ELEMENT >::parameter_study(), ExactSolution::prescribed_flux_for_unsteady_heat_validation(), TanhSolnForAdvectionDiffusion::prescribed_flux_on_fixed_x_boundary(), TanhSolnForPoisson::prescribed_flux_on_fixed_x_boundary(), SolnForPoisson::prescribed_flux_on_fixed_x_boundary(), ExactSolnForUnsteadyHeat::prescribed_flux_on_fixed_y_boundary(), TanhSolnForLinearWave::prescribed_flux_on_fixed_y_boundary(), GlobalParameters::prescribed_flux_on_fixed_y_boundary(), TanhSolnForUnsteadyHeat::prescribed_flux_on_fixed_y_boundary(), GlobalParameters::prescribed_incoming_flux(), oomph::ImposeFluxForWomersleyElement< DIM >::total_volume_flux(), oomph::WomersleyImpedanceTubeBase< ELEMENT, DIM >::total_volume_flux_into_impedance_tube(), and unit_flux().

◆ get_exact_u()

void ProblemParameters::get_exact_u ( const Vector< double > &  x,
Vector< double > &  u 
)

Exact solution as a Vector of size 2, containing real and imag parts.

244  {
245  // Switch to spherical coordinates
246  double R=sqrt(x[0]*x[0]+x[1]*x[1]);
247 
248  double theta;
249  theta=atan2(x[0],x[1]);
250 
251  // Argument for Bessel/Hankel functions
252  double kr = sqrt(K_squared)*R;
253 
254  // Need half-order Bessel functions
255  double bessel_offset=0.5;
256 
257  // Evaluate Bessel/Hankel functions
260  Vector<double> djv(N_terms);
261  Vector<double> dyv(N_terms);
262  double order_max_in=double(N_terms-1)+bessel_offset;
263  double order_max_out=0;
264 
265  // This function returns vectors containing
266  // J_k(x), Y_k(x) and their derivatives
267  // up to k=order_max, with k increasing in
268  // integer increments starting with smallest
269  // positive value. So, e.g. for order_max=3.5
270  // jv[0] contains J_{1/2}(x),
271  // jv[1] contains J_{3/2}(x),
272  // jv[2] contains J_{5/2}(x),
273  // jv[3] contains J_{7/2}(x).
274  CRBond_Bessel::bessjyv(order_max_in,
275  kr,
276  order_max_out,
277  &jv[0],&yv[0],
278  &djv[0],&dyv[0]);
279 
280 
281  // Assemble exact solution (actually no need to add terms
282  // below i=N_fourier as Legendre polynomial would be zero anyway)
283  complex<double> u_ex(0.0,0.0);
284  for(unsigned i=N_fourier;i<N_terms;i++)
285  {
286  //Associated_legendre_functions
288  cos(theta));
289  // Set exact solution
290  u_ex+=Coeff[i]*sqrt(MathematicalConstants::Pi/(2.0*kr))*(jv[i]+I*yv[i])*p;
291  }
292 
293  // Get the real & imaginary part of the result
294  u[0]=u_ex.real();
295  u[1]=u_ex.imag();
296 
297  }//end of get_exact_u

References atan2(), CRBond_Bessel::bessjyv(), Coeff, cos(), i, I, K_squared, N_fourier, N_terms, p, oomph::MathematicalConstants::Pi, oomph::Legendre_functions_helper::plgndr2(), R, sqrt(), BiharmonicTestFunctions2::theta, and plotDoE::x.

Referenced by FourierDecomposedHelmholtzProblem< ELEMENT >::doc_solution(), PMLFourierDecomposedHelmholtzProblem< ELEMENT >::doc_solution(), and PlanarWave::plot().

◆ I()

std::complex< double > ProblemParameters::I ( 0.  0,
1.  0 
)

Imaginary unit.

◆ Magnitude()

std::complex<double> ProblemParameters::Magnitude ( 100.  0,
100.  0 
)

Point source magnitude (Complex)

◆ Mass_source()

void ProblemParameters::Mass_source ( const double time,
const Vector< double > &  x,
double f 
)

Source term for continuity.

414  {
415  f=0;
416  }

References f().

Referenced by AxiPoroProblem< ELEMENT, TIMESTEPPER >::complete_problem_setup().

◆ pressure_magnitude()

double ProblemParameters::pressure_magnitude ( const double time)

Get time-dep pressure magnitude.

421  {
422  return P*0.5*(1.0+tanh(Alpha_tanh*(time-T_tanh)));
423  }
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 tanh(const bfloat16 &a)
Definition: BFloat16.h:639
double T_tanh
Parameter for tanh origin for pressure incrementation.
Definition: unstructured_two_d_curved.cc:81
double Alpha_tanh
Steepness parameter for tanh for pressure incrementation.
Definition: unstructured_two_d_curved.cc:84
double P
Definition: unstructured_two_d_curved.cc:78

References Alpha_tanh, P, T_tanh, and Eigen::bfloat16_impl::tanh().

Referenced by boundary_pressure(), and AxiPoroProblem< ELEMENT, TIMESTEPPER >::doc_solution().

◆ Solid_body_force()

void ProblemParameters::Solid_body_force ( const double time,
const Vector< double > &  x,
Vector< double > &  b 
)

Solid body force.

364  {
366  {
367  const double r=x[0],z=x[1];
368  b[0]=(time/3.0)*(6*r*time*z*Alpha+6*
371  2*r*time*time*Mu-time*time*(Lambda+Mu)/(r*r));
372  b[1]=(-time/(3.0*pow(r,3)))*
373  (-3*pow(r,5)*time*Alpha+6*r*r*z*Lambda_sq-
374  time*time*z*Mu+pow(r,3)*
375  (6*time*Alpha+
376  2*Rho_f_over_rho*z*z*(3+2*z)*Alpha*Lambda_sq+4*time*time*z*(Lambda+Mu)));
377  }
378  else
379  {
380  b[0]=0;
381  b[1]=0;
382  }
383  }
Scalar * b
Definition: benchVecAdd.cpp:17

References Alpha, b, oomph::CommandLineArgs::command_line_flag_has_been_set(), Lambda, Lambda_sq, Mu, Eigen::bfloat16_impl::pow(), UniformPSDSelfTest::r, Rho_f_over_rho, and plotDoE::x.

Referenced by AxiPoroProblem< ELEMENT, TIMESTEPPER >::complete_problem_setup().

◆ unit_flux()

void ProblemParameters::unit_flux ( const double time,
const Vector< double > &  x,
double flux 
)

hierher temp flux.

2777  {
2778  flux = 1.0;
2779  }

References flux().

Referenced by ContactProblem< ELEMENT >::create_imposed_heat_flux_elements_on_boulder().

◆ update_dependent_parameters()

void ProblemParameters::update_dependent_parameters ( )

Helper function to update dependent parameters.

98  {
99  Lambda = E_mod*Nu/((1.0+Nu)*(1.0-2.0*Nu));
100  Mu = E_mod/(2.0*(1.0+Nu));
102  }
double E_mod
Definition: unstructured_two_d_curved.cc:62
double Density_ratio
Ratio of pore fluid density to solid matrix density.
Definition: unstructured_two_d_curved.cc:74
double Nu
Poisson's ratio.
Definition: unstructured_two_d_curved.cc:65

References Density_ratio, E_mod, Lambda, Mu, Nu, Porosity, and Rho_f_over_rho.

Referenced by main().

◆ zero_fct()

double ProblemParameters::zero_fct ( const double time,
const Vector< double > &  x 
)

Function that returns zero (for assigment of initial conditions/ history values)

114  {
115  return 0.0;
116  }

Referenced by AxiPoroProblem< ELEMENT, TIMESTEPPER >::set_boundary_values().

Variable Documentation

◆ Alpha

◆ Alpha_rock

double ProblemParameters::Alpha_rock =0.001

Nondim thermal inertia for rock.

Referenced by SolarRadiationProblem< ELEMENT >::complete_problem_setup().

◆ Alpha_tanh

double ProblemParameters::Alpha_tanh =100.0

Steepness parameter for tanh for pressure incrementation.

Referenced by main(), and pressure_magnitude().

◆ Beta_rock

double ProblemParameters::Beta_rock =10.0

Nondim thermal conductivity for rock.

Referenced by SolarRadiationProblem< ELEMENT >::complete_problem_setup().

◆ Body_force_alpha

double ProblemParameters::Body_force_alpha =1.0e4

Referenced by body_force().

◆ Body_force_amplitude

double ProblemParameters::Body_force_amplitude =0.0

Body force magnitude.

Referenced by body_force(), and main().

◆ Boundary_geom_object_contact

WarpedLine ProblemParameters::Boundary_geom_object_contact ( 1.0e-  10,
X_contact_end_left  ,
X_contact_end_right   
)

GeomObject specifying the shape of the boundary: Initially it's almost flat.

Referenced by ContactProblem< ELEMENT >::create_displ_imposition_elements(), ContactProblem< ELEMENT >::doc_solution(), and main().

◆ Boundary_geom_object_left

WarpedLine ProblemParameters::Boundary_geom_object_left ( 1.0e-  10,
0.  0,
X_contact_end_left   
)

GeomObject specifying the shape of the boundary: Initially it's almost flat. Starts at the left

Referenced by ContactProblem< ELEMENT >::create_displ_imposition_elements(), and main().

◆ Boundary_geom_object_right

WarpedLine ProblemParameters::Boundary_geom_object_right ( 1.0e-  10,
X_contact_end_right  ,
1.  0 
)

GeomObject specifying the shape of the boundary: Initially it's almost flat.

Referenced by ContactProblem< ELEMENT >::create_displ_imposition_elements(), and main().

◆ Centre

◆ Coeff

Vector< double > ProblemParameters::Coeff ( N_terms  ,
1.  0 
)

Coefficients in the exact solution.

Referenced by exact_minus_dudr(), and get_exact_u().

◆ Constitutive_law_pt

◆ Density_ratio

◆ Diffuse_radiation

double ProblemParameters::Diffuse_radiation =0.4147111183

Diffuse radiation (based on 300 W/m^2)

Referenced by atmospheric_radiation().

◆ Direct_radiation

double ProblemParameters::Direct_radiation =1.382370394

Direct radiation for peak of 1000 W/m^2.

Referenced by atmospheric_radiation().

◆ Directory

◆ Domain_radius

double ProblemParameters::Domain_radius =1.0

◆ Dt

◆ E

IsotropicElasticityTensor ProblemParameters::E ( Nu  )

The elasticity tensor.

Referenced by ContactProblem< ELEMENT >::complete_problem_setup().

◆ E_mod

double ProblemParameters::E_mod =1.0

Non-dim Young's modulus – set to one implying that equations were scaled on actual young's modulus.

Referenced by update_dependent_parameters().

◆ El_area

double ProblemParameters::El_area =0.02

◆ El_multiplier

unsigned ProblemParameters::El_multiplier =1

Multiplier for number of elements.

Referenced by FourierDecomposedHelmholtzProblem< ELEMENT >::FourierDecomposedHelmholtzProblem(), and main().

◆ Element_area

◆ Element_length_factor

double ProblemParameters::Element_length_factor =0.01

Factor for element length on contact boundary.

Factor for element length on contact boundary ie how many times smaller should the elements on the boundary be?

Referenced by ContactProblem< ELEMENT >::actions_before_adapt(), and main().

◆ Horizontal_force

double ProblemParameters::Horizontal_force =0.0

◆ Impose_position_of_centre

bool ProblemParameters::Impose_position_of_centre =true

Impose position of centre (i.e. a stand-alone penetrator with prescribed position or indirectly via control node?

Impose position of centre (i.e. a stand-alone penetrator with prescribed position) or indirectly via control node?

Referenced by ContactProblem< ELEMENT >::complete_problem_setup(), and main().

◆ Inner_radius

double ProblemParameters::Inner_radius =0.3

◆ Internal_time_stepper_pt

TimeStepper* ProblemParameters::Internal_time_stepper_pt =0

Pointer to timestepper for internal dofs.

Referenced by AxiPoroProblem< ELEMENT, TIMESTEPPER >::AxiPoroProblem(), and edge_sign_setup().

◆ K_squared

◆ Lambda

double ProblemParameters::Lambda = 0.0

◆ Lambda_sq

◆ Melt_temperature

◆ Mu

double ProblemParameters::Mu = 0.0

◆ N_fourier

◆ N_terms

unsigned ProblemParameters::N_terms =6

Number of terms in the exact solution.

Referenced by exact_minus_dudr(), PlanarWave::get_exact_u(), and get_exact_u().

◆ Nel_pml

unsigned ProblemParameters::Nel_pml =15

Default number of elements within PMLs.

Referenced by PMLFourierDecomposedHelmholtzProblem< ELEMENT >::create_pml_meshes(), and main().

◆ Nterms_for_DtN

unsigned ProblemParameters::Nterms_for_DtN =6

Number of terms in computation of DtN boundary condition.

Referenced by FourierDecomposedHelmholtzProblem< ELEMENT >::FourierDecomposedHelmholtzProblem().

◆ Nu

double ProblemParameters::Nu =0.3

Poisson's ratio.

Poisson's ratio for pseudo-solid.

Poisson's ratio for solid (both real and pseudo)

Poisson's ratio for solid.

Referenced by AxiPoroProblem< ELEMENT, TIMESTEPPER >::complete_problem_setup(), ContactProblem< ELEMENT >::doc_solution(), main(), and update_dependent_parameters().

◆ One_day

double ProblemParameters::One_day =0.4084910633

One day in our non-dim units.

Referenced by atmospheric_radiation().

◆ P

double ProblemParameters::P =1.0

Scaling parameter for pressure load on upper boundary (for non-validation case)

Referenced by pressure_magnitude().

◆ Penetrator_pt

◆ Permeability

◆ PML_thickness

double ProblemParameters::PML_thickness =4.0

Default physical PML thickness.

Referenced by PMLFourierDecomposedHelmholtzProblem< ELEMENT >::create_pml_meshes(), and main().

◆ Porosity

◆ R_source

double ProblemParameters::R_source = 2.0

Radial position of point source.

◆ Radius

◆ Radius_of_elastic_body

double ProblemParameters::Radius_of_elastic_body =2.0

Radius of elastic body.

◆ Rho_f_over_rho

double ProblemParameters::Rho_f_over_rho = 0.0

Precalculate ratio of pore fluid density to compound density for convenience – dependent parameter!

Referenced by Fluid_body_force(), Solid_body_force(), and update_dependent_parameters().

◆ Rotation_angle

double ProblemParameters::Rotation_angle =0.0

◆ Steady

bool ProblemParameters::Steady =false

Steady flag.

Referenced by main().

◆ T_contact

double ProblemParameters::T_contact =0.0

◆ T_tanh

double ProblemParameters::T_tanh =0.25

Parameter for tanh origin for pressure incrementation.

Referenced by main(), and pressure_magnitude().

◆ Weight

double ProblemParameters::Weight =0.0

NOTE: WE IMPOSE EITHER THESE ...

Weight of penetrator

Referenced by oomph::Newmark< NSTEPS >::assign_initial_data_values(), oomph::Newmark< NSTEPS >::assign_initial_data_values_stage2(), oomph::BDF< NSTEPS >::BDF(), ContactProblem< ELEMENT >::complete_problem_setup(), oomph::GaussLegendre< 1, NPTS_1D >::GaussLegendre(), oomph::GaussLegendre< 2, NPTS_1D >::GaussLegendre(), oomph::GaussLegendre< 3, NPTS_1D >::GaussLegendre(), oomph::GaussLobattoLegendre< 1, NPTS_1D >::GaussLobattoLegendre(), oomph::GaussLobattoLegendre< 2, NPTS_1D >::GaussLobattoLegendre(), oomph::GaussLobattoLegendre< 3, NPTS_1D >::GaussLobattoLegendre(), oomph::TimeStepper::highest_derivative(), main(), oomph::TimeStepper::make_steady(), oomph::TimeStepper::ntstorage(), oomph::NewmarkBDF< NSTEPS >::set_newmark_veloc_weights(), oomph::BDF< NSTEPS >::set_weights(), oomph::NewmarkBDF< NSTEPS >::set_weights(), oomph::Steady< NSTEPS >::set_weights(), oomph::Newmark< NSTEPS >::set_weights(), oomph::BDF< NSTEPS >::shift_time_positions(), ContactProblem< ELEMENT >::switch_to_force_control(), oomph::TimeStepper::time_derivative(), oomph::TimeStepper::TimeStepper(), oomph::Gauss< 1, 2 >::weight(), oomph::Gauss< 1, 3 >::weight(), oomph::Gauss< 1, 4 >::weight(), oomph::Gauss< 2, 2 >::weight(), oomph::Gauss< 2, 3 >::weight(), oomph::Gauss< 2, 4 >::weight(), oomph::Gauss< 3, 2 >::weight(), oomph::Gauss< 3, 3 >::weight(), oomph::Gauss< 3, 4 >::weight(), oomph::TGauss< 1, 2 >::weight(), oomph::TGauss< 1, 3 >::weight(), oomph::TGauss< 1, 4 >::weight(), oomph::TGauss< 1, 5 >::weight(), oomph::TGauss< 2, 2 >::weight(), oomph::TGauss< 2, 3 >::weight(), oomph::TGauss< 2, 4 >::weight(), oomph::TGauss< 2, 13 >::weight(), oomph::TGauss< 2, 9 >::weight(), oomph::TGauss< 2, 16 >::weight(), oomph::TGauss< 2, 5 >::weight(), oomph::TGauss< 3, 2 >::weight(), oomph::TGauss< 3, 3 >::weight(), oomph::TGauss< 3, 5 >::weight(), oomph::GaussLobattoLegendre< 1, NPTS_1D >::weight(), oomph::GaussLobattoLegendre< 2, NPTS_1D >::weight(), oomph::GaussLobattoLegendre< 3, NPTS_1D >::weight(), oomph::GaussLegendre< 1, NPTS_1D >::weight(), oomph::GaussLegendre< 2, NPTS_1D >::weight(), oomph::GaussLegendre< 3, NPTS_1D >::weight(), oomph::TimeStepper::weight(), and oomph::TimeStepper::weights_pt().

◆ X_contact_end_left

double ProblemParameters::X_contact_end_left =0.3

Left end of contact region (for unstructured mesh only)

Referenced by ContactProblem< ELEMENT >::ContactProblem().

◆ X_contact_end_right

double ProblemParameters::X_contact_end_right =0.7

Right end of contact region (for unstructured mesh only)

Referenced by ContactProblem< ELEMENT >::ContactProblem().

◆ Y_c

◆ Y_c_initial

double ProblemParameters::Y_c_initial =1.05

◆ Y_c_max

double ProblemParameters::Y_c_max =0.0

Initial/max y-position.

Referenced by ContactProblem< ELEMENT >::actions_before_implicit_timestep(), and main().

◆ Z_source

double ProblemParameters::Z_source = 2.0

Axial position of point source.