Volume loading

Hi all,

I am struggling to fully understand the syntax for volume loading (VOLU) in Sofiplus. Despite multiple readings of Chapter 3.20 “VOLU - Volume Loading” in the Sofiplus manual, the syntax, particularly Figure 3.11, eludes me.

Could someone please explain how the syntax should be interpreted? I am especially confused about applying volume loads in the context of soil and water pressures.

I have created a small example model to illustrate my problem. So far, I have successfully applied volume loading for water pressure using the p, z, and p1 parameters. However, applying the same logic to soil pressure, especially with sloping retaining walls, has proven challenging.

Model description
Side 1 and 2 have dry soil covering their entire surfaces. Side 3 and 4 also have soil covering their entire surface, but have a water table at z = 7.

Dry soil density is 20kN/m3 while the effective soil density is 10kN/m2

  1. P = 0 at the top, and increases by 20kN/m2 downwards.
  2. P = 0 at coordinates (0, 0, 0) and (0, 10, 5), while increasing by 20kN/m2 downwards
  3. P = 0 at coordinates (0, 10, 5) and (10, 10, 10) while increasing by 20kN/m2 down to z = 7. from z = 7, it should increase by 10 kN/m2 instead
  4. P = 0 at the top increasing by 20kN/m2 down to z = 7. from z = 7, it should increase by 10 kN/m2 instead

So I guess it comes down to the two questions:

  1. Is it possible to at VOLU loading on a slope?
  2. What is the best way to change soil density along a line?

Please find the example model here:

+prog aqua urs:1 $ materials
head
NORM dc ds en199x-200x
UNIT 5
CONC no 1 c 40 ec 17500 gam 25
STEE no 2 type 'b' fy 500
CONC no 3 c 40 ec 20000 gam 25
end

+prog sofimshc urs:2 $ geometry
head
syst 3d gdiv 10000 gdir negz
ctrl opt mesh val 1

spt no 1 x 0  y 0  z 0
spt no 2 x 10 y 0  z 0
spt no 3 x 0  y 10 z 0
spt no 4 x 10 y 10 z 0
spt no 5 x 0  y 0  z 10
spt no 6 x 10 y 0  z 10
spt no 7 x 0  y 10 z 5
spt no 8 x 10 y 10 z 10

sar no 1 t 100 grp 1
    sarb type out na 1 ne 2
    sarb type out na 2 ne 6
    sarb type out na 6 ne 5
    sarb type out na 5 ne 1

sar no 2 t 100 grp 2
    sarb type out na 1 ne 5
    sarb type out na 5 ne 7
    sarb type out na 7 ne 3
    sarb type out na 3 ne 1

sar no 3 t 100 grp 3
    sarb type out na 3 ne 4
    sarb type out na 4 ne 8
    sarb type out na 8 ne 7
    sarb type out na 7 ne 3

sar no 4 t 100 grp 4
    sarb type out na 4 ne 2
    sarb type out na 2 ne 6
    sarb type out na 6 ne 8
    sarb type out na 8 ne 4
end

+prog sofiload urs:3 $ volu loading
head

lc 1 type 'none' titl 'Soil load 1'
volu ref 'qgrp' no 1 type 'pz' p 0 z 10 p1 -20

lc 2 type 'none' titl 'Soil load 2'
volu ref 'qgrp' no 2 type 'pz' p 0 z 10 p1 -20

lc 3 type 'none' titl 'Effective Soil load 1'
volu ref 'qgrp' no 3 type 'pz' p 0 z 10 p1 -20
volu ref 'qgrp' no 3 type 'pz' p 0 z 7 p1 10

lc 4 type 'none' titl 'Effective Soil load 1'
volu ref 'qgrp' no 4 type 'pz' p 0 z 10 p1 -20
volu ref 'qgrp' no 4 type 'pz' p 0 z 7 p1 10
end

Additional info
I have already contacted Sofistik support on a related question.
However, I believe a public discussion might be beneficial for many users dealing with similar issues.

Thank you in advance for any insights or suggestions.

I am not so well versed in VOLU. I think, variabel loadvalues across the region are a little bit tricky.
As circumvention you can use AREA instead of VOLU (and you can take the cornernode-coordinates):

lf 13 typ 'none' bez 'var.load AREA (ok)'
 area ref  qgrp  nr 3 typ  pz  p1   0 x1 #coor_x(8) #coor_y(8) #coor_z(8) $$
                               p2   0 x2 #coor_x(7) #coor_y(7) #coor_z(7) $$
                               p3 130 x3 #coor_x(3) #coor_y(3) #coor_z(3) $$
                               p4 200 x4 #coor_x(4) #coor_y(4) #coor_z(4)
lf 23 typ 'none' bez 'var.load VOLU (error)'
 volu ref  qgrp  nr 3 typ  pz  p    0  x #coor_x(8) #coor_y(8) #coor_z(8) $$
                               p1   0 x1 #coor_x(7) #coor_y(7) #coor_z(7) $$
                               p2 130 x2 #coor_x(3) #coor_y(3) #coor_z(3) $$
                               p3 200 x3 #coor_x(4) #coor_y(4) #coor_z(4)

Yes that’s also what I’ve ended up with in my main model, but I’d very much like to use the VOLU loading as it automatically takes care of the pressure increasing with depth. Through AREA I have to calculate that myself, so I was just wondering if there was an easier way.