Velocity Wave with Sharp Front, Artificial Viscosity

Note

To view this project in FLAC3D, use the menu command Help ‣ Examples…. Choose “Dynamic/ArtificialViscosity” and select “ArtificialViscosity.f3prj” to load. 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.


References

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

Data File

av.f3dat

;---------------------------------------------------------------------
;     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 config 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*(zone.dynamic.time.total-430.e-06))
    if zone.dynamic.time.total<430.e-06 then
        wave = 1.0
    end_if
    if zone.dynamic.time.total<1.0e-06 then
        wave = 1.0e-6 * zone.dynamic.time.total
    end_if
end
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 largestrain on
model solve time-total 1e-3
model save 'avisc'