refineable_unstructured_two_layer_ss.cc File Reference

Classes

class  SlavePositionPointElement
 
class  ElasticRefineableTwoLayerMesh< ELEMENT >
 
class  SurfactantProblem< ELEMENT, INTERFACE_ELEMENT >
 

Namespaces

 oomph
 DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
 
 oomph::Control_Parameters
 
 oomph::Global_Physical_Variables
 Namespace for the physical parameters in the problem.
 

Functions

void oomph::Global_Physical_Variables::hydrostatic_pressure_outlet_upper (const double &time, const Vector< double > &x, const Vector< double > &n, Vector< double > &traction)
 
void oomph::Global_Physical_Variables::hydrostatic_pressure_inlet_upper (const double &time, const Vector< double > &x, const Vector< double > &n, Vector< double > &traction)
 Function that prescribes hydrostatic pressure field at the inlet. More...
 
void oomph::Global_Physical_Variables::hydrostatic_pressure_outlet_lower (const double &time, const Vector< double > &x, const Vector< double > &n, Vector< double > &traction)
 
void oomph::Global_Physical_Variables::hydrostatic_pressure_inlet_lower (const double &time, const Vector< double > &x, const Vector< double > &n, Vector< double > &traction)
 Function that prescribes hydrostatic pressure field at the inlet. More...
 
void oomph::Global_Physical_Variables::wall_unit_normal_inlet_fct (const Vector< double > &x, Vector< double > &normal)
 Function that specifies the wall unit normal at the inlet. More...
 
void oomph::Global_Physical_Variables::wall_unit_normal_outlet_fct (const Vector< double > &x, Vector< double > &normal)
 Function that specified the wall unit normal at the outlet. More...
 
int main (int argc, char **argv)
 Driver code for 2D Boussinesq convection problem. More...
 

Variables

Vector< doubleoomph::Global_Physical_Variables::Tau (2, 1.0)
 
Vector< doubleoomph::Global_Physical_Variables::D (2, 1.0)
 
Vector< doubleoomph::Global_Physical_Variables::Direction_of_gravity (2)
 Gravity vector, will be set in the main code. More...
 

Function Documentation

◆ main()

int main ( int argc  ,
char **  argv 
)

Driver code for 2D Boussinesq convection problem.

1916 {
1917  ofstream trace("RESLT/trace.dat");
1918 
1919  // Set the direction of gravity
1922 
1923  //Set the diffusivities (inverse peclect numbers)
1926 
1930 
1931 
1932  //Construct our problem
1937  problem;
1938 
1939 
1940  // Apply the boundary condition at time zero
1941  problem.set_boundary_conditions(0.0);
1942 
1943  //Perform a single steady Newton solve
1944  problem.steady_newton_solve();
1945 
1946  //Document the solution
1947  problem.doc_solution(trace);
1948 
1949  //Now release the interface for real fun
1950  problem.unpin_surface();
1951 
1952  //Set the timestep
1953  double dt = 0.01; //0.1;
1954 
1955  //Initialise the value of the timestep and set initial values
1956  //of previous time levels assuming an impulsive start.
1957  problem.deform_interface(Global_Physical_Variables::Ha,1);
1958  problem.doc_solution(trace);
1959  problem.assign_initial_values_impulsive(dt);
1960 
1961  //Set the number of timesteps to our default value
1962  unsigned n_steps = 1000;
1963 
1964  //Set the freqency of refinement
1965  unsigned refine_after_n_steps = 3;
1966 
1967  //If we have a command line argument, perform fewer steps
1968  //(used for self-test runs)
1969  if(argc > 1) {n_steps = 5; refine_after_n_steps=3;}
1970 
1971  //Perform n_steps timesteps
1972  for(unsigned i=0;i<n_steps;++i)
1973  {
1974  double dt_next = dt;
1975  //Spatial adapt every 5 steps with a fixed timestep
1976  if((i>0) && (i%refine_after_n_steps==0))
1977  {
1978  problem.unsteady_newton_solve(dt,1,false);
1979  }
1980  else
1981  {
1982  //Unsteady timestep (for fixed mesh)
1983  dt_next = problem.adaptive_unsteady_newton_solve(dt,1.0e-6);
1984  }
1985  dt = dt_next;
1986  problem.doc_solution(trace);
1987  }
1988 
1989 } // end of main
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Definition: refineable_two_layer_soluble_surfactant.cc:646
Specialise to the Line geometry.
Definition: soluble_surfactant_transport_equations.h:624
Definition: hijacked_elements.h:132
Refineable version of the PseudoSolidNodeUpdateELement.
Definition: pseudosolid_node_update_elements.h:585
Class for refineable QPVDElement elements.
Definition: refineable_solid_elements.h:181
Vector< double > D(2, 1.0)
Diffusivity (identically one from our non-dimensionalisation)
Vector< double > Direction_of_gravity(2)
Gravity vector.
Vector< double > Wall_normal
Direction of the wall normal vector.
Definition: axi_static_cap.cc:59
double Pe_b
Bulk Peclet number.
Definition: refineable_two_layer_soluble_surfactant.cc:136
double Ha
Definition: refineable_two_layer_soluble_surfactant.cc:100
double Pe_m
Micelle Pelect number.
Definition: refineable_two_layer_soluble_surfactant.cc:139
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213

References Global_Physical_Variables::D, Global_Physical_Variables::Direction_of_gravity, oomph::Global_Physical_Variables::Ha, i, oomph::Global_Physical_Variables::Pe_b, oomph::Global_Physical_Variables::Pe_m, problem, and Global_Physical_Variables::Wall_normal.