Step 1 |
Start a global fixed iteration and set the iteration counter . Store the variables: , , , , and . Compute other forces: and . Compute the total force: and . Compute the total momentum: . Update the iteration counter . |
Step 2 |
Make a loop from to and compute for each fabric node : a) Compute forces: . b) Compute mass predicted position and predicted velocity:
,
. c) Enforce contact if necessary (if contact occurs do the following procedures): Consider “stick case”. Make and . Compute
and . IF
THEN “stick case”. Leave like that. The contact condition is satisfied. ELSE “slip case”. Update the velocity and the friction force . |
Step 3 |
Make a loop from to and compute for each projectile : a) Compute forces: . b) Compute momentum: . c) Compute position, velocity, angular velocity and rotation:
,
.
.
.
|
Step 4 |
Compute/update forces: (similar to step 2). |
Step 5 |
Compute/update fabric/coating damage: and . |
Step 6 |
Compute/update fabric/coating plastic stretch: and . |
Step 7 |
Measure normalized error quantities: a) , and . b) , . and . c) , and . |
Step 8 |
IF
THEN Increment time: , Construct the next time step: , where , Select the minimum size: , Go to step 1. ELSE Go to step 9. |
Step 9 |
IF
THEN Update the iteration counter: , Go to step 2. ELSE Go to step 10. |
Step 10 |
IF
THEN Construct a next time step: , where , Select the minimum size: , Restart at time : Set , , , and , Go to step 1. ELSE Set a larger number for the variable , Restart at time : Set , , , and , Go to step 1. |