Program & Data Flow

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