of 1
%
=========================================================================
%
Stabil
implementation:
Auxiliary
function
to
compute
discrete
energies
in
%
frame
structures
%
J.
Ulloa,
M.P.
Ariza,
J.E.
Andrade
&
M.
Ortiz
%
Homogenized
models
of
mechanical
metamaterials
%
Computer
Methods
in
Applied
Mechanics
and
Engineering,
August
2024
%
=========================================================================
function
[
E_e
,
E_e_elem
]
=
energy_bars
(
Nodes
,
Elements
,
Types
,
Sections
,
...
Materials
,
DOF
,
U
)
[aDOF
,
elemInd]
=
getdof(Elements
,
Types)
;
[
~
,
Elements(
:
,
5
:
end
)]
=
ismember
(
round
(Elements(
:
,
5
:
end
))
,
...
round
(Nodes(
:
,
1
)))
;
Ldof
=
selectdof(aDOF
,
DOF)
;
Ua
=
Ldof
.'
*
U
;
E_e
=
0
;
E_e_elem
=
zeros
(
size
(Elements
,
1
)
,
1
)
;
for
iElem
=
1
:
size
(Elements
,
1
)
Material
=
Materials(Elements(iElem
,
4
)
,
2
:
end
)
;
Section
=
Sections(Elements(iElem
,
3
)
,
2
:
end
)
;
NodeNum
=
Elements(iElem
,
5
:
end
)
;
Node
=
NaN
(
numel
(NodeNum)
,
3
)
;
Node(NodeNum
~=
0
,
:
)
=
Nodes(NodeNum(NodeNum
~=
0
)
,
2
:
end
)
;
[Ke]
=
ke_beam(Node
,
Section
,
Material)
;
Ue
=
Ua(elemInd{iElem})
;
E_ee
=
0
.
5
*
(Ue)
.'
*
Ke
*
Ue
;
E_e_elem(iElem)
=
E_ee
;
E_e
=
E_e
+
E_ee
;
end
end