Three elastic perfectly-plastic bars



1 Problem

For the three-bar model of the figure, draw the loading and unloading sequence for different levels of strains. The bars have the same geometry and elastic properties but different yield stresses.

 

2 Solution

Consider the following input file, which reads from the command line the maximum strain (default to five, yielding all three bars):

# read the final (non-dimensional) eps through the command line, default is eps_max = 5
DEFAULT_ARGUMENT_VALUE 1 5
e_max = $1

# the three (non-dimensinoal) yield stresses
yield1 = 3
yield2 = 2
yield3 = 1

E = 1   # non-dimensional Young's modulus (same for all three bars)

# set up the DAE solver
dt_0 = 1e-6
rel_error = 1e-4
end_time = 1
PHASE_SPACE e sigma1 sigma2 sigma3 P

# initial conditions
e_0 = 0
sigma1_0 = 0
sigma2_0 = 0
sigma3_0 = 0
P_0 = 0

# controlled strain (two cycles for 0 < t < 1)
e .= e_max * sin(4*pi*t)

# stresses follow the strain only if the materials do not yield
sigma1_dot .= E * e_dot * if((e_dot < 0 | sigma1 < yield1) & (e_dot > 0 | sigma1 > (-yield1)))
sigma2_dot .= E * e_dot * if((e_dot < 0 | sigma2 < yield2) & (e_dot > 0 | sigma2 > (-yield2)))
sigma3_dot .= E * e_dot * if((e_dot < 0 | sigma3 < yield3) & (e_dot > 0 | sigma3 > (-yield3)))
P .= sigma1 + sigma2 + sigma3

PRINT FILE_PATH three-bars.dat t e P sigma1 sigma2 sigma3

# plot the results once we are done
IF done
 SHELL "pyxplot three-bars.ppl"
 SHELL "mv eps-vs-t.pdf eps-vs-t-$1.pdf"
 SHELL "mv sigma-vs-eps.pdf sigma-vs-eps-$1.pdf"
ENDIF
wasora three-bars.was 0.5
wasora three-bars.was 1.5
wasora three-bars.was 2.5
wasora three-bars.was 3.5
wasora three-bars.was 4.5
\sigma_i and P vs. \epsilon \in [0:0.5]
\sigma_i and P vs. \epsilon \in [0:1.5]
\sigma_i and P vs. \epsilon \in [0:2.5]
\sigma_i and P vs. \epsilon \in [0:3.5]
\sigma_i and P vs. \epsilon \in [0:4.5]