adevaucorbeil/karamelo

glass into water simulation

Opened this issue · 1 comments

Hi,

I've been testing karamelo for a few days now, and I find it incredibly interesting.

Now I'm trying to simulate in 2D a glass disc colliding into a water block, but I am having some problems: somehow the glass is bouncing off the water, while the water appears completely unperturbed, while I would expect the two to interact more strongly. I am pasting the .mpm file below, where I have omitted boundary conditions and gravity for simplicity.

I also have the problem that, with the same input file, sometimes the program crashes with a segfault, while sometimes it runs fine.

I appreciate any help with this.

Thanks,
Pasquale

---- input.mpm ----

## units: MKS

L = 1.0 # ref length
N = 50
cellsize = L/N
ppc1d = 2 # particles per cell, in 1D

R=0.1*L      # radius of impactor
velx=0.0     # x vel impactor
vely=-1000.0 # y vel impactor

FLIP=1.0

method(ulmpm, FLIP, linear, FLIP)

dimension(2,-L, L, -L, L, cellsize)

### water target
gamma_water=7.15 # Tait exponent
rho_water=1000.0 # reference bulk density
K_water=2.15*1000*1000*1000 # bulk modulus
G_water=0.000001 # shear modulus (shear viscosity?)
#
eos(eos_water, fluid, rho_water, K_water, gamma_water)
strength(strength_water, fluid, G_water)
material(mat_water, eos-strength, eos_water, strength_water)
region(region_water, block, -0.5*L, 0.5*L, -0.5*L, 0.0*L)
solid(solid_water, region, region_water, ppc1d, mat_water, cellsize, 0)
#
group(group_water, particles, region, region_water, solid, solid_water)
fix(vwater, initial_velocity_particles, group_water, 0.0, 0.0, NULL)


### glass impactor
E_glass   = 70.0*1000*1000*1000 # Young's modulus
nu_glass  = 0.23   # Poisson's ratio
rho_glass = 2400.0 # density
material(mat_glass, linear, rho_glass, E_glass, nu_glass)
region(rBall1, cylinder, 0, 2*R, R)
solid(sBall1, region, rBall1, ppc1d, mat_glass, cellsize, 0) 
#
group(gBall1, particles, region, rBall1, solid, sBall1)
fix(v0Ball1, initial_velocity_particles, gBall1, velx, vely, NULL)


N_log = 10

dump(dump1, all, particle, N_log, dump_p.*.LAMMPS, x, y, z)

dt_factor(0.1)

log_modify(custom, step, dt, time)
set_output(N_log)
run_time(0.0003)

I should add that the issues listed above are on a mac, while I just tried on a linux box and it seems to run fine, no segfault and expected glass-water interaction. So the issue appears limited to a mac, where I'm using Apple clang version 12.0.5.