.mat
, .json
, etc)
Define an operation as a primitive that is closed under
Stage computations
anabel.Operation
anabel.Assembler
anabel.Template
anabel.Operation
shape
parameters
(ElemData
schema)origin
(ElemState
)tangents
bind
: Create an operation by binding a function to the input of an operation@anabel.template(3)
def beam2d_template(
q0: array = None,
E: float = None,
A: float = None,
I: float = None,
L: float = None
):
def beam(v, q, state=None, E=E,A=A,I=I,L=L):
C0 = E*I/L
C1 = 4.0*C0
C2 = 2.0*C0
k = anp.array([[E*A/L,0.0,0.0],[0.0,C1,C2],[0.0,C2,C1]])
return v, k@v, state
return locals()
A = bftf + bwtw
import anabel
model = anabel.SkeletalModel(ndm=2, ndf=3)
bw, tw = 18, 18
tf, bf = model.param("tf","bf")
# define an expression for the area
area = lambda tf, bf: bf*tf + bw*tw
# create a model parameter from this expression
A = model.expr(area, tf, bf)
...
# instantiate a `beam` in terms of this expression
girder = beam_template(A=A, I=I, E=3600.0)