OOF2: The Manual

3.15. Solver

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 the Mesh and the Skeleton and 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.

Figure 3.24. The Solver Page

The Solver Page

The Solver Pane

The Solver Pane sets the solution technique that will be used for each SubProblem when the Solve button is pressed. It contains a four column list with one row for each SubProblem 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 Set button. The list comprises four columns:

  • Order.  When multiple SubProblems are being solved, they are addressed sequentially in the order given by the number in this column. The order can be changed by selecting a SubProblem and clicking one of the First, Earlier, Later, or Last buttons.

  • Solve?  The checkbox in this column indicates whether the SubProblem should 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 SubProblem.

  • 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 Set button.

The buttons below the SubProblem list operate on the contents of the list. Most of them require one SubProblem to be selected in the list.

The Field Initialization Pane

The Initialization Pane is in charge of assigning initial values to the Fields that are defined on the Mesh. As explained in Section 2.5.8, Field 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. Fields without initializers are marked with ---. Selecting a Field in the list and clicking the Set 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 Equations include 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 derivative Fields have a _t suffix in the list.

In Figure 3.20, Temperature's initializer has been set to a function, x+2*y, and the initializers for the two components of the displacement have been set to constants, 0.0 and 0.01.

The buttons below the list operate on the Field initializers in the Mesh.

The Solution Pane

The bottom part of the Solver page contains

  • Boxes displaying the Mesh's current time, and the desired end time of the calculation.

  • A box displaying a brief Mesh status message, and a button to request more details.

  • The Solve button.

The current time cannot be edited. It can only be changed by re-initializing the Mesh using the Apply at Time button, or by solving a time-dependent problem.

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 Details button in the Status box displays additional status information in the Message Window.

The Solve calls 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 Solve changes to a Continue 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 Continue reverts to a Solve button.