luchete80 / WeldForm

Weakly-Compressible Smoothed Particle Hydrodynamics Parallel Solver for Elasto Plastic and thermal coupled Solid Mechanics
GNU General Public License v3.0
9 stars 5 forks source link

Change order of variables update in main Solver Loop #271

Open luchete80 opened 2 years ago

luchete80 commented 2 years ago

According to Randles and Libersky (1996)

This condition ensures that the time step will be small enough to prevent an element from penetrating excessively within a body with which it is in contact. The value taken for the 𝐶𝐹𝐿 constant is problem specific. Various authors [188, 189, 236, 237] have shown that it should be no greater than 0.3 when the leapfrog or predictor-corrector integration scheme is used. For the modified Euler approach adopted in this work, Randles and Libersky [190] have shown that this integration scheme is stable for values up to 1.5. A value of 0.7 appears to be sufficient for most FSW simulation with extensive non-linear transient behaviour

image

image

luchete80 commented 2 years ago

Change order of updating variables

luchete80 commented 2 years ago

Current order is: accel density
velocity position stress/strain


LastComputeAcceleration(); 
        Move(deltat); // DOES NOT INCLUDE GHOST PARTICLES

inline void Particle::Move_Leapfrog(Mat3_t I, double dt)
{
    if (FirstStep) {
        Densitya = Density - dt/2.0*dDensity;
        va = v - dt/2.0*a;
    }
    Densityb = Densitya;
    Densitya += dt*dDensity;
    Density = (Densitya+Densityb)/2.0;
    vb = va;
    va += dt*a;
    v = (va + vb)/2.0;
    x += dt*(va+VXSPH);

    Displacement += dt*va;

    Mat2Leapfrog(dt);
    if (FirstStep) FirstStep = false;

}
luchete80 commented 2 years ago

image

luchete80 commented 2 years ago

https://www.researchgate.net/publication/314254047_A_generalized_transport-velocity_formulation_for_smoothed_particle_hydrodynamics

luchete80 commented 2 years ago

Leapfrog in SolverGPU is working Ok, should be compared with that