-
Notifications
You must be signed in to change notification settings - Fork 6
/
README
executable file
·547 lines (437 loc) · 23.2 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
!
! CalculiX - A 3-dimensional finite element program
! Copyright (C) 1998 Guido Dhondt
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation(version 2);
!
!
! This program is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with this program; if not, write to the Free Software
! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
!
This file describes the variables used in CalculiX and their meaning
REARRANGEMENT OF THE ORDER IN THE INPUT DECK
ifreeinp: next blank line in field inp
ipoinp(1,i): index of the first column in field inp
containing information on a block of lines in
the input deck corresponding to fundamental key i;
a fundamental key is a key for which the order
in the input file matters
(the fundamental keys are listed in file keystart.f)
ipoinp(2,i): index of the last column in field inp
containing information on a block of lines in
the input deck corresopnding to fundamental key i;
inp: a column i in field inp (i.e. inp(1..3,i))
corresponds to a uninterupted block of lines
assigned to one and the same fundamental key
in the input deck. inp(1,i) is its first line
in the input deck, inp(2,i) its last line and
inp(3,i) the next column in inp corresponding
to the same fundamental key; it takes the value
0 if none other exists.
MATERIAL DESCRIPTION
nmat: # materials
matname(i): name of material i
nelcon(1,i): # (hyper)elastic constants for material i
(negative kode for nonlinear elastic constants)
nelcon(2,i): # temperature data points for the elastic constants
of material i
elcon(0,j,i): temperature at (hyper)elastic temperature point j of
material i
elcon(k,j,i): (hyper)elastic constant k at elastic temperature point j
of material i
nrhcon(i): # temperature data points for the density of
material i
rhcon(0,j,i): temperature at density temperature point j of
material i
rhcon(1,j,i): density at the density temperature point j of
material i
nshcon(i): # temperature data points for the specific heat of
material i
shcon(0,j,i): temperature at specific heat temperature point j of
material i
shcon(1,j,i): specific heat at the specific heat temperature point j of
material i
nalcon(1,i): # of expansion constants for material i
nalcon(2,i): # of temperature data points for the expansion
coefficients of material i
alcon(0,j,i): temperature at expansion temperature point j
of material i
alcon(k,j,i): expansion coefficient k at expansion temperature
point j of material i
ncocon(1,i): # of conductivity constants for material i
ncocon(2,i): # of temperature data points for the conductivity
coefficients of material i
cocon(0,j,i): temperature at conductivity temperature point j
of material i
cocon(k,j,i): conductivity coefficient k at conductivity temperature
point j of material i
orname(i): name of orientation i
orab(1..6,i): coordinates of points a and b defining the new
orientation
norien: # orientations
isotropic hardening:
nplicon(0,i): # temperature data points for the isotropic hardening
curve of material i
nplicon(j,i): # of stress - plastic strain data points at temperature
j for material i
plicon(0,j,i): temperature data point j of material i
plicon(2*k-1,j,i): stress corresponding to stress-plastic strain data
point
k at temperature data point j of material i
plicon(2*k,j,i): plastic strain corresponding to stress-plastic strain
data point k at temperature data point j of material i
kinematic hardening:
nplkcon(0,i): # temperature data points for the kinematic hardening
curve of material i
nplkcon(j,i): # of stress - plastic strain data points at
temperature j for material i
plkcon(0,j,i): temperature data point j of material i
plkcon(2*k-1,j,i): stress corresponding to stress-plastic strain data
point k at temperature data point j of material i
plkcon(2*k,j,i): plastic strain corresponding to stress-plastic strain
data point
k at temperature data point j of material i
kode=-1: Arrudy-Boyce
-2: Mooney-Rivlin
-3: Neo-Hooke
-4: Ogden (N=1)
-5: Ogden (N=2)
-6: Ogden (N=3)
-7: Polynomial (N=1)
-8: Polynomial (N=2)
-9: Polynomial (N=3)
-10: Reduced Polynomial (N=1)
-11: Reduced Polynomial (N=2)
-12: Reduced Polynomial (N=3)
-13: Van der Waals (not implemented yet)
-14: Yeoh
-15: Hyperfoam (N=1)
-16: Hyperfoam (N=2)
-17: Hyperfoam (N=3)
-50: deformation plasticity
-51: incremental plasticity (no viscosity)
-52: viscoplasticity
< -100: user material routine with -kode-100 user
defined constants with keyword *USER MATERIAL
PROCEDURE DESCRIPTION
iperturb: 0: linear
1: second order theory
2: nonlinear geometric
3: nonlinear elastic material (and nonlinear geometric)
nmethod: 1: static (linear or nonlinear)
2: frequency(linear)
3: buckling (linear)
4: dynamic (linear or nonlinear)
GEOMETRY DESCRIPTION
nk: highest node number
co(i,j): coordinate i of node j
intr(1,j): transformation number applicable in node j
intr(2,j): a SPC in a node j in which a transformation
applies corresponds to a MPC. intr(2,j) contains
the number of a new node generated for the
inhomogeneous part of the MPC
TOPOLOGY DESCRIPTION
ne: highest element number
mint_: max # of integration points per element (max over all
elements)
kon(i): field containing the connectivity lists of the
elements in successive order
For element i:
ipkon(i): (location in kon of the first node in the element
connectivity list of element i)-1
lakon(i): element label
ielorien(i): orientation number
ielmat(i): material number
SHELL (2-D) AND BEAM (1-D) VARIABLES (INCLUDING PLANE STRAIN, PLANE
STRESS AND AXISYMMETRIC ELEMENTS)
iponor(2,i): two pointers for entry i of kon. The first
pointer points to the location in xnor preceding
the normals of entry i, the second points to the
location in knor of the newly generated
dependent nodes of entry i.
xnor(i): field containing the normals in nodes on the
elements they belong to
knor(i): field containing the extra nodes needed to
expand the shell and beam elements to volume
elements
thickn(2,i): thicknesses (one for shells, two for beams) in
node i
thicke(2,i): thicknesses (one for shells, two for beams) in
element nodes. The entries correspond to the
nodal entries in field kon
offset(2,i): offsets (one for shells, two for beams) in
element i
iponoel(i): pointer for node i into field inoel, which
stores the 1-D and 2-D elements belonging to the
node.
inoel(3,i): field containing an element number, a local node
number within this element and a pointer to
another entry (or zero if there is no
other).
inoelfree: next free field in inoel
rig(i): character*1 field indicating whether node i is a
rigid node ('R') or not (' '). In a rigid node
or knot all expansion nodes except the ones not
in the midface of plane stress, plane strain and
axisymmetric elements are connected with a rigid
body MPC
AMPLITUDES
nam: # amplitude definitions
amta(1,j): time of (time,amplitude) pair j
amta(2,j): amplitude of (time,amplitude) pair j
namtot: total # of (time,amplitude) pairs
For amplitude i:
amname(i): name of the amplitude
namta(1,i): location of first (time,amplitude) pair in
field amta
namta(2,i): location of last (time,amplitude) pair in
field amta
TRANSFORMS
ntrans # transform definitions
trab(1..6,i) coordinates of two points defining the transform
trab(7,i) =1 for rectangular transformations
=2 for cylindrical transformations
SINGLE POINT CONSTRAINTS
nboun # SPC's
For SPC (single point constraint) i:
nodeboun(i): SPC node
ndirboun(i): SPC direction
typeboun(i): SPC type (SPCs can contain the nonhomogeneous
part of MPCs):
B=prescribed boundary condition
M=midplane
P=planempc
R=rigidbody
S=straigthmpc
U=usermpc
xboun(i): magnitude of constraint at end of a step
xbounold(i): magnitude of constraint at beginning of a step
xbounact(i): magnitude of constraint at the end of the present
increment
xbounini(i): magnitude of constraint at the start of the
present increment
iamboun(i): amplitude number
ikboun(i): ordered array of the DOFs corresponding to the
SPC's (DOF=3*(nodeboun(i)-1)+ndirboun(i))
ilboun(i): original SPC number for ikboun(i)
MULTIPLE POINT CONSTRAINTS
ipompc(i): starting location in nodempc and coefmpc of MPC i
nodempc(1,ipompc(i)),nodempc(1,nodempc(3,ipompc(i))),
nodempc(1,nodempc(3,nodempc(3,nodempc(3,ipompc(i)))),...
until nodempc(3,nodempc(3,......))))))=0:
nodes belonging to MPC i
nodempc(2,ipompc(i)),nodempc(2,nodempc(3,ipompc(i))),
nodempc(2,nodempc(3,nodempc(3,nodempc(3,ipompc(i)))),...
until nodempc(3,nodempc(3,......))))))=0:
directions belonging to MPC i
xbounmpc(ipompc(i)),xbounmpc(nodempc(3,ipompc(i))),
xbounmpc(nodempc(3,nodempc(3,nodempc(3,ipompc(i)))),...
until nodempc(3,nodempc(3,......))))))=0:
coefficients belonging to MPC i
ikmpc (i): ordered array of the dependent DOFs
corresponding to the MPC's
DOF=3*(nodempc(1,ipompc(i))-1)+nodempc(2,ipompc(i))
ilmpc (i): original SPC number for ikmpc(i)
icascade: 0: MPC's did not change since the last iteration
1: MPC's changed since last iteration:
dependency check in cascade.c necessary
2: at least one nonlinear MPC had DOFs in common
with a linear MPC or another nonlinear MPC.
dependency check is necessary in each iteration
POINT LOADS
nforc: # of point loads
For point load i:
nodeforc(i): node in which force is applied
ndirforc(i): direction of force
xforc(i): magnitude of force at end of a step
xforcold(i): magnitude of force at start of a step
xforcact(i): actual magnitude
iamforc(i): amplitude number
ikforc(i): ordered array of the DOFs corresponding to the
point loads (DOF=3*(nodeboun(i)-1)+ndirboun(i))
ilforc(i): original SPC number for ikforc(i)
DISTRIBUTED LOADS
nload: # of facial distributed loads
For distributed load i:
nelemload(1,i): element to which distributed load is applied
nelemload(2,i): node for the environment temperature (only for
heat transfer analyses)
sideload(i): load label; indicated element side to which load
is applied
xload(1,i): magnitude of load at end of a step or, for heat
transfer analyses, the convection (*FILM) or the
radiation coefficient (*RADIATE)
xload(2,i): the environment temperature (only for heat
transfer analyses
xloadold(1..2,i):magnitude of load at start of a step
xloadact(1..2,i):actual magnitude of load
iamload(1,i): amplitude number for xload(1,i)
iamload(2,i): amplitude number for xload(2,i)
MASS FLOW RATE
nflow: # of mass flow rates
For mass flow rate i:
nodeflow(1,i): node from which the mass flows
nodeflow(2,i): node to which the mass flows
xflow(i): magnitude of the mass flow rate
xflowold(i): magnitude of the mass flow rate at start of a step
xflowact(i): actual magnitude of the mass flow rate
iamflow(i): amplitude number for xflow(i)
TEMPERATURE LOADS
t0(i): initial temperature in node i at the start of the
calculation
t1(i): temperature at the end of a step in node i
t1old(i): temperature at the start of a step in node i
t1act(i): actual temperature in node i
iamt1(i): amplitude number
CENTRIFUGAL LOADING
om: square of the rotational speed at the end of a step
omold: square of the rotational speed at the start of a step
omact: actual value of the square of the rotational speed
iamom: amplitude number
p1(i): coordinate i of a first point on the rotation axis
p2(i): coordinate i of a second point on the rotation axis
GRAVITY LOADING
bodyf(i): coordinate i of the body force at the end of a step
bodyfold(i): coordinate i of the body force at the start of a step
bodyfact(i): coordinate i of the actual body force
iambodyf: amplitude number
STRESS AND STRAIN FIELDS
eei(i,j,k): in general:
Lagrange strain component i in integration point j
of element k (linear strain in linear elastic
calculations)
for elements with *DEFORMATION PLASTICITY property:
Eulerian strain component i in integration point j
of element k (linear strain in linear elastic
calculations)
eeiini(i,j,k): Lagrange strain component i in integration point
of element k at the start of an increment
een(i,j): Lagrange strain component i in node j (mean over all
adjacent elements linear strain in linear elastic
calculations)
stx(i,j,k): Cauchy or PK2
stress component i in integration point j
of element k at the end of an iteration
(linear stress in linear elastic calculations)
sti(i,j,k): PK2 stress component i in integration point j
of element k at the start of an iteration
(linear stress in linear elastic calculations)
stiini(i,j,k): PK2 stress component i in integration point j
of element k at the start of an increment
stn(i,j): Cauchy stress component i in node j (mean over all
adjacent elements; "linear" stress in linear elastic
calculations)
THERMAL ANALYSIS
ithermal: 0: no temperatures involved in the calculation
1: stress analysis with given temperature field
2: thermal analysis (no displacements)
3: coupled thermal-mechanical analysis:
temperatures and displacements are solved for
simultaneously
v(0,j): temperature of node j at the end of
an iteration (for ithermal > 1)
vold(0,j): temperature of node j at the start
of an iteration (for ithermal > 1)
vini(0,j): temperature of node j at the start
of an increment (for ithermal > 1)
fn(0,j): actual temperature at node j (for ithermal > 1)
qfx(i,j,k): heat flux component i in integration point j
of element k at the end of an iteration
qfn(i,j): heat flux component i in node j (mean over all
adjacent elements)
DISPLACEMENTS AND SPATIAL/TIME DERIVATIVES
v(i,j): displacement of node j in direction i at the end of
an iteration
vold(i,j): displacement of node j in direction i at the start
of an iteration
vini(i,j): displacement of node j in direction i at the start
of an increment
ve(i,j): velocity of node j in direction i at the end of
an iteration
veold(i,j): velocity of node j in direction i at the start
of an iteration
veini(i,j): velocity of node j in direction i at the start
of an increment
accold(i,j): acceleration of node j in direction i at the start
of an iteration
accini(i,j): acceleration of node j in direction i at the start
of an increment
vkl(i,j): (i,j) component of the displacement gradient tensor
at the end of an iteration
xkl(i,j): (i,j) component of the deformation gradient tensor
at the end of an iteration
xikl(i,j): (i,j) component of the deformation gradient tensor
at the start of an increment
ckl(i,j): (i,j) component of the inverse of the deformation
gradient tensor
LINEAR EQUATION SYSTEM
ad(i): element i on diagonal of stiffness matrix
au(i): element i in upper triangle of stiffness matrix
adb(i): element i on diagonal of mass matrix, or, for
buckling, of the incremental stiffness matrix
(only nonzero elements are stored)
aub(i): element i in upper triangle of mass matrix, or, for
buckling, of the incremental stiffness matrix
(only nonzero elements are stored)
neq[0]: # of mechanical equations
neq[1]: sum of mechanical and thermal equations
nzl: number of the column such that all columns with
a higher column number do not contain any
(projected) nonzero off-diagonal terms (<= neq[1])
nzs: sum of projected nonzero off-diagonal terms
nactdof(i,j): actual degree of freedom (in the system of equations)
of DOF i of node j (0 if not active)
INTERNAL AND EXTERNAL FORCES
fext(i): external mechanical forces in DOF i (due to point
loads and distributed loads, including centrifugal and
gravity loads, but excluding temperature loading and
displacement loading)
fextini(i): external mechanical forces in DOF i (due to point
loads and distributed loads, including centrifugal and
gravity loads, but excluding temperature loading and
displacement loading) at the end of the last increment
finc(i): external mechanical forces in DOF i augmented by
contributions due to temperature loading and prescribed
displacements; used in linear calculations only
f(i): actual internal forces in DOF i due to:
actual displacements in the independent nodes;
prescribed displacements at the end of the increment
in the dependent nodes;
temperatures at the end of the increment in all nodes
fini(i): internal forces in DOF i at the end of the last
increment
b(i): right hand side of the equation system: difference
between fext and f in nonlinear calcultions; for linear
calculations, b=finc.
fn(i,j): actual force at node j in direction i
INCREMENT PARAMETERS
tinc: user given increment size (can be modified by the
program if the parameter DIRECT is not activated)
tper: user given step size
dtheta: normalized (by tper) increment size
theta: normalized (by tper) size of all previous increments (not
including the present increment)
reltime: theta+dtheta
dtime: real time increment size
time: real time size of all previous increments INCLUDING
the present increment
DIRECT INTEGRATION DYNAMICS
alpha,bet,gam: parameter in the alpha-method of Hilber, Hughes and
Taylor
iexpl: =0: implicit dynamics
=1: explicit dynamics
FREQUENCY CALCULATIONS
mei(0) number of requested eigenvalues
mei(1) number of Lanczos vectors
mei(2) maximum number of iterations
fei(0) tolerance (accuracy)
fei(1) lower value of requested frequency range
fei(2) upper value of requested frequency range