| init |
| read input data and serial mesh |
| call FEM_Set() // send data to driver |
|
| driver |
| //optionally read input data needed by each chunk |
| fieldid = FEM_Create_Field() // create mass and force fields |
| Main Update Loop |
| call FEM_Get() // get data from init/mesh_update |
| call FEM_Update_Field(masses) |
| Solution loop |
| // calculate displacements |
| // calculate forces |
| call FEM_Update_Field(forces) |
| // calculate accelerations |
| // calculate velocities |
| End Solution loop |
| call FEM_Set() // send data to update_mesh |
| call FEM_Update_Mesh(timestep,1) // repartition |
| call FEM_Get() // get data back from update_mesh |
| End Main Update Loop |
|
| mesh_update |
| call FEM_Set() // get data from each driver |
| // dynamic insertion and other mesh manipulations |
| call FEM_Set() // send data back to driver |
|
| finalize |
| close out the program |