2. Small Cable Truss

A truss composed of prestressed cables deforms under its own weight (simulated here by forces concentrated at the truss free nodes) and under an additional single force applied at one node. The model has been presented by Kar et.al. [9]

Small cable truss: Mesh and boundary conditions: load at node 9 in negative z-direction.

Figure 16. Small cable truss: Mesh and boundary conditions: load at node 9 in negative z-direction.


The non-linear analysis can be executed in one or several stages being executed one after the other in the order they are enumerated in the case definition. Each stage references a case specifying sets of boundary conditions and analysis parameters and the solution will be incremented to a load or time parameter of 1.0 unless specified otherwise by the sfactor option of the stage.

In the first example (case 1) the analysis is performed in one stage, with all boundary conditions applied simultaneously:

# Boundary conditions

nbc
   set 3 # All forces applied simultaneously
      dof 3 value 100. nodes 9
      value 8. nodes [4 5 8 9]
   end
end

# Case definition

cases
   case 1
      title                    'Dead weight and load together in 1 set'
      analysis                 nonlinear
      increment_control_type   load
      ebc                      1
      nbc                      3
      step_size_init           1.
      step_size_min            0.01
      max_newton_iterations  100
   end
end

# Analysis directive
adir
   case 1
end

Case 1 tries to solve for all boundary conditions in one stage, with all natural boundary conditions contained in one set: Essential boundary conditions are defined in set 1 (option ebc 1), all natural boundary conditions are defined in natural boundary condition set 3 (option nbc 3), and the solver will try to solve for the final load multiplier value of the stage, i.e. (default) 1.0 with step_size 1.0. In case the step size is too large, steps can become smaller, but not less that 0.01 (option step_size_min 0.01). The output from B2000++ is listed below (it is obtained with the B2000+ command option -l 'info of solver in cerr'):

b2000++ -l 'info of all in err' -adir 'cases=1' b2test.b2m
INFO:all:10:45:58.554: Start
INFO:solver.static_nonlinear:10:45:58.555: Start static nonlinear solver for case 1
INFO:domain:10:45:58.555: Total number of DOfs: 36.
INFO:solver.static_nonlinear:10:45:58.556: Start prediction of increment 1 of stage id 1 for time 0.
INFO:solver.static_nonlinear:10:45:58.591: Start correction of increment 1 of stage id 1 for time 1.
INFO:solver.static_nonlinear:10:45:58.595: End static nonlinear analysis for case 1 with success.
INFO:all:10:45:58.595: End of execution

Note that the problem converges with one step.

In the second example (case 2) the analysis is again performed in one stage, with natural boundary conditions applied simultaneously, but enumerated separately:

# Boundary conditions

nbc 1 # Own weight
  dof FZ value 8. nodes [4 5 8 9]
end

nbc 2 # Single force
  dof FZ value 100. nodes 9
end

# Case definition

case 2
  title                  'Own weight and load together in 2 sets'
  analysis               nonlinear
  ebc                    1
  nbc                    1 # Own weight
  nbc                    2 # Single force
  step_size_init         1.
  step_size_min          0.01
end

# Analysis directive

adir
  case 2
end

In the third example (case 3) the analysis is performed in two stages, one for the own weight (case 31) and one for the load (case32):

# Boundary conditions

nbc
   set 1 # Own weight
       dof 3 value 8. nodes [4 5 8 9]
   end
   set 2 # Single force
       dof 3 value 100. nodes 9
   end
end

# Case definition

case 3
  title                   'Stage 1 (own weight) and stage 2 (load)'
  analysis                nonlinear
  stage                  31
  stage                  32
  max_newton_iterations 100
end

stage 31
  title                   'Stage 1 (own weight) and stage 2 (load)'
  ebc                     1
  nbc                     1
  step_size_init          1.
  step_size_min           0.01
  max_newton_iterations 100
end

stage 32
  title                   'Stage 2 (load)'
  ebc                     1
  nbc                     2
  step_size_init          1.
  step_size_min           0.01
  max_newton_iterations 100
end

# Analysis directive

adir
  case 3
end

adir requires to solve for case 3 which, in its turn, refers to 2 other cases, i.e. case 31 and case 31, which are solved for in the order they are enumerated. Again, essential boundary conditions are defined in set 1 (option ebc 1) which has to specified for each stage! The stage with the own weight, i.e. case 31, refers to the natural boundary condition set 31 (option nbc 31), and the solver will try to solve for the final load multiplier value of that stage, i.e. (default) 1.0 with step_size 1.0. In case the step size is too large, steps can become smaller, but not less that 0.01 (option step_size_min 0.01). The solver then continues with the next stage, i.e. case 32, which refers to the natural boundary condition set 32 (option nbc 32), and the solver will try to solve for the final load multiplier value of that stage, i.e. (default) 1.0 with step_size 1.0.

All 3 cases give the same result (see printed output below).

Deformations can be viewed with baspl++, the viewer script view.py producing the deformation plot with the cable stresses shown below (case 1). To run the viewer from the shell, type

baspl++ -t view.py

or call the make file target plot:

make plot

Small cable truss: Deformed shape

Figure 17. Small cable truss: Deformed shape


Small cable truss: Load-deformation curve of node 9.

Figure 18. Small cable truss: Load-deformation curve of node 9.


In addition, node displacements of all cases can be printed with the print utility b2print run from the shell:

b2print --case=1 --cycle=1 cable.b2m

--case specifying the case, --cycle the (highest) computational cycle for the case, and cable.b2m the model database, producing the output

Solution set DISP, case 1, cycle 1, branch 1

    Node    DOF01        DOF02        DOF03    
       1            0            0            0 
       2            0            0            0 
       3            0            0            0 
       4        -0.33        -0.33        0.831 
       5       -0.529         3.29         -2.7 
       6            0            0            0 
       7            0            0            0 
       8         3.29       -0.529         -2.7 
       9         3.65         3.65         16.5 
      10            0            0            0 
      11            0            0            0 
      12            0            0            0 

for case1, and

b2print --case=2 --cycle=1 cable.b2m
Solution set DISP, case 2, cycle 1, branch 1

    Node    DOF01        DOF02        DOF03    
       1            0            0            0 
       2            0            0            0 
       3            0            0            0 
       4        -0.33        -0.33        0.831 
       5       -0.529         3.29         -2.7 
       6            0            0            0 
       7            0            0            0 
       8         3.29       -0.529         -2.7 
       9         3.65         3.65         16.5 
      10            0            0            0 
      11            0            0            0 
      12            0            0            0

for case 2, and

b2print --case=3 --cycle=6 cable.b2m
Solution set DISP, case 3, cycle 6, branch 1

    Node    DOF01        DOF02        DOF03    
       1            0            0            0 
       2            0            0            0 
       3            0            0            0 
       4       -0.331       -0.331        0.832 
       5       -0.529         3.29         -2.7 
       6            0            0            0 
       7            0            0            0 
       8         3.29       -0.529         -2.7 
       9         3.65         3.65         16.5 
      10            0            0            0 
      11            0            0            0 
      12            0            0            0

for case 3.



[9] A. Kar et.al.; Convergence in highly nonlinear cable net problems; Journal of the Structural Division ACE, ST, pp 321-334, March 1973