In [1]:
using PtFEM, DataFrames, Plots


WARNING: Method definition ==(Base.Nullable{S}, Base.Nullable{T}) in module Base at nullable.jl:238 overwritten in module NullableArrays at /Users/rob/.julia/v0.6/NullableArrays/src/operators.jl:99.
WARNING: Method definition append!(NullableArrays.NullableArray{WeakRefStrings.WeakRefString{T}, 1}, NullableArrays.NullableArray{WeakRefStrings.WeakRefString{T}, 1}) in module Data at /Users/rob/.julia/v0.6/DataStreams/src/DataStreams.jl:344 overwritten in module DataTables at /Users/rob/.julia/v0.6/DataTables/src/abstractdatatable/io.jl:312.

In [2]:
N(x) = -q * x


Out[2]:
N (generic function with 1 method)

In [3]:
u(x) = q/(2*EA).*(l^2 .- x.^2)


Out[3]:
u (generic function with 1 method)

In [4]:
l = 1.0 # Length [m]
q = 5.0 # Distributed load [N/m]
EA = 10.0 # [Ns/m];

In [5]:
gr()


Out[5]:
Plots.GRBackend()

In [6]:
x = 0.0:0.1:l;

In [7]:
p = Vector{Plots.Plot{Plots.GRBackend}}(2)
titles = ["EEM fig 1.1 u(x)", "EEM fig 1.1 N(x)"];

In [8]:
p[1]=plot(N(x), x, yflip=true, xflip=true, xlab="Normal force [N]", ylab="x [m]",
    fill=true, fillalpha=0.1, leg=false, title=titles[2]);

In [9]:
p[2] = plot(u(x), x, xlim=(0.0, 0.35), yflip=true, xlab="Displacement [m]", ylab="x [m]",
fillto=0.0, fillalpha=0.1, leg=false, title=titles[1]);

In [10]:
plot(p..., layout=(1,2))


Out[10]:
-5 -4 -3 -2 -1 0 0.0 0.2 0.4 0.6 0.8 1.0 EEM fig 1.1 N(x) Normal force [N] x [m] 0.0 0.1 0.2 0.3 0.0 0.2 0.4 0.6 0.8 1.0 EEM fig 1.1 u(x) Displacement [m] x [m]

In [11]:
round(u(1/3 * l), 8) == round(4/9 * q * l^2 / EA, 8)


Out[11]:
true

In [13]:
12*2


Out[13]:
24

In [ ]: