Boussinesq equations that read as follows:
@f{eqnarray*}
-\nabla \cdot (2 \eta \varepsilon ({\mathbf u})) + \nabla p &=&
- -\mathrm{Ra} \; T \mathbf{g},
+ -\rho \beta \; T \mathbf{g},
\\
\nabla \cdot {\mathbf u} &=& 0,
\\
particular with regard to efficient linear Stokes solvers.
The forcing term of the fluid motion is the buoyancy of the
-fluid, expressed as the product of the Rayleigh number $\mathrm{Ra}$,
+fluid, expressed as the product of the density $\rho$, the thermal expansion
+coefficient $\beta$,
the temperature <i>T</i> and the gravity vector <b>g</b> pointing downward. (A
possibly more intuitive formulation would use $-\mathrm{Ra} \; (T-\bar T)
\mathbf{g}$ as right hand side where $\bar T$ is the average
melting point, $\eta$ may change by orders of magnitude over the typical range
of temperatures.
-$\mathrm{Ra}$, called the <a
-href="http://en.wikipedia.org/wiki/Rayleigh_number">Rayleigh
-number</a>, is a dimensionless number that describes the ratio of heat
+We note that the Stokes equation above could be non-dimensionalized by
+introducing the <a target="_top"
+href="http://en.wikipedia.org/wiki/Rayleigh_number">Rayleigh
+number</a> $\mathrm{Ra}=\frac{\|g\| \beta \rho}{\eta \kappa} \delta T L^3$ using a
+typical length scale $L$, typical temperature difference $\delta T$, density
+$\rho$, thermal diffusivity $\kappa$, and thermal conductivity $\kappa$.
+$\mathrm{Ra}$ is a dimensionless number that describes the ratio of heat
transport due to convection induced by buoyancy changes from
temperature differences, and of heat transport due to thermal
diffusion. A small Rayleigh number implies that buoyancy is not strong
relative to viscosity and fluid motion <b>u</b> is slow enough so
-that heat diffusion $\kappa\Delta T$ is the dominant heat transport
+that heat diffusion $\kappa\nabla T$ is the dominant heat transport
term. On the other hand, a fluid with a high Rayleigh number will show
vigorous convection that dominates heat conduction.
//
// Finally, or maybe firstly, at the top of
// this namespace, we define the various
- // material constants we need ($\eta,\kappa$
- // and the Rayleigh number $Ra$):
+ // material constants we need ($\eta,\kappa$,
+ // density $\rho$ and the thermal expansion
+ // coefficient $\beta$):
namespace EquationData
{
const double eta = 1;
const double kappa = 1e-6;
- const double Rayleigh_number = 10;
+ const double beta = 10;
+ const double density = 1;
template <int dim>
const Point<dim> gravity = -( (dim == 2) ? (Point<dim> (0,1)) :
(Point<dim> (0,0,1)) );
for (unsigned int i=0; i<dofs_per_cell; ++i)
- local_rhs(i) += (-EquationData::Rayleigh_number *
+ local_rhs(i) += (-EquationData::density *
+ EquationData::beta *
gravity * phi_u[i] * old_temperature)*
stokes_fe_values.JxW(q);
}