The program flow in the engineering model -- numerical method frame is
explained in Fig. 3. After Domain reads the input file with
the problem description,
it starts computation by invoking SolveYourself service of Engng
model class. In this example a non-linear static problem
analysis is performed. The corresponding Engng model class solves the whole problem
as a series of load increments. Therefore, for each step of computation,
a SolveYourselfAt service is invoked. For the first step, the reference
load vector is formed from element and nodal contributions, so these
components are accessed from corresponding domain using its
services. Then, for each solution step, the stiffness matrix is formed
and particular components of the governing equation are mapped to
the numerical method components. Here, an CALM instance of Numerical
Method class is being used. For solution of a linearized problem, the
CALM uses another instance of Numerical method class - here named
Linear solver. After components are mapped and a solution is obtained,
the CALM checks convergence. It asks Engng model to compute
(update) the vector of real nodal forces according to the solution reached,
and checks convergence. If convergence is reached, the program control
returns to Engng model and the solution step is then terminated (stress
updates and necessary printing) and the solution continues with next
step. If prescribed accuracy is not reached, the stiffness matrix can be
updated by suitable engng model service and iteration continues.
To summarise, the natural independence of problem formulation,
numerical solution of problem, and data storage format have been
obtained, which leads to a modular and extensible structure of the engineering
model - numerical method frame.
Borek Patzak
2013-03-10