SFEMaNS  version 4.1 (work in progress)
Reference documentation for SFEMaNS
 All Classes Files Functions Variables Groups Pages
The function vv_exact

It is used to define the boundary condition \(\bu_\text{bdy}\). It can also be used by the function init_velocity_pressure so initial conditions match the boundary conditions.

This function defines boundary conditions for one given Fourier mode, one given component (radial cosine, radial sine, azimuthal cosine, azimuthal sine, vertical cosine or vertical sine) on a number of nodes, denoted nb_node, of the finite element mesh. We denote by vv_mesh the finite element mesh used to approximate the velocity field.

Inputs and outputs

The inputs of this function are the following:

  1. TYPE is the component of the source term that is computed (radial cosine, radial sine, etc.) It is an integer between one and six.
  2. rr is a real valued tabular that contains two columns with dimensions (2,nb_node). The tabular rr(1,:) contains the radial cylindrical coordinate of each nodes considered. Respectively, rr(2,:) contains the vertical coordinates of these nodes. We note that the integer nb_node is equal to the total number of node vv_mesh%np or the number of nodes where Dirichlet boundary conditions are applied.
  3. m is the Fourier mode considered. It is an integer.
  4. t is the time at which this term is computed. It is a real number.

The output of this function is a real valued tabular vv of dimension SIZE(rr,2).


Here is an exemple where we impose a solid rotation. It means that we set \(\bu=r\textbf{e}_\theta\) on the boundary of the domain where \(\textbf{e}_\theta\) is the unit vector in the azimuthal direction.

The corresponding code lines are written as follows.

IF (TYPE==3.AND.m==0) THEN
vv = rr(1,:)
vv = 0.d0

We refer to the sections Examples with manufactured solutions and Examples on physical problems for more examples.