Velocity Wave with Sharp Front, Artificial Viscosity


To view this project in FLAC3D, use the menu command Help ‣ Examples…. The main data file of the project is shown at the end of this example. The remaining data files can be found in the project.

This is a small example illustrating the effects of Artificial Viscosity. An expansion wave with a sharp velocity front is propagated through a column of zones in plane-strain conditions, and histories of the velocity at two locations are taken to illustrate how artificial viscosity smooths the response to the wave.

Figure 1 shows the response of a model without artificial viscosity. The applied wave is shown by the solid black line, which also corresponds to the motion of gridpoint 605. As the wave passes through gridpoints 625 and 645, the velocity histories show the oscillation in the response. This is due to discretization error resolving the sharp wave front.

click to enlarge in a new window

Figure 1: x-velocity histories for plane-strain model without artificial viscosity.

Figure 2 shows the response of the model with artificial viscosity. The oscillations due to passage of the wave front have been removed.

click to enlarge in a new window

Figure 2: x-velocity histories for plane-strain model with artificial viscosity.


Wilkins, M. L. “Use of Artificial Viscosity in Multidimensional Fluid Dynamic Calculations,” in Journal of Computational Physics, 36, 281-303 (1980).

Data File


;     Velocity wave with sharp front, artificial viscosity
;     Part 1 - Not using articifial viscosity, see av.dat
model new
fish automatic-create off
model title "x-velocities for plane-strain model-no artificial viscosity"
model configure dynamic
; Create zones
zone create brick size 150 1 3 ...
                  point 0 0.019 0 0 point 1 10 0 0 ...
                  point 2 0.019 0.019 0 point 3 0.019 0 0.20
; Assign constitutive model and properties                       
zone cmodel assign elastic
zone property shear=34.3e6 bulk=58.6e6 density=2.8
; Boundary Conditions
zone gridpoint fix velocity-z range union position-z 0 position-z 0.2
zone gridpoint fix velocity-y range union position-y 0 position-y 0.019
zone face apply quiet-normal range position-x 10
zone face apply quiet-strike range position-x 10
fish define wave
    wave = math.exp(-0.1842e06*(
    if<430.e-06 then
        wave = 1.0
    if<1.0e-06 then
        wave = 1.0e-6 *
zone face apply velocity-x=1 fish=wave range position-x 0.019
; Take histories
history interval=5
model history name='time' dynamic time-total
fish history name='wave' wave
zone history name='vel1' velocity-x gridpointid 605
zone history name='vel2' velocity-x gridpointid 625
zone history name='vel3' velocity-x gridpointid 645
; Activate artificial viscosity
zone dynamic damping artificial-viscosity 1 1
; Set to large strain, and solve to 1e-3
model large-strain on
model solve time-total 1e-3
model save 'avisc'