The first method applied to the standard CVFE scheme was the multi-time step nodal subcycling algorithm presented by Smolinski (1989). This algorithm allows us to use different time steps in different regions to solve the time loop equations. The primary savings is gained by approximations that occur in the larger time step regions. Results from both our 1-D and 2-D analyses have shown that subcycling is a good approximation method when the time step of any region does not exceed its local Courant condition. As the ratio of the non-subcycled to subcycled time steps increases the approximations eventually cause instabilities in the solution resulting in its divergence. The optimal time step ratio selected should be no greater than half of the critical time step of the largest non-subcycled domain. Furthermore, the ratio of the number of non-subcycled to subcycled nodes - or region ratio - also plays an important role in the stability of the solution and in the time savings. In order to maintain the local stability, this region ratio should be greater than 1:1 so that many more non-subcycled than subcycled nodes exits. This will also increase the computational time savings since many more nodes will be approximated during each time cycle. If the ratio is too small the implementation of the subcycling algorithm has shown to offset any savings achieved through its use.
The dynamic cohesive element insertion algorithm that we have developed allows us to insert cohesive elements anywhere in the domain and at any time in the simulation. Each insertion requires that nodal and element data and connectivity information be adjusted to insure that all insertions are valid. Furthermore, in order to maintain the equilibrium of the system we must also conserve both the mass and momentum of the system by recalculating the nodal mass distributions and duplication displacement, velocity and acceleration information as necessary.
Initially we used blind insertion of cohesive elements within the domain. This insertion simply placed a zero-thickness cohesive element in between the volumetric elements and duplicated the nodal information. This insertion resulted in significant nodal oscillations in both the displacements, velocities and accelerations. The amplitude of these oscillations was directly proportional to the local stress at the time of insertion. We applied linear damping to attempt to minimize these oscillations. Though damping was able to minimize the oscillations at low stress levels, it was less effective at higher levels during which most insertion will take place. As a result, we developed a pre-stretching technique based on the traction-separation law for the cohesive elements. Using this technique we deform the cohesive elements at the time of insertion based on the local tractions applied to their interfaces. The elements are then inserted in a state that more closely resembles the state they would be in had they been inserted at the start of the simulation. Pre-stretching has shown to greatly minimize the nodal oscillations at any insertion time while maintaining the accuracy of the final solution.
Using the pre-stretching technique we then investigated using different selection criteria for placing the cohesive elements within the domain most efficiently. First, we used a bounding box selection where the cohesive region was encased in a growing box and all non-cohesive edges within it were converted to cohesive. This method was able to generate significant time savings but it was not very robust as it required some starting cohesive elements to define the initial bounding box. This limited us to problems where the formation of cracks could be predicted. Instead, we then used a stress-based insertion method by which cohesive element were inserted as the local stress reached some predefined level. This method can be used on any problem and does not require any initial cohesive elements. The results of applying this method have also generated large computational savings for various stress insertion levels. Although as the critical stress level for insertion is high, the solution tends to be more unstable while the time savings is not significantly more than for smaller, more stable insertions. A stress level of has shown to provide significant time savings while still maintaining the accuracy of the solution.
Finally, we have parallelized our code using the Charm++ FEM framework. This framework allows us to easily parallelize a serial code using only a few directives. We tested our parallel version on the simple L-angle dynamic insertion problem using 1, 2, 4 and 6 Pentium III, 600 MHz processors. Although we were not able to get a perfect speedup, we did get very good results. Our main cost in the implementation was due to the pre-processing of input files which resulted in less then perfect speedups.