# Plotting resin front velocity in a resin filling simulation in LS-DYNA

Member, Employee Posts: 3
✭✭✭

This examples shows how the level_set parameter can be extracted from d3plot in pydpf. The level_set parameter has a positive value where the fluid phase exists and negative everywhere else. In this example, the level_set is cast as a parameter with either 0 or 1 and an iso surface of the value is extracted. This gives us just the resin domain. The minimum y coordinate of this domain is the boundary of the wave front. By tracking this coordinate, the displacement and in turn the velocity of the resin flow can be computed.

```from ansys.dpf import core as dpf
from ansys.dpf.core import examples
from ansys.dpf.core import operators as ops
import matplotlib.pyplot as plt
import numpy as np

#### Load d3plot as 'ms' data

ds = dpf.DataSources()

model = dpf.Model(ds)
print(model)

#### Extract the number of states in d3plot
level_set = model.results.level_set.on_all_time_freqs().eval()
print(level_set)

#### Loop through the states to get the level_set results
distance = [0]
velocity = []
count =1
for i in range(len(tf)-1):
level_set[i].data = np.where(level_set[i].data > 0,1,0

#### Extract iso surface with current level_set as the field
op = dpf.operators.mesh.iso_surfaces(
field=level_set[i],
num_surfaces=1,
)
#### get the mesh from the operator
result = op.outputs.meshes().get_mesh(0).grid

#### compute distance and velocity
distance.append(np.min(result.points[:,1]))
if count > 1:
velocity.append((distance[count]-distance[count-1])/(tf[count]-tf[count-1]))
count+=1

plt.plot(tf[2:],velocity)
plt.xlabel('Time')
plt.ylabel('Velocity of resin front')
plt.show()

level_set.animate(show_edges=False,clim = [-0.5,1],opacity="linear")

```