Introduction#
Description#
This chapter concerns the definition of finite element problem solutions
with the Zebulon solver, and is indicated under the main command
****calcul
. The FEM problem definition will be given by a primary
file with name problem.inp
, and also several auxiliary files, as
required. The prefix problem will be used in other input and output
file names, and is henceforth called the problem name. Generally, a
geometry specification file is required with the default name
problem.geof
, where the nodes, elements, and other geometrical
information is given. It should be noted that the geometry file does
not describe the type of element (formulation), which will be defined
in the .inp
file. Frequently a separate material file is given as
well, but this information may be added to the .inp
file just as
easily.
The FEM calculation mode of Z-set reads and interprets all the
non-commented instructions in the main .inp
file between the
commands ****calcul
and ****return
. Other problem modes may
therefore be, in the same file, demarcated by commands starting with
four asterisks.
In the file .inp
we may give references to the names of other files
for the material files, geometry files, or other data files such as
external temperature fields, initial values for the material variables,
etc. These files will be discussed throughout the command summary here,
and in the section on file formats (page ).
An overview of the functions to which the .inp
file serves is given
below:
Define the nature of the calculation: mechanical, thermal steady-state, thermal transient, etc.
To give complementary information of the geometry or formulation of the calculation. For example, if a 2D problem is in plane stress or plane strain conditions, in finite strain formulations, etc.
Give the boundary conditions. These include specification of the degrees of freedom and the associated forces (e.g. displacement and point forces), as well as calculated conditions such as pressure or centrifugal forces. With the exception of eigen frequency analysis, the boundary conditions must all be prescribed in the time scale of the calculation. In the case of a static mechanical calculation, the time may not have a physical significance, but is rather used as a fictitious measure of the loading processes. For example, in order to calculate a static structure in three loading cases, we can write the boundary condition evolutions as a function of dimensionless times \(1\), \(2\), and \(3\).
Assign groups of elements (element sets or elset) a material file specifying the material law and its coefficients. Each material file is also assigned an integration method if necessary. The separation of the finite element model and numerical integration allows one to work with a small base of material files for many calculations with different numerical methods.
Define the method(s) of global solution, and define the solution steps which must be made in a non-linear calculation. This data will include the algorithm used (Newton-Raphson, BFGS,…) the convergence criteria, and automatic time stepping methods. The time used here defines the time measure used for all other parts of the problem definition such as the boundary conditions.
To define tables as a function of time. Specification of numerous parameters in the calculation such as the boundary condition amplitudes will be defined by these tables.
Specify output for whole-model fields, and directly computed curves which are generated during the calculation. Multiple output “blocks” may be specified, with different frequencies of output, etc.
Linear solution#
Linear solutions typically involve a number of “loading cases” which are
normally superimposed to a structures response to many different
external solicitations. There is now a special key given in the output
section **linear_solution
(see output).
Time stepping#
The success of a nonlinear calculation depends on definition of appropriate loading sequences. The following figure summarizes the basic elements of loading sequences:
This example shows the waveform desired for a particular parameter in the calculation (such as a loading level). On the \(x\)-axis is the time scale of the calculation, broken into segments (long dashed lines) and increments (dotted lines). The \(y\)-axis represents the loading level described by a hypothetical table. The sequences are put into groups any of which can be repeated to give cyclic loadings.
The function of sequences is to demarcate segments of a particular solution strategy in the linear progression of time from \(t_1\) to \(t_2\) with \(t_2>t_1\). During the sequence the solution parameters such as convergence criteria, method of stiffness matrix resolution, etc are fixed.
Increments which divide the sequence are used to refine the incremental solution in a linear manner (normally through steady changes in loading). The increment in time during each loading increment is therefore \(\Delta t = \frac{t2~-~t1}{n}\) for \(n\) increments. For nonlinear solutions, within each increment convergence may require several trial solutions which will be called iterations.
An alternative to the linear division is to give progressively increasing or decreasing steps, or automatic calculation of the increments. This later allows stepping as a function of the problem variables for accuracy control, as well as in function to the convergence rate, etc for divergence control.
As the loading magnitudes are given in terms of time, and not directly in terms of the segment numbers, incompatibility in the load waveforms with the sequences is available. This is schematically shown in the above figure within the second load sequence. Here the load changes at the end of the third increment of the second sequence, which is one increment away from the sequence end. This type of loading is not advised, and should be cautiously verified in the case of complex loadings (e.g. cyclic or otherwise lengthy).
With these terms defined, we may progress with the command summary for the FEM problem loading. To clarify their meaning however, it may be very useful to follow several of the example problems given in the example section of the manual.
Specifying node sets#
Node sets are defined in the .geof
file, which is created by meshing
operations. In commands which require a nset, give the character
name for the node set desired, as appears in the .geof
file. An
additional shortcut exists for the case of specifying all the nodes in
the mesh. In this case, the keyword ALL_NODE
may be used for the
node set name.
Specifying element sets#
Element sets are defined in the .geof
file as well, defining lists
of element numbers which may be identified together. These sets will be
used to assign particular element formulations to regions in the mesh,
material behaviors, boundary conditions, etc. As for node sets, element
sets are identified by their full name given in the .geof
file. The
entirety of elements in a mesh may be identified with the shortcut
keyword ALL_ELEMENT
to be used in the place of a user-defined set
name.
Specifying magnitudes#
The magnitudes of commands (particularly boundary conditions) will be
controlled using either tabular or functional values. The definition of
tables and functions are treated as a major element of the user input
file definition (at the ***
level). The commands to assign tables is
***table
and functions ***function
, each of which will create an
object or objects with a name attribute. Giving names to the functions /
tables provides a means for access in other objects which will use them
to calculate magnitudes in time. The program structure is such that
tables or functions may be referenced before their definition, so the
***table
and ***function
commands may appear anywhere in the
valid three asterisk command level under ****calcul
.
The code now accepts pre-defined magnitude names. The most useful of
these is time
which provides a magnitude equal to the current
time.
Specifying command parameters#
Many of the commands (especially boundary conditions) take particular parameters to define the actual command applied. These may be character string names, integers, floating point values, vectors, etc. The program is rather strict about typing these data, in order to ensure that what is read is indeed what was intended. The following summary is thus provided to define the syntax data types:
character values: character values refer to alphanumeric character strings, which may include some symbol characters such as
- = +
, but not delimiting characters such as spaces or commas. The string is terminated at the next newline, space, tab, comma, or comment character% or #
. Character values may be up to 255 characters long, but will never be shortened.integer values: these are numeric fields separated by the standard delimiters (as in character strings), and must only be composed of the digits 0-9 with no decimal points. Decimal values found for integers will produce an error message.
real values: real values are used to specify decimal numbers. They may be positive, or negative, and must include a decimal point. Exponential notation is allowed. Some examples are
1.29 5.e+6.1 0.314159E-1
.vector values: vectors define either a point in 2D or 3D space, or the components of a vector direction in space. The size of the vector should be coherent with the spatial dimension of the problem. Vectors are always surrounded by parenthesis
( )
and take only real data for their components. example:( 1. .5 .5)
.