Skip to content

Commit

Permalink
improve documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
PetrKryslUCSD committed Sep 27, 2023
1 parent 68a5d59 commit 8004acf
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 14 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
## Current limitations

- Only elastic structures can be modeled.
- Only simple solid beam cross sections are implemented. Open thin-walled beams cannot be simulated at this point since the warping of the section is not enabled.
- Only simple solid or closed thin-walled beam cross sections are implemented. Open thin-walled beams cannot be simulated at this point since the warping of the section is not enabled.
- Shell reference surface offset not yet tested.
- Neither beams nor shells can be attached with an offset (eccentricity).

## News

- 09/26/2023: Multiple examples revised.
- 09/26/2023: Multiple examples revised. Numerous documentation improvements.
- 08/14/2023: Updated for Julia 1.9.2. Revised nomenclature of layup transformation matrices.
- 07/13/2023: Updated for Julia 1.9 and FinEtools 7.
- 05/26/2022: Paper on explicit dynamics accepted for publication in the
Expand Down
9 changes: 5 additions & 4 deletions src/CompositeLayupModule.jl
Original file line number Diff line number Diff line change
Expand Up @@ -160,11 +160,12 @@ end
"""
laminate_stiffnesses!(cl::CompositeLayup, A, B, D)
Compute the laminate stiffnesses, membrane, extension-bending coupling, and bending.
Compute the laminate stiffness matrices, membrane, extension-bending
coupling, and bending.
Aij coefficients represent in-plane stiffness of the laminate, the Dij
coefficients represent bending stiffness, the Bij represent bending-extension
coupling.
A, B, and D are the familiar 3x3 matrices: Aij coefficients represent in-plane
stiffness of the laminate, the Dij coefficients represent bending stiffness,
the Bij represent bending-extension coupling.
"""
function laminate_stiffnesses!(cl::CompositeLayup, A, B, D)
A .= zero(eltype(A))
Expand Down
16 changes: 8 additions & 8 deletions src/FEMMShellT3FFCompModule.jl
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ function stiffness(self::FEMMShellT3FFComp, assembler::ASS, geom0::NodalField{FF
Bm, Bb, Bs, DpsBmb, DtBs = self._Bm, self._Bb, self._Bs, self._DpsBmb, self._DtBs
A, B, D, BT = zeros(3, 3), zeros(3, 3), zeros(3, 3), zeros(3, 3)
H = zeros(2, 2)
sA, sB, sC = zeros(3, 3), zeros(3, 3), zeros(3, 3)
sA, sB, sD = zeros(3, 3), zeros(3, 3), zeros(3, 3)
sH = zeros(2, 2)
Tps, Tts = zeros(3, 3), zeros(2, 2)
tps! = QTEQTransformer(Tps)
Expand All @@ -519,20 +519,20 @@ function stiffness(self::FEMMShellT3FFComp, assembler::ASS, geom0::NodalField{FF
_ecoords_e!(ecoords_e, J0, E_G)
gradN_e, Ae = _gradN_e_Ae!(gradN_e, ecoords_e)
# Working copies to be transformed
sA[:] .= A[:]; sB[:] .= B[:]; sC[:] .= C[:]; sH[:] .= H[:]
sA[:] .= A[:]; sB[:] .= B[:]; sD[:] .= D[:]; sH[:] .= H[:]
# Transform the laminate stiffnesses
updatecsmat!(layup.csys, reshape(centroid, 1, 3), J0, -1, 0);
m, n = lla(E_G, csmat(layup.csys))
plane_stress_Tbar_matrix!(Tps, m, n)
tps!(sA, Tps); tps!(sB, Tps); tps!(sC, Tps);
tps!(sA, Tps); tps!(sB, Tps); tps!(sD, Tps);
transverse_shear_T_matrix!(Tts, m, n)
tts!(sH, Tts)
# Construct the Stiffness Matrix
fill!(elmat, 0.0); # Initialize element matrix
_Bmmat!(Bm, gradN_e)
add_btdb_ut_only!(elmat, Bm, Ae, sA, DpsBmb)
_Bbmat!(Bb, gradN_e)
add_btdb_ut_only!(elmat, Bb, Ae, sC, DpsBmb)
add_btdb_ut_only!(elmat, Bb, Ae, sD, DpsBmb)
add_b1tdb2!(elmat, Bm, Bb, Ae, sB, DpsBmb)
add_b1tdb2!(elmat, Bb, Bm, Ae, sB, DpsBmb)
# he = sqrt(2*Ae) # we avoid taking the square root here, replacing
Expand Down Expand Up @@ -684,7 +684,7 @@ function inspectintegpoints(self::FEMMShellT3FFComp, geom0::NodalField{FFlt}, u
Bm, Bb, Bs, DpsBmb, DtBs = self._Bm, self._Bb, self._Bs, self._DpsBmb, self._DtBs
A, B, D, BT = zeros(3, 3), zeros(3, 3), zeros(3, 3), zeros(3, 3)
H = zeros(2, 2)
sA, sB, sC = zeros(3, 3), zeros(3, 3), zeros(3, 3)
sA, sB, sD = zeros(3, 3), zeros(3, 3), zeros(3, 3)
sH = zeros(2, 2)
Tps, Tts = zeros(3, 3), zeros(2, 2)
tps! = QTEQTransformer(Tps)
Expand Down Expand Up @@ -743,12 +743,12 @@ function inspectintegpoints(self::FEMMShellT3FFComp, geom0::NodalField{FFlt}, u
@warn "Coordinate systems mismatched?"
end
# Established the stiffness matrices
sA[:] .= A[:]; sB[:] .= B[:]; sC[:] .= C[:]; sH[:] .= H[:]
sA[:] .= A[:]; sB[:] .= B[:]; sD[:] .= D[:]; sH[:] .= H[:]
# Transform the laminate stiffnesses
updatecsmat!(layup.csys, centroid, J0, i, 0)
m, n = lla(E_G, csmat(layup.csys))
plane_stress_Tbar_matrix!(Tps, m, n)
tps!(sA, Tps); tps!(sB, Tps); tps!(sC, Tps);
tps!(sA, Tps); tps!(sB, Tps); tps!(sD, Tps);
transverse_shear_T_matrix!(Tts, m, n)
tts!(sH, Tts)
# The output coordinate system
Expand All @@ -761,7 +761,7 @@ function inspectintegpoints(self::FEMMShellT3FFComp, geom0::NodalField{FFlt}, u
kurv = Bb * edisp_e
memstr = Bm * edisp_e
if quant == BENDING_MOMENT
mom = sB * memstr + sC * kurv
mom = sB * memstr + sD * kurv
m = [mom[1] mom[3]; mom[3] mom[2]]
mo = o2_e' * m * o2_e
out[:] .= mo[1, 1], mo[2, 2], mo[1, 2]
Expand Down

0 comments on commit 8004acf

Please sign in to comment.