OOF2: The Manual
The Solver Page is where it all comes together. After
the Solver Page is used to find the solution to the equations.
Figure 3.24 shows the layout of the
Solver Page. At the top is a Mesh Chooser for selecting the
Mesh to be solved. The Chooser has three parts, for selecting
Mesh and the
Microstructure in which it resides.
Below the Mesh Chooser is the Solver Pane, where
solution methods are assigned to
SubProblems, and below that
is the Field
Initialization Pane, where initial conditions are defined
and applied. At the bottom of the page is the Solution Pane.
The Solver Pane sets the solution
technique that will be used for each
the button is pressed. It
contains a four column list with one row for each
defined in the
Mesh, and two rows of buttons that operate on
the contents of the list. Clicking on a row selects it.
Double clicking on a row is equivalent to selecting it and
then pressing the
button. The list comprises four columns:
Order. When multiple
SubProblemsare being solved, they are addressed sequentially in the order given by the number in this column. The order can be changed by selecting a
SubProblemand clicking one of the , , , or buttons.
Solve? The checkbox in this column indicates whether the
SubProblemshould be solved or not. Clicking it invokes either the OOF.Subproblem.Enable_Solution or OOF.Subproblem.Disable_Solution commands. It's a quick way of temporarily disabling a subproblem without having to delete its solver.
Subproblem. This is just the name of the
Solver. This is a short hand description of the solver that has been assigned to the
SubProblem. If no Solver is assigned, it will read
<none>. To see the full details, select a line and click the button.
Set. Assign a solver to a
SubProblemvia the OOF.Subproblem.Set_Solver command. The button brings up a dialog box displaying the currently assigned solver, or the default solver if no other solver has yet been assigned. The default is a static solver operating in basic mode, where OOF2 makes most of the detailed parameter choices automatically. See the discussion for OOF.Subproblem.Set_Solver for details about the various kinds of solvers.
First, Earlier, Later, Last. These buttons change the order of the list, by moving the selected
SubProblemup ( or ) or down ( and ). All of the buttons invoke the OOF.Mesh.ReorderSubproblems command.
The Initialization Pane is in charge of assigning initial
values to the
Fields that are defined on the
As explained in Section 2.5.8,
initialization is a two step process: first an initializer is
assigned to a
Field, and then all the initializers are applied.
The Initialization pane contains a list with two columns: the
names of the
Fields and their initializers.
without initializers are marked with
---. Selecting a
Field in the list
and clicking the
button brings up a dialog box for setting the initializers.
Double-clicking on a
Field in the list has the same effect.
For more details, see OOF.Mesh.Set_Field_Initializer.
When solving static problems, it's not necessary to initialize
Fields that are active,
since values will be assigned to them by the solver. However,
the iterative solvers will converge faster if the initial
values of the
Fields are close to the actual solution.
Fields that are being used in time dependent problems should
always be initialized.
Note that changing a
SubProblem's solver can affect which
Fields can be initialized. If the
terms, such as mass
density terms in the force balance equation,
that contain second time derivatives, and
if the solvers are not static, then the first time derivative
of the relevant
Field must be initialized as well. The time
Fields have a
_t suffix in the
In Figure 3.20,
Temperature's initializer has been set to a
x+2*y, and the initializers
for the two components of the displacement have been set to
Apply. This button invokes OOF.Mesh.Apply_Field_Initializers to apply all the
Fieldinitializers that have been defined in the
Mesh. It does not change the
Mesh's time. If the initializers are time dependent, they are evaluated at the
Mesh's current time.
Apply at Time. This button invokes OOF.Mesh.Apply_Field_Initializers_at_Time, which sets the values of the
Mesh's time, which is provided by a dialog box. If any of the initializers are time dependent, they are evaluated at the given time.
The bottom part of the Solver page contains
The end time can be changed by typing a new value in the box. If only static solvers are being used, the end time can be omitted. In that case, it's assumed to be equal to the current time.
Pressing the Status box displays additional status information in the Message Window.button in the
The OOF.Mesh.Solve to compute a
solution. After completing a time dependent solution, the end
time is automatically incremented by the length of the time
evolution, and the changes to a
button. This allows the
solution to be extended by simply pressing the button again.
However, if the
Fields are reinitialized or the problem
definition is changed in any way, the
reverts to a