6 Input file, data part
Data items
Data items in the data part are used to control the calculation,
select required output, give unknowns initial values, etc..
Note that an end_data record is needed.
data_item index data_values
...
data_item index data_values
end_data
Consider the following example
element 0 -tria3 0 1 2
element 1 -tria3 1 2 3
node 0 0. 0.
node 1 1. 0.
node 2 0. 1.
node 3 1. 1.
...
end_data
Note that the data items element and node are indexed.
In fact most data items need to be indexed.
Indexing starts at 0 (all numbering in TOCHNOG starts at 0).
Indices need not strictly be sequential (e.g. only the indices 1,2 and 5
of a data item may be specified).
Ranges
Ranges are general input formats used for indices and data values.
Possible ranges are illustrated by the following examples
12
-all
-ra part1 part2 ...-ra
The -all range is not available for indices.
The -ra are delimiters of complex ranges.
Each complex range part, e.g. part1, consists by example out of
35
-from 5 -to 16
-from 5 -to 25 -step 2
The data values for a data item can be specified as a range if this is
allowed for in the description of the data item.
All words in the data part (or part of an index)
need to be preceeded with a 'tic' (-).
In the example the node_dof records 1 to 100 are initialized
node_dof -ra -from 1 -to 100 -ra 1. 0. 0.
Define blocks
You can define a word to represent a set of strings.
For each word defined, you need to specify a start_define
...end_define block.
Within the block, you first specify the word, and then you specify the set of strings.
Later in the data part, you can use the defined words as the replacement
of the set of strings.
Example:
start_define
velocity 1.34
end_define
start_define
left_edge geometry_line 1
end_define
...
left_edge 0. 0. 0. 10. 1.e-4
...
bounda_unknown 1 -left_edge -velx
bounda_time 1 0. 0. 100. velocity
...
The words plus, minus, multiply and divide as used in
arithmetic blocks are prohibited in define blocks.
Arithmetic blocks
You also can use the arithmetic expressions plus, minus,
multiply and divide.
We show some examples:
(make A equal to 4.1)
start_arithmetic
A 1.1 plus 3
end_arithmetic
...
(make B equal to 3.2)
start_arithmetic
B 3.2
end_arithmetic
...
(make C equal to 7.6)
start_arithmetic
C A plus B
end_arithmetic
...
(make D equal to 15.2)
start_arithmetic
D A plus B multiply 2.
end_arithmetic
Expressions will be evaluated from left to right.
Words from define blocks will not be recognized in arithmetic blocks.
Automatic counting: the counters
The words counter_a, counter_b, counter_c and counter_d
are reserved words in the data part.
If they are found, they will be substituted by their integer value.
Initially the value is 0 for both, and each time a counter is
encountered it will be increased by 1.
The example below shows a typical application.
start_define
left_edge geometry_line counter_a
end_define
start_define
right_edge geometry_line counter_a
end_define
...
left_edge 0. 0. 0. 10. 1.e-4
right_edge 2. 0. 2. 10. 1.e-4
...
bounda_unknown 1 -left_edge -velx
bounda_time 1 0.
bounda_unknown 2 -right_edge -velx
bounda_time 2 1.3
...
Notice that we automatically give the geometry lines a unique number in this way;
the unique number is not really of interest in the remainder of the input file,
so the application of a counter is convenient.
Finally, also the words counter_a_apply, counter_b_apply, counter_c_apply and
counter_d_apply are available.
They will be substituted by the current value of the counters, without that
the counters are incremented.
Control indices
All possible data items are defined in the following sections.
It only makes sense to specify some of the data items before the calculation;
the other data items are only meant to be printed after the calculation.
The example below specifies a 1D temperature calculation.
echo -no
number_of_space_dimensions 1
condif_temperature
end_initia
node 1 0
node 2 1
node 3 2
element 1 -bar2 1 2
element 2 -bar2 2 3
bounda_unknown 0 1 -temp
bounda_time 0 0.0 0. 1. 1. 100. 1.
bounda_unknown 1 3 -temp
bounda_time 1 0.0 0.0 100.0 0.
group_type 0 -condif
group_condif_density 0 1.0
group_condif_capacity 0 0.1
group_condif_conductivity 0 0.1
group_condif_flow 0 0.
control_timestep 0 0.1 10.0
control_print 0 -time_current -node_dof
control_print_database 1 -yes
control_timestep 2 0.2 10.0
control_print 2 -time_current -node_dof
end_data
Note how the indices of control items
like control_timestep and control_print
are used to control the sequence of events. First, (index=0) time steps
of size 0.1 are taken and for each time step results are printed. Then
(index=1) the database is printed which can serve as a point of restart.
Finally (index=2) time steps of size 0.2 are taken and for each
time step results are printed.
Numbering of values in records
The numering of values in records in illustrated by node_dof records.
Look at the following piece of input file
...
number_of_space_dimensions 2
materi_velocity
materi_stress
end_initia
...
node_dof 1 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 -1.0
node_dof 2 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 -1.0
...
end_data
Here node_dof records 1 and 2 are initialized.
The initial velocities are 0, and for the initial stresses we use
s_xx = -1, s_yy = -1 and s_zz = -1.
The total list of unknowns in the node_dof record is
-velx, -vely, -sigxx, -sigxy,
-sigxz, -sigyy, -sigyz and -sigzz.
We refer to -velx as the 0'th value in the node_dof record,
-vely as the 1'th value, etc.
So printing the history of the -sigxx stress of
node_dof record 1 is obtained by this:
...
control_timestep 10 ...
control_print_history 10 -node_dof 1 2
...
end_data
where the number 2 refers to the -sigxx stress.
See also the definition of the control_print_history record for this.
As an alternative, sometimes you can use names in stead of numbers, by example here:
...
control_timestep 10 ...
control_print_history 10 -node_dof 1 -sigxx
...
end_data
Types of unknowns
Some of the unknowns are principal unknowns:
these are materi_velocity, condif_temperature,
groundflow_pressure, wave_fscalar.
These are the unknowns which are solved by the equilibrium
equations (conservation laws).
The other unknowns, like materi_stress and so, follow
from these principal unknowns (strains follow from displacement
derivatives, stresses follow from strains by material laws, etc.).
Furthermore, for all the unknowns we have primary values,
which are the unknowns themselves,
and derived unknowns, which are the space and time derivatives
of the primary unknowns.
6.1 area_element_group index geometry_entity_item
geometry_entity_index element_group
At the start of the calculations, this record is used to generate
element_group records.
Each element, all of whose nodes are part of the geometry_item,
will get an element_group record with value element_group.
Please realise that the geometry entity can be a two-dimensional
area, a volume, etc.
This option comes handy whenever a part of the domain gets some
specific element data.
By example, this would be the case if different areas in the structure
have different material properties like stiffness, etc.
Beware: any directly specified element_group records
will be overwritten.
We show here two ways to get different element data in different regions:
Both ways give elements with young 1.2 from x=0 to x=1, and elements with
young 3.3 from x=1 to x=2.
First way:
..
node 1 0.
node 2 1.
node 3 2.
element 1 -bar2 1 2
element 2 -bar2 2 3
element_group 1 0
element_group 2 1
..
group_type 0 -materi
group_materi_elasti_young 0 1.2
group_type 1 -materi
group_materi_elasti_young 1 3.3
..
control_mesh_refine_globally 10 -h_refinement
..
Second way:
..
node 1 0.
node 2 1.
node 3 2.
element 1 -bar2 1 2
element 2 -bar2 2 3
..
group_type 0 -materi
group_materi_elasti_young 0 1.2
group_type 1 -materi
group_materi_elasti_young 1 3.3
..
geometry_line 1 0. 1. 1.e-4
geometry_line 2 1. 2. 1.e-4
area_element_group 1 -geometry_line 1 0
area_element_group 2 -geometry_line 2 1
..
See also area_element_group_sequence_elementgroup etc.
6.2 area_element_group_sequence_element index name
See area_element_group_sequence_elementgroup.
6.3 area_element_group_sequence_elementgroup index group_0 group_1 ...
This options works more or less the same as the area_element_group option.
Read that description first.
With this option however, you can specify what the element group numbers of an area (geometry) will
be in time.
This allows for an easy modelling of change of material models inside a geometry (that is, inside
the elements of that geometry).
This option works in combination with the area_element_group_sequence_element etc.
records (with the same index).
With area_element_group_sequence_geometry you select the area (geometry) for which the time
sequence of group numbers should be used.
With area_element_group_sequence_time and area_element_group_sequence_elementgroup you
select time points at which groups should become active; by example, group_0 becomes active at time_0 etc.
With area_element_group_sequence_element you select the name of the
elements for which the sequence of time versus group will be used; if
this area_element_group_sequence_element is not specified then all elements
in the area (geometry) will be used.
Remark 1: If you want the stresses, strains, etc. to be reset to 0. when the
element group changes, then use a control_unknown_reset_geometry record for that.
Remark 2: It is more convenient and clear to use the start_define end_define option
to define the geometries.
Example:
area_element_group_sequence_geometry 0 -geometry_brick 1
area_element_group_sequence_element 0 -hex8
area_element_group_sequence_time 0 0. 2. 3.
area_element_group_sequence_elementgroup 0 1 5 4
group_type 1 ...
...
group_type 5 ...
...
group_type 4 ...
...
control_unknown_reset_geometry 10 -geometry_brick 1
...
In the selected geometry element group 1 will be used starting from time 0 for elements -hex8.
Starting from time 2 element group 5 will be used, etc.
Same example, now with define's however:
start_define
soil_empty_wall geometry_brick 1
end_define
...
area_element_group_sequence_geometry 0 -soil_empty_wall
area_element_group_sequence_element 0 -hex8
area_element_group_sequence_time 0 0. 2. 3.
area_element_group_sequence_elementgroup 0 1 5 4
group_type 1 ...
...
group_type 5 ...
...
group_type 4 ...
...
control_unknown_reset_geometry 10 -soil_empty_wall
...
6.4 area_element_group_sequence_geometry index geometry_entity_item
geometry_entity_index
See area_element_group_sequence_elementgroup.
6.5 area_element_group_sequence_time index time_0 time_1 ...
See area_element_group_sequence_elementgroup.
6.6 area_node_dataitem index geometry_entity_item
geometry_entity_index data_item_name
This record is used to generate data_item_name records
on all nodes located on the specified geometrical entity.
The values for the data_item_name should be specified in the
area_node_dataitem_double record for real precision values,
or in the area_node_dataitem_integer record for integer values (or words).
This allows you to set records like node_boundary or so for nodes located in geometries,
without finding out yourself which nodes are located on the geometry.
6.7 area_node_dataitem_double index value_0 value_1 ...
See area_node_dataitem.
6.8 area_node_dataitem_integer index value_0 value_1 ...
See area_node_dataitem.
6.9 bounda_force index node_range unknown_0 unknown_1
...
States which ones from the list of dof's
in which nodes get prescribed nodal forces.
The item node_range represents a range of node numbers.
In stead of a node range also, by example,
-geometry_line 1 can be used, indicating that the nodes on line 1
get the prescribed nodal forces.
The items unknown_0 etc. can be one of the items listed at dof_label.
However, neither -dis and -scal can be used.
For a specific index, only one of
bounda_force and bounda_unknown can be specified;
thus, either Neumann conditions or Dirichlet conditions
can be applied to a particular node, but nor both.
Attention: with this option you get the same nodal force
on all the specified nodes.
If you want to apply a distributed force on a edge, however, you should use
force_element_edge.
That option gives forces consistent with the displacement
field, so not necessarily the same for all nodes.
By example the nodes on the side of linear elements on a edge
get only half the force.
See also: bounda_time, bounda_sine and force_element_edge.
6.10 bounda_sine index start_time
freq_0 amp_0 freq_1 amp_1 ...
The bounda_unknown or bounda_force record with the same
index is imposed with the sum of the sine functions;
the first sine function has frequency freq_0 and amplitude amp_0,
the second sine function has frequency freq_1 and amplitude amp_1,
etc.. The sine functions starts at time 0.
More general behavior in time can be imposed by using bounda_time
records. For a specific index only one of bounda_time and
bounda_sine can be specified.
As a typical application the response due to the excitation
with a frequency spectrum can be analyzed.
Just print the relevant response by control_print_history and
extract the frequency spectrum of that response signal.
The sine loads will be only imposed after start_time.
6.11 bounda_time index time load time load ...
This record specifies a multi linear time-load diagram for the
bounda_unknown or bounda_force record with the same index.
Between to time points in the diagram, the load is interpolated linearly
(ramp function between the two points).
At all times that an unknown is not prescribed in such way, it is free and
determined with the governing differential equations.
For a specific index only one of bounda_time,
bounda_time_file, bounda_sine
and bounda_time_user can be specified.
As a special option, you can specify only one value in the bounda_time
record if the load is constant over time (so not time-load sets but directly
the constant load value).
As a further special option, you can specify no bounda_time
and no bounda_sine at all; then a 0 value is assumed.
6.12 bounda_time_file index switch
The same multilinear diagram as in the bounda_time record
can be specified, now however it is given in the file index.bounda.
This allows for a larger number of time load sets
than possible with the bounda_time record, since the
value of that record is limited in length by the maximum length
that Tochnog uses to store it.
You need to set switch to -yes.
By example if index is 3 then the sets need to be specified
in the file 3.bounda.
6.13 bounda_time_user index switch
If switch is set to -yes a user supplied routine
for the time-load diagram will be used.
See also the file user.cc in the distribution.
6.14 bounda_unknown index node_range unknown_0
unknown_1 ...
States which unknowns in which nodes get prescribed values by adjustment of
the node_dof records. The item node_range
represents a range of node numbers. In stead of a node range also, by
example, -geometry_line 1 can be used, indicating that the
nodes on line 1 get the prescribed boundary values.
The items unknown_0 etc. are one of the
primary unknowns listed at dof_label.
For a specific index, only one of bounda_force and
bounda_unknown can be specified (thus either Neumann conditions or
Dirichlet conditions).
Example for discrete node forces in y-direction on the nodes on a line:
bounda_unknown 0 -geometry_line 1 -vely
bounda_time 0 0. 0. 1. 1. 100. 1.
Normally you only should specify boundary conditions on principal unknowns
(like velocity, temperature, etc.) and not on strain, stresses, etc.!
Specially for velocity (displacement) unknowns, you can prescibe a rotation
around either the x-axis, y-axis or z-axis.
In 1D you cannot use this record.
In 2D you can only specify a rotation around the z-axis.
In 3D you can specify each of the three axis.
Example of an x-axis rotation of node 12 with angular velocity
of 0.33 [degrees per unit time]:
bounda_unknown 0 12 -rotation_x_axis
bounda_time 0 0.33
For the rotation 0.33 the rotation vector points in the positive x-axis direction.
See also: bounda_time, bounda_sine,
force_element_edge and force_element_volume.
6.15 change_dataitem index data_item_name
data_item_index data_item_number operat
With this record you can specify a data item which should be changed over time.
The time table should be given in the change_dataitem_time table
as time-value sets; at least two sets should be specified.
The operat determines how the time-value sets are used.
If operat is set to -use, then the value of the time-value sets
is directly used.
If operat is set to -add, then the value of the time-value sets
is interpreted as a rate of change, so that the value is multiplied with
the time step and then added to the old value.
As a typical example you can use this to prescribe the displacement
of a contact geometry over time.
Below the y-coordinates of a geometry line which is used in the contact
algorithm is changed over time:
contact_geometry 0 -geometry_line 1
...
geometry_line 1 0. 10. 2. 10.
...
change_dataitem 0 -geometry_line 1 1 -use
change_dataitem_time 0 0. 10. 100. 0.
change_dataitem 1 -geometry_line 1 3 -use
change_dataitem_time 1 0. 10. 100. 0.
...
6.16 change_dataitem_time index time value ...
See change_dataitem and change_dataitem_time_user.
6.17 change_dataitem_discrete index switch
If switch is set to -yes then the changes applied by the change_dataitem
and change_dataitem_time records (with the same index),
will be applied at the discrete time points given in change_dataitem_time.
Between those time points, no interpolation is used.
More precise, the change of the data item will be applied directly after
the time point has passed.
If you don't specify this change_dataitem_discrete record then
interpolation is used.
6.18 change_dataitem_time_user index switch
If switch is set to -yes a user supplied
subroutine is used in stead of the change_dataitem_time table.
See also the user.cc routine included in the distribution.
6.19 check_combination index switch
Tochnog will check for data records which you specify, if other records needed
are also specified.
If something is wrong an error is generated.
If you set switch to -no this checking is suppressed.
6.20 condif_convection index ac Tr
Convection coefficient and convection environmental temperature.
Also the record condif_convection_geometry should be specified.
6.21 condif_convection_geometry index node_0 node_1 node_2 ...
Selects the area for which the condif_convection record with
the same index should be applied.
This is only available for linear elements.
file=ps/convect.ps,width=4cm,angle=-90
In 1D, the convective heat flux is 0.
In 2D this option is available for all elements.
In 3D this option is only available for all linear elements.
In stead of a number of nodes also,
by example, -geometry_line 1 can be used in 2D, indicating that
the nodes on line 1 start to convect.
See also: condif_convection.
6.22 condif_radiation index ar Tr
Radiation coefficient and radiation environmental temperature.
Also the record condif_radiation_geometry should be specified.
6.23 condif_radiation_geometry index node_0 node_1 node_2 ...
Selects the area for which the condif_radiation record with
the same index should be applied.
This is only available for linear elements.
file=ps/radiate.ps,width=4cm,angle=-90
In 1D, the radiation heat flux is 0.
In 2D this option is available for all elements.
In 3D this option is only available for linear elements.
the triangle between the 3 nodes will radiate heat.
In stead of a number of nodes also, by example, -geometry_line 1 can
be used in 2D, indicating that the nodes on line 1 radiate heat.
See also: condif_radiation.
6.24 contact_friction friction
See contact_geometry.
6.25 contact_geometry index geometry_entity_item
geometry_entity_index
This record specifies a contact geometry.
Contacting nodes are forced to stay at the outward normal side
of the contact geometry.
The allowed geometries and their material outward normals are listed below
-
If a geometry_point is used in 1D, the normal is in
positive x-direction.
- If a geometry_line is used in 2D, the normal is the outer
product of 3-direction and the line direction (from point 0 to point 1).
- If a geometry_circle is used in 2D, the normal is the outward
direction at the circle.
- If a geometry_ellipse is used in 2D, the normal is the outward
direction at the ellipse.
- If a geometry_sphere is used in 3D, the normal is the outward
direction at the sphere.
- If a geometry_polynomial is used in 2D, the normal is in positive
y-direction.
- If a geometry_polynomial is used in 3D, the normal is in positive
z-direction.
- If a geometry_triangle is used in 3D, the normal is in direction
of the outer product v01 * v02 where v01 is the vector from node
0 to node 1 and v02 is the vector from node 0 to node 2.
- If a geometry_quadrilateral is used in 3D, the normal is in direction
of the outer product v01 * v02 where v1 is the vector from node
0 to node 1 and v02 is the vector from node 0 to node 2.
Only non-distorted quadrilaterals should be used.
This normal can be switched sign by setting
the contact_geometry_switch with the same index to -yes.
In stead of geometries, also contact
with all elements will be checked.
Only contact with the elements -bar2, -tria3,
-quad4, -tet4 and -hex8 can be detected.
The outer boundary of the elements should be specified
by node_boundary records.
Often it is sufficient to apply node_boundary records
on the body with the coarsest mesh; if the meshes
of the contacting bodies are of the same size however,
you should specify node_boundary records for both
contacting bodies.
The time steps should be such small, that contacter nodes
penetrate the other elements only in small steps.
If a contact_geometry is used, then
the contacter node should also be within the tolerance of
the geometrical entity to be noticed!
If contact is detected, normal contact forces of
size contact_penalty_velocity * penetration are
generated between the contacting node and the
other element. Moreover, also a frictional force of size
friction * normal force is generated
(see contact_friction).
You need more iterations, see control_timestep_iterations,
then normal; say 5 or more.
As an alternative to the contact algorithm, see slide_geometry.
6.26 contact_geometry_switch index switch
See contact_geometry.
6.27 contact_heatgeneration factor
This factor specifies how much of the frictional energy
is transformed into heat (this only makes sense if
friction in contact_friction is not zero,
and if condif_temperature is initialized).
The factor should be between 0 and 1.
See also contact_geometry.
6.28 contact_penalty_pressure pressure_penalty
The pressure_penalty should be given some high value
if the pressure is freely linked at the surfaces of contacter and target.
See also contact_geometry.
6.29 contact_penalty_temperature temperature_penalty
The temperature_penalty should be given some high value if
free heat exchange between contacter and target is possible.
See also contact_geometry.
6.30 contact_penalty_velocity velocity_penalty
The velocity_penalty essentially puts a spring between
the contacter and the target if penetration occurs.
Iterations (see control_timestep_iterations) are needed;
more iterations are needed if the penalty factor is higher.
See also contact_geometry.
See also contact_geometry.
6.31 control_data_delete index data_item_name index_range
Delete one or more data items. The index_range is a number (e.g. 3)
or a range (-ra ... -ra, or -all).
If index data_item_name is a nodal item
(by example node or node_dof)
then index_range can also be a
geometrical entity (by example -geometry_line 1 or so),
and the item will be deleted for nodes located on the geometrical entity.
In the example below element 1-10
and nodes 1-100 are deleted after some time in the calculation;
this simulates dismantling a part of a structure somewhere in its lifetime.
First, time steps with the total structure are taken;
then a part of the structure is dismantled;
then time steps with the remaining part of the structure are taken.
...
control_timestep 10 ...
...
control_data_delete 20 -element -ra -from 1 -to 10 -ra
control_data_delete 21 -node -ra -from 1 -to 100 -ra
...
control_timestep 30 ...
...
If an element or node is deleted, then also the corresponding records
will be deleted.
See also control_data_put.
6.32 control_data_put index data_item_name index_range
Puts one or more data items. The values to be put should be specified
in a control_data_put_double record for real data or in a
control_data_put_integer record otherwise.
The index_range is a number (e.g. 3) or a range (-ra ... -ra,
or -all).
The -all option is only available for nodal data items
(like node or node_dof).
If data_item_name is a nodal item
then index_range can also be a
geometrical entity (by example -geometry_line 1 or so),
and the item will be put for nodes located on the geometrical entity.
As a special option for putting nodal items, you can use
the control_data_put_double_node record
in stead of the control_data_put_double record.
In the control_data_put_double_node you can specifying a linear change of
the nodal item data over the domain.
You accomplish this by specifying in the control_data_put_double_node record
the nodal item data at (x=0, y=0, z=0),
then specify the gradients of the data in x-direction,
then specify the gradients of the data in y-direction,
and then specify the gradients of the data in z-direction.
If 1D you only need to specify everything in x-direction, etc.
Typcally this can be used for generation a linear initial stress distribution in the domain
(geotechnics), or so.
If the data item already exists it is overwritten; else a new
record will be generated.
See also control_data_delete.
6.33 control_data_put_double index ...
See control_data_put.
6.34 control_data_put_double_node index ...
See control_data_put.
6.35 control_data_put_integer index ...
See control_data_put.
6.36 control_distribute index distribution_type data_item_name data_item_number ...
Add a random number, based on a -uniform or -normal distribution,
to the data_item_name records.
This is done for the data_item_number value in those records (0 for the first value,
1 for the second value, etc.).
The distribution_type should be set to -uniform or -normal.
Use the control_distribute_values record to set the range of the distribution (for -uniform)
or the variance of the distribution (for -normal).
If you specify a group item for data_item_name, by example
group_materi_elasti_young or so, then not the group item record self will be changed,
but the item will be changed for the elements which use this record;
in this way you can give a random distribution to element data like stiffness, plastic properties, etc.
Several sets of distribution_type data_item_name data_item_number can be specified.
For each set, you need to specify a corresponding value in control_distribute_values.
When a control_distribute record is encountered, all previous control_distribute records
are disregarded.
In the first example, an uniform distribution with range 1.2 is added to the nodal temperatures:
...
materi_velocity
condif_temperature
...
control_distribute 10 -uniform -node_dof -temp
control_distribute_values 10 1.2
...
In the second example, an normal distribution with variance 1.e-3 is added to the y coordinate of the nodes:
...
control_distribute 10 -normal -node 1
control_distribute_values 10 1.e-3
...
In the third example, an normal distribution with variance 1. is added to the young's modulus:
...
control_distribute 10 -normal -group_materi_elasti_young 0
control_distribute_values 10 1.
...
6.37 control_distribute_values index distribution_value distribution_value
See control_distribute.
6.38 control_eigen index type_of_eigen_analysis number_of_modes
With this option you can ask for eigenvalues (and eigenvectors).
The eigenvectors are determined for the principal
unknowns in the system (like velocity, temperature, etc.).
This option is only available after the matrices have been set up with control_options_solver.
And it is assumed that the matrices used in the eigenmodes determination
are symmetric.
With type_of_eigen_analysis you can determine which eigen problem will be solved.
If type_of_eigen_analysis is set to -matrix,
the eigen modes of the matrix will be solved.
Other options for type_of_eigen_analysis are presently not available.
(To be more clear: presently you cannot solve generalized eigenvalue problems
like vibration in mechanics, acoustics, etc.)
The eigenvalues are put in the control_eigen_values record.
The eigenvectors are put in the node_eigen records.
Warning: the eigensolvers we use are not tuned for finite element analysis.
So the eigensolvers may be very slow, and large amounts of memory may be consumed.
The eigenvalues and eigenvectors are deleted whenever a new timestep is
performed with control_timesteps. This is done since in general after a
new timestep the matrices will have changed, and so the eigenvalues are not
valid anymore.
See also control_eigen_scale.
6.39 control_eigen_scale index largest_component
With this option you can scale the eigenvectors such that
the largest component becomes largest_component.
See also control_eigen.
6.40 control_eigen_values index eigen_value_0
eigen_value_1 ...
See also control_eigen.
6.41 control_mesh_adjust_geometry index
geometry_entity_item_0
geometry_entity_index_0
geometry_entity_item_1
geometry_entity_index_1
The nodes of the geometry entity 0 are replaced such that they neatly follow
the boundary of geometry 1.
In this way, it is easy to make a mesh with elements
precisely in specific regions, if this is required to give
separate element_group data (e.g. materials)
to the geometry and it is too difficult to make the mesh at
once ok for this.
Nodes moved in this process automatically get a node_boundary record.
The created mesh may be quite distorted.
Consider using control_mesh_remesh.
6.42 control_mesh_delete_geometry
index geometry_entity_item geometry_entity_index
All elements which are part of the geometry item are deleted.
In this way, it is easy to make a mesh with holes, tunneling
systems in ground, etc.
Remaining nodes in the geometry, are moved onto the edge of the geometry
if the corresponding control_mesh_delete_geometry_movenodes record
with the same index is set to -yes; (otherwise, the remaining nodes
are left inside the geometry).
For these remaining nodes, automatically a node_boundary
record will be generated.
For a geometry_point, elements inside the tolerance distance of the
point will be deleted.
For a geometry_circle, elements in the total inner area of the
circle radius plus its tolerance will be deleted.
Likewise for other geometries.
If you combine this record with a control_timestep record,
then the element will be slowly deleted, starting from a complete
element at the start of the timestep up to no element
at the end of the timestep.
This is accomplished by reducing the nodal forces of the elements
slowly to zero; at the end of the timestep, the element is deleted completely.
This might be usefull for a better convergence behaviour of the iterative process.
See also control_mesh_delete_geometry_movenodes,
control_mesh_delete_geometry_element
and control_mesh_delete_geometry_elementgroup.
6.43 control_mesh_delete_geometry_element
index element_name_0 element_name_0 ...
Only elements with names element_name_0 etc. will be deleted
if the control_mesh_delete_geometry (with the same index) is used.
By example, element_name_0 is -quad4, -beam, etc.
If this record is not specified all elements in the geometry will be deleted.
6.44 control_mesh_delete_geometry_elementgroup
index element_group_0 element_group_1 ...
Only elements from group element_group_0 etc. will be deleted
if the control_mesh_delete_geometry (with the same index) is used.
6.45 control_mesh_delete_geometry_factor
index factor_0 factor_1 ...
The elements deleted by control_mesh_delete_geometry (with the same index),
will be deleted by a factor factor_0 at the start of the timesteps
up to a factor factor_1 at the end of the timesteps.
If the control_mesh_delete_geometry is not used in cobination with timesteps,
then directly factor_1 will be applied.
If this record is not specified then factor_0 = 0 and factor_1 = 1.
6.46 control_mesh_delete_geometry_movenodes
index switch
Determines if remaining nodes inside a deleted geometry,
are moved onto the edge of the geometry (-yes) or not (-no).
Moving nodes makes that the element mesh exactly fits the deleted geometry,
but may also lead to heavily distorted elements.
Default this record is -yes.
See also control_mesh_delete_geometry.
6.47 control_mesh_delete_small index eps
At the end of a timestep, an element will be deleted when its volume has become
smaller than eps.
6.48 control_mesh_generate_beam
index element_group geometry_entity_item geometry_entity_index
The same as control_mesh_generate_truss, now for beams however.
6.49 control_mesh_generate_contactspring index element_group
geometry_entity_item geometry_entity_index
Generate -contactspring springs for nodes which have the same position in space.
This can be used to connect these nodes with spring elements,
so to model a contact area.
Only nodes located on the specified geometry entity will be used.
The generated springs will get an element_group record with value element_group.
So in that element group you can put the properties of the contact springs.
With the control_mesh_generate_contactspring_element record you can set
between which elements the contactsprings should be generated.
By example use -quad4 and -trussbeam if you want to generate
contactsprings between those elements.
6.50 control_mesh_generate_contactspring_element index element_0
element_1
See control_mesh_generate_contactspring.
6.51 control_mesh_generate_spring1 index
element_group geometry_entity_item geometry_entity_index
Generate -spring1 springs for nodes.
Only nodes located on the specified geometry entity will be used.
The generated springs will get an element_group record
with value element_group.
So in that element group you can put the properties
of the springs (see group_spring_stiffness etc.).
6.52 control_mesh_generate_spring2 index element_group
geometry_entity_item geometry_entity_index
Generate -spring2 springs for nodes which have the same position in space.
This can be used to connect these nodes with spring elements.
Only nodes located on the specified geometry entity will be used.
The generated springs will get an element_group record with value element_group.
So in that element group you can put the properties
of the springs (see group_spring_stiffness etc.).
Typically you can use this option to connect meshes which were generated
with different control_mesh_macro records or so.
6.53 control_mesh_generate_truss index element_group
geometry_entity_item geometry_entity_index
Generate trusses for nodes which are neigbours in space (that is, for nodes
which are connected by an isoparametric finite element).
Only nodes located on the specified geometry entity will be used.
The generated trusses will get an element_group record with value element_group.
So in that element group you can put the properties of the
trusses (see group_truss_young etc.).
Typically you can use this option to put easy trusses somewhere in a mesh
with isoparametric elements.
6.54 control_mesh_generate_trussbeam
index element_group geometry_entity_item geometry_entity_index
The same as control_mesh_generate_truss, now for trussbeams however.
6.55 control_mesh_generate_truss_beam_loose index switch
This record works together with the control_mesh_generate_truss,
control_mesh_generate_beam and control_mesh_generate_trussbeam records.
If switch is set to -yes, the truss or beam of trussbeam will not be connected to
the existing nodes, but new nodes will be generated for the generated element.
Afterwards you can typically connect the truss or beam of trussbeam to the existing mesh with
constactsprings, so that the end result is that you can model frictional slip
between isoparametric elements and structural elements.
See also control_mehs_generate_contactspring.
6.56 control_mesh_generate_truss_beam_macro index macro_0 macro_1 ...
This record works together with the control_mesh_generate_truss,
control_mesh_generate_beam and control_mesh_generate_trussbeam records.
With macro_0 etc. you can specify the indices of control_mesh_macro_* records.
Then the trusses (or beams or trussbeams) will only be generated for nodes
coming from the mesh generated by the macro records with
the specified indices.
This is handy in case you generate two neighbouring meshes with macro's,
and want to generate the elements (trusses or beams or trussbeams) in between these two meshes.
Normally, both the meshes would get the extra truss (or ..) in case you
use a geometry_line or so to specify that the new elements should be generated
between the two meshes (this is so, since the nodes of both meshes are located on the geometry_line).
With the present control_mesh_generate_truss_beam_macro record however you can specify
that the new elements should only be generated by looking at the nodes of some of the meshes,
and so no double new elements will be generated in between the two meshes.
6.57 control_mesh_macro index macro_item
element_group
n ...
With this record and the control_mesh_macro_parameters
record you define a macro region.
The macro region will automatically be divided into finite elements.
The type of macro region is defined by macro_item.
You can set macro_item to a -sphere (3D),
-cylinder_hollow (3D), -brick (3D),
-rectangle (2D), -circle (2D), -circle_hollow (2D)
and -bar (1D).
The elements to be generated will get element_group element_group.
With n ... you define how much nodes and elements will be generated.
For a -sphere, first 8 elements are generated; you need to specify
the number of refinements.
For a -cylinder_hollow, you need to specify the number of
nodes in the length direction, the number of nodes
over the wall thickness, the number of nodes in circ. direction.
For a -brick, you need to specify the number of nodes in x-direction,
the number of nodes in y-direction and the number of nodes in
z-direction.
For a -circle, you need to specify the number of nodes
in a cross-section direction.
For a -circle_hollow, you need to specify the number of nodes
over the wall thickness, the number of nodes in circ. direction.
For a -rectangle, you need to specify the number of
nodes in width direction and the number of nodes in thickness
direction.
For a -bar, you need to specify the number of nodes.
In the following example a sphere is generated, after which
the nodes get an initial velocity:
...
number_of_space_dimension 2
...
end_initia
...
control_mesh_macro 20 -sphere ...
control_mesh_macro_parameters 20 ...
...
control_data_put 30 -node_dof -all
control_data_put_double 30 0. 1. ...
...
6.58 control_mesh_macro_element index element_type
With this options you can set the element type which will be generated
with control_mesh_macro (with the same index).
This option is only available in 2d and 3d.
For element you can use -tria3, -tria6, -quad4 and -quad9 in 2d.
For element you can use -tet4, -tet10, -hex8 and -hex27 in 2d.
If this record is not specified then -bar2 (1d), -quad4 (2d) or
-hex8 (3d) will be generated.
6.59 control_mesh_macro_parameters index
x y ...
With this record you can specify the dimensions of the
control_mesh_macro region.
For a -sphere, you need to specify the x, y, z coordinates of
the middle of the sphere and the radius of the sphere.
For a -cylinder_hollow, you need to specify
the x, y, z coordinates at the start of the cylinder,
the x, y, z coordinates at the end of the cylinder,
the middle radius, the wall thickness,
the start angle and the end angle in degrees (which allows for an open section).
For a -brick, you need to specify the x, y, z coordinates at the middle,
the length in x-direction, the length in y-direction, and the length in z-direction.
For a -circle, you need to specify the x, y coordinates of
the middle and also the radius.
For a -circle_hollow, you need to specify the same as for the
circle and additionally the wall thickness, the start angle
and the end angle in degrees (which allows for an open section).
For a -rectangle, you need to specify the x, y coordinates of
the middle, the width and the height respectively.
For a -bar, you need to specify the x coordinate of the middle
and the length respectively.
6.60 control_mesh_macro_set_node_boundary index switch
Nodes on the boundary edge of the macro region automatically
get a node_boundary record if the switch
is set to -yes.
If switch is set to -no then node_boundary records are not set.
Default switch is set to -yes.
6.61 control_mesh_merge index switch
If switch is set to -yes, then nodes with the same coordinates
are merged into one node.
6.62 control_mesh_merge_epscoord index epsilon
Distance below which nodes will be merged.
Default some small value.
6.63 control_mesh_merge_macro index macro_0 macro_1 ...
This record works together with the control_mesh_merge record.
With macro_0 etc. you can specify the indices of control_mesh_macro_* records.
Then the merging will only be done for nodes coming from the mesh generated by the macro records with
the specified indices.
6.64 control_mesh_merge_not
index geometry_entity_item geometry_entity_index
The mesh merging from control_mesh_merge, with the same index, will
not be use for nodes in the geometry specified by
geometry_entity_item geometry_entity_index.
6.65 control_mesh_new_mesh index delta
If switch is set to -yes then a new mesh is build.
This is useful whenever the old mesh is very distorted
as a result of a large deformation process.
The parameter delta determines the typical element size,
with which the new mesh should be build.
This option tends to make elements at the edge of the domain small.
See also control_mesh_new_mesh_element.
6.66 control_mesh_new_mesh_element index element_type
With this record you can determine the element type which will
be created by control_mesh_new_mesh.
Allowed types are -bar2, -tria3, -quad4,
-tet4 and -hex8.
If this record is not specified one of the simplex elements
(-bar2, -tria3, -tet4; depending on the
number of dimensions) will be generated.
6.67 control_mesh_refine_globally index refinement_type
This record activates global mesh refinement or global mesh coarsening.
This is not available for -tria3 and -tet4 elements.
Either refinement_method is -h_refinement
(more of the same elements) or refinement_method is
-p_refinement (higher order elements) or refine_method is
-p_coarsen (lower order elements).
As a special option for the -h_refinement method, the format
refine_globally index -h_refinement
switch_x switch_h switch_z
can be used.
By example in 1D, only refine_globally
index -h_refinement switch_x should be specified.
By example in the -hex8 element, x is the isoparametric coordinate
running from the first node to the second node, h runs from the first node
the third node and z runs from the first node to the fifth node.
A isoparametric direction will be refined if the corresponding switch
is set to -yes. This option allows for refinement in specific directions.
It should be used with care however, and only gives proper results if
the x,h and z directions of the elements match.
The control_mesh_refine_globally will automatically merge nodes
which have the same position in space.
Rules for old and new:
-
A new generated element inherits its data items
from the old element it is generated from.
- If a new generated node is placed on an old element edge it inherits
those data items of the old nodes on that old edge that
have a property in common; then arbitrarily the data
item of one of the old nodes is taken.
- If a new generated node is placed inside an old element
it inherits those data items of the old nodes of that old element that
have a property in common; then arbitrarily the data
item of one of the old nodes is taken.
- For all new nodes the node_dof records are interpolated from
the old element nodes node_dof records by using the
old element interpolation functions.
See also control_mesh_refine_globally_geometry.
6.68 control_mesh_refine_globally_geometry index
geometry_entity_item
geometry_entity_index
This record can be used together with the control_mesh_refine_globally
record with the same index.
If all nodes of an element edge is part of the geometrical entity, the
new generated nodes are also placed on that geometrical entity.
This typically is used to follow curved edges of the domain.
The control_mesh_refine_locally will automatically merge nodes
which have the same position in space.
6.69 control_mesh_refine_locally index percentage
An elements will be refined depending on the size
of a solution variable.
Typically the solution variableresidue is used,
but others can be chosen via control_mesh_refine_locally_unknown.
The percentage of elements which will be refined is specified
by percentage.
Typically percentage is 10 or so.
This local mesh refinement is only available for -bar2, -bar3,
-tria3, -tria6, -tet4 and -tet10 elements.
See the rules for old and new at control_mesh_refine_globally.
See also control_mesh_refine_locally_geometry.
6.70 control_mesh_refine_locally_geometry index
geometry_entity_item
geometry_entity_index
This record can be used together with the control_mesh_refine_locally
record with the same index.
If all nodes of an element edge is part of the geometrical entity, the
new generated nodes are also placed on that geometrical entity.
This typically is used to follow curved edges of the domain.
6.71 control_mesh_refine_locally_not index geometry_entity_0
geometry_entity_index_0
The refinement as specified in the control_mesh_refine_locally
record with the same index, will not be applied on the geometry specified by
geometry_entity_0 geometry_entity_index_0.
6.72 control_mesh_refine_locally_only index geometry_entity_0
geometry_entity_index_0
The refinement as specified in the control_mesh_refine_locally
record with the same index, will only be applied on the geometry specified by
geometry_entity_0 geometry_entity_index_0.
6.73 control_mesh_refine_locally_unknown index unknown
With unknown you can set which unknown will
be used for deciding if an element should be refined.
The size of the unknown field will be used.
Possibilities for unknown are:
-materi_damage,
-materi_displacement,
-materi_plasti_kappa,
-materi_strain_elasti,
-materi_strain_plasti,
-materi_strain_total,
-materi_stress,
-materi_velocity,
-materi_void_fraction and
-residue.
As a special option you can set unknown to -nothing; then
an element is refined always.
For finding localization zones (e.g. shear bands) choosing -materi_strain_plasti
or -materi_damage seems to be most robust.
6.74 control_mesh_remesh index switch
This record causes remeshing if switch is set to -yes.
Nodes are replaced either such that the mesh becomes
more regular (geometric remeshing) or such that
the mesh becomes more dense in areas of residues (residue remeshing).
By example, the geometric remeshing can be used
after local mesh refinement (control_mesh_refine_locally).
And by example, the residue remeshing can be used so that
nodes follow wave propagation phenomena.
The remeshing can only be applied in combination with time steps, so
a control_timestep record with the same index should be present.
See also control_mesh_remesh_factor and node_boundary.
6.75 control_mesh_remesh_factor index geometry_factor residue_factor
With this record you can set the relative usage of geometry remeshing
and residue remeshing.
As the typical remeshing step (i.e. the distance
that a node is relocated) is about 100 times as large in geometry
remeshing than in residue remeshing, you should use, say, geometry_factor
is 0.01 and residue_factor 1.0 for both effects to be
of about equal size. Some examples are given below.
(only geometric remeshing)
control_mesh_remesh index ...
(only geometric remeshing)
control_mesh_remesh index ...
control_mesh_remesh_factor index 1. 0.
(only residue remeshing)
...
residue
end_initia
...
control_mesh_remesh index ...
control_mesh_remesh_factor index 0. 1.
(both geometric remeshing and residue remeshing)
...
residue
end_initia
...
control_mesh_remesh index ...
control_mesh_remesh_factor index 0.05 0.5
The residue_factor can only be larger that 0 if residue
is specified in the initialization part.
If this control_mesh_remesh_factor record is not specified,
then geometry_factor is 1 and residue_factor is 0.
Practical tips:
-
Lowering the factors will stabilize the remeshing algorithm (this comes
handy when elements tend to collapse, etc.).
- Including some geometrical remeshing (by using an geometry_factor
unequal 0, say residue_factor ) stabilizes the
remeshing and is almost always needed.
6.76 control_mesh_renumber index lowest_element lowest_node
The element numbers are made strictly sequential starting from
lowest_element and the node numbers are made strictly sequential
starting from lowest_node. Beware using control_renumber in
combination with, by example, node numbers in printing of
node_dof records; use post_point records instead.
6.77 control_mesh_split index switch
If switch is set to -yes then each -quad4 element
is split into four -tria3 elements and
each -hex8 element is split into twelve -tet4 elements.
Further, each -quad9 element is split into four -tria6 elements and
each -hex27 element is split into six -tet10 elements.
See the rules for old and new at control_mesh_refine_globally.
See also control_mesh_split_only.
6.78 control_mesh_split_only index geometry_entity
geometry_entity_index
If this record is used, the corresponding control_mesh_split record
will only be applied on the geometry specified
by index geometry_entity geometry_entity_index.
6.79 control_options_convection index switch
If switch is set to -yes, the convection of a material with respect
to the mesh is allowed.
If switch is set to -no, the convection of a material with respect
to the mesh is not allowed.
This is done for timestep records with the same index.
Default switch is set to -yes.
See also options_convection.
6.80 control_options_inertia index switch
If switch is set to -yes, inertia terms are
included (material mass, heat capacity, ..).
If switch is set to -no, inertia is not included.
This is done for timestep records with the same index.
Default switch is set to -yes.
See also options_inertia.
6.81 control_options_relaxation relax_0 relax_1 ...
Relaxation parameters for adjusting unknowns in iterations.
This can stabilize the calculation.
By example, a relaxation parameter of 0.1 means that the corresponding unknown
is now completely updated with the iterative change, but only 10 percent of
the change is actually applied in a iteration.
If enough iterations are used, the relaxation parameters with not influence
the final solution.
You should specify a relaxation parameter term for each principal unknown
which is present in the calculation (see the start of the
data part description for a list of principal unknowns;
these are velocities, temperature, etc.).
This relaxation done for timestep records with the same index.
See also options_relaxation.
6.82 control_options_skip_plasticity index switch
If switch is set to -yes, any plasticity data in the input file will be ignored.
This is done for timestep records with the same index.
This option is convenient for testing your input file just linear, without the need
to outcomment each and every part with plasticity data.
See also options_skip_plasticity.
6.83 control_options_solver index solver_type
If solver_type is set to -diagonal then
only the main diagonal of the system matrix will be used
for the solution of all unknowns.
This gives the program an explicit like structure.
In fact, if control_timestep_iterations is set to 1,
then a classical explicit finite element program is obtained.
If solver_type is set to -matrix_iterative_bicg then
the complete system matrix will be used for solution of the principal
unknowns (see the initialization section for an explanation on principal
unknowns).
A diagonal Preconditioned BiConjugate Gradient method is applied.
If solver_type is set to -matrix_iterative_petsc then
the complete system matrix will be used for solution of the principal
unknowns (see the initialization section).
The PETSc library with iterative solvers is applied.
See also control_options_solver_petsc_ksptype and
control_options_solver_petsc_pctype.
The PETSc solver is meant for expert users only.
See tochnog/src/makefile how to link the PetSc solvers to Tochnog.
The PETSc library is developed by Satish Balay, William Gropp,
Lois Curfman McInnes and Barry Smith (Mathematics and Computer Science
Division, Argonne National Laboratory).
If solver_type is set to -matrix_superlu then
the complete system matrix will be used for solution of the principal
unknowns (see the initialization section).
The SuperLu library with a sequential direct solvers is applied (LU decomposition).
The SuperLu solver is meant for expert users only.
Also available are -matrix_superlu_mt (multithreads based
parallel version of SuperLu) and -matrix_superlu_dist (MPI based
distributed parallel version of SuperLu).
See tochnog/src/makefile how to link the SuperLu solvers to Tochnog.
The SuperLu library is developed by James W. Demmel (Computer Science
Division, University of California, Berkeley), John R. Gilbert (Xerox Palo Alto
Research Center) and Xiaoye S. Li (National Energy Research Scientific
Computing Center, NERSC).
Beware: if the equations are singular, if you forget boundary conditions or so,
superlu tends to give strange problems (segmentation faults or so).
In all cases, the first iteration will give estimates for velocities, displacements, etc.
Typically you need at least two iterations to get estimates for strains, stresses, etc.
Even if the equations are linear, using more iterations may change the results.
This is because, the strain, stresses, etc. are redistributed due
to the continuous field approach.
Typically the results become more accurate when using more iterations;
but using two or three iterations is ok in most cases.
Even in case of plasticity, damage, or so we use the linear elastic stiffness
matrix in both the diagonal solver and the matrix solvers.
This gives a stable iteration behavior but requires that enough
time steps and/or iterations are used.
If solver_type is set to -none then only the matrices and
right-hand sides are setup, but the equations are not really solved.
For the multithreaded parallel solvers use options_processors to set the
numbers of processors that you want to use.
Default we use -matrix_iterative_bicg.
6.84 control_options_solver_petsc_ksptype index ksptype
With this record you can set the Krylov Subspace type for the PETSc solver
(so the method in which the iterative method searches for the solution of the
equations). Possibilities are: -richardson, -chebychev,
-cg, -bicg, -gmres, -bcgs, -tfqmr,
-tcqmr, -cr, -lsqr, -preonly.
See control_options_solver_petsc_pctype on how to set the preconditioning type.
The PETSc solver needs to be installed separately on your computer.
See the Tochnog homepage links where to get PETSc.
After installing PETSc, you need to compile Tochnog and link it to the PETSc
library; follow the instructions in tochnog/src/makefile.
Running on single processor computers.
For running on a single processor computer run Tochnog like tochnog beam.dat.
Running on distributed processor systems (clusters of workstations).
With the PETSc solver you can also run on distributed memory systems.
The MPI is used for message parsing.
We recommend using the MPICH version of MPI; see the links at the homepage
where to get it.
For running on distributed systems, run Tochnog like mpi -v -np 20 tochnog
if you have the same filesystem across all the machines.
Otherwise you need to use a procgroup file which tells where in each machine the
executable and the data file are.
Examples of usage are on page 9 of the mpich guide.ps file.
If mpich is used for MPI, then the $MPIHOME/util/machines/machines.$ARCH
file contains the hostnames.
But if the procgroup file is used, then it takes precedence over machines.$ARCH.
A procgroup file is like:
hostname1 0 /home/xxx/tochnog
hostname2 1 /users/yyy/tochnog
...
Also notice that in calling Tochnog no arguments are specified
so always the default input file tn.dat is used.
6.85 control_options_solver_petsc_pctype index pctype
With this record you can set the Preconditioner type for the PETSc solver.
Possibilities are: -jacobi, -bjacobi, -sor, -eisenstat,
-icc, -ilu, -asm, -sles and -lu.
Especially the -lu is noteworthy, since it is a complete LU factorisation
so that it activatives a direct solver (sparse, profile).
6.86 control_print index data_item_name_0 data_item_name_1
...
The is the normal printing command.
A control_print record causes the data items
with name data_item_name_0, etc. to be printed.
Example
control_print 1 -node -node_dof
See also: print_filter.
6.87 control_print_database index switch
If switch is set to -yes, the complete database is be printed.
See the example below
control_print_database 6 -yes
This database contains the complete status of the calculation.
By example if index is 6, the data base is
printed in the file input_file_name6.dbs.
As a special option, you can print a restart database by setting
switch to -restart.
This database is essentially the same as the complete database but, however,
all control records up to the present index are deleted since
these do not need to performed anymore in a restart.
Always a complete database tn.dbs is printed at the end of the calculation.
6.88 control_print_data_versus_data index data_item_name_0
index_0 number_0
data_item_name_1 index_1 number_1 ...
This option prints columns of data for each time step.
Print in the first column the number_0 value of
data_item_name_0 with index index_0.
Similar in the second column for data_item_name_1 index_1 number_1.
Etc. (for all values).
Typically, the data item names can be -node_dof
such that unknowns can be printed against each other in time.
If the data item names are -node_dof, then number_0 and
number_1, etc. can be -velx, -temp, etc.
(see dof_label); otherwise, by example, if number_0 is
3 then the fourth value of data_item_name_0 is printed. All results
will be printed in the file tn.dvd.
Example:
control_print_data_versus_data 0
-node_dof 2 -temp
-node_dof 2 -sigxx -node_dof 2 -sigxx
Another example:
post_point 0 0.0 1.0
post_calcul -materi_stress -average -materi_stress -sizedev
control_print_data_versus_data 20
-time_current 0 0
-post_point_dof_calcul 0 0 -post_point_dof_calcul 0 1
In the last example, the -post_point_dof_calcul 0 0 stands for 'the
post_point_dof_record with index 0 and the 0'th number which is the
first value so the avarage of the stresses'.
See also: control_print.
6.89 control_print_dx index switch
If switch is set to -yes then results are written in a format
for IBM data explorer.
By example, if the input file is called turbine.dat then
the results are written in the turbine.dx.
Presently, in data explorer do the following to visualize:
-
start dx
- import data, data explorer file, select the tochnog dx file
- visualize data
Set the option rendering options to hardware for better results.
You are urged to read the quick reference manual for IBM dx.
Expect Tochnog specific visualisation networks for data explorer
to appear once.
6.90 control_print_element index data_item_name
With this options you can print values from element data versus coordinates.
Select either -element_truss_force or -element_beam_moment
for data_item_name.
By example, the first value of a -element_beam_moment record
(that is number 0 in tochnog notation) will be printed in the
file element_beam_moment_0.index;
the file will contain lines containing x, y, z and value.
In 1D only x will be printed, etc.
6.91 control_print_filter index print_filter_index_0
print_filter_index_1 ...
See print_filter.
6.92 control_print_gid index switch
Print the mesh and the unknowns in a file which can be plotted
with the GID pre-post processor if switch is set to -yes.
By example, if the input file is called turbine.dat then
the mesh is written in the turbine.flavia.dat (2D) or
the turbine.flavia.msh file (3D).
The results are written in the turbine.flavia.res.
If line data is present (truss elements, beam elements, tendons), these will
be written to lines.bon.
The mesh and results for unknowns will always be written at the end of the calculation.
Nodes and elements will be renumbered when written to the GID files,
because GID preferes sequential numbering.
You can keep the node and elements numbers in Tochnog the same as the numbers
in GID, by applying a renumber index 1 1 on the mesh you use
(thus keeping the numbers in Tochnog sequential starting from 1).
Since GID uses the time as a label for each set of results, you can only print new results
to the GID files at unique time points (that is, at the start of the calculation or after
the time has increased with the control_timestep option).
Since GID gets confused when the number of elements changes between several
control_print_gid records, Tochnog will only print GID results for
the last mesh used.
Coordinates for nodes will be written in the original configuration.
If materi_velocity is initialized, also a vector mesh_deform will
be written for GID which contains the deformation between the original
mesh configuration and the deformed mesh configuration.
Use the deform mesh menu in GID, to draw the deformed configuration by
applying the vector deformation with a factor 1.
If materi_velocity is initialized, also a vector force will
be written for GID which contains the forces corresponding to the velocities (displacements).
Empty elements (that is, elements with a materi_density or materi_diffusion
lower than 0.5) will not be plotted,
As a special option, you can set switch to -separate.
Then the mesh and results will be printed in separate files for GID.
The option comes handy when the mesh changes during the calculation; GID cannot
plot that if the mesh and results are in the same file.
6.93 control_print_gmv index switch
Print the mesh and the unknowns in a file which can be plotted
with the General Mesh Viewer if switch is set to -yes.
The files are numbered sequentially.
By example, the first results are printed in the file gmv001.inp,
the second results are printed in the file gmv002.inp, etc.
Also results of node_dof_calcul records (if present)
will be printed.
Always a gmv.inp file will be generated at the end of the calculation.
Only the elements -tria3, -quad4, -quad9, -tet4,
-hex8 and -hex27 are available.
The elements -quad9 and -hex27 will be mapped
to -quad4 and -hex8 elements to allow for gmv plotting.
TOCHNOG will temporarily renumber elements and nodes when
is writes the GMV data.
So the numbering in the GMV plots will not correspond with the numbering
as it was in the actual calculation.
If present, TOCHNOG element groups will be attributed to
GMV material numbers.
If present, TOCHNOG post_point records will be attributed to
GMV tracers.
As a special option, you can specify the number of an eigen mode
instead of -yes after materi_velocity has
been initialized and an eigenvalue analysis has been
performed by control_eigen.
Then the eigenmode for the velocity is added to the nodal coordinates.
In this way you can view the mode.
6.94 control_print_history index data_item_name_0
data_item_index_0 number_0 ...
Print the time history for each of the sets
data_item_name_0 data_item_index_0 number_0 ....
By example, data_item_name_0
is -node_dof so that the development of an unknown can be followed in
time. If -node_dof is used, number_0 is one of -velx,
-temp, etc. (see dof_label); otherwise, number_0 should
be an integer specifying the number of the value in the record (for instance
number 2 means the third value).
The following history is printed in the file temp112.his
control_print_history 0 -node_dof 112 -temp
6.95 control_print_matlab index switch
Print x in x.index.
Print y in y.index.
Print z in z.index.
Also the primary unknowns are printed; by example,
print -temp in temp.index.
Furthermore, also data generated by post_calcul is printed.
Use matlab (a trademark of The MathWorks, Inc.) to plot.
By example, if you want to plot temperatures after
a 2D calculation with control_print_matlab 100 -yes,
then do in matlab the following:
load x.100
load y.100
load temp.100
fill(x,y,temp)
By example, if you want to plot temperatures after
a 3D calculation with control_print_matlab 100 -yes,
then do in matlab the following:
load x.100
load y.100
load z.100
load temp.100
fill3(x,y,z,temp)
6.96 control_print_plotmtv index switch
Print the mesh and the unknowns in a file which can be plotted
with plotmtv if switch is set to -yes.
By example, the first results are printed in the file plotmtv1.dat,
the second results are printed in the file plotmtv2.dat, etc.
Also results of node_dof_calcul records (if present)
will be printed.
Only the elements -bar2, -bar3, -bar4,
-bar5, -tria3, -quad4, -quad9,
-tet4 and -hex8 are available.
As a special option, you can specify the number of an eigen mode
instead of -yes after materi_velocity has
been initialized and an eigenvalue analysis has been
performed by control_eigen.
Then the eigenmode for the velocity is added to the nodal coordinates.
In this way you can view the mode.
6.97 control_print_tecplot index switch
Print primary unknown field in node_dof into the file
tecplot.plt if switch is set to -yes.
Also results of node_dof_calcul records (if present)
are printed in the tecplot.plt file.
If switch is set to -mesh, then also the mesh is printed;
this will be done automatically however for a new mesh or if the
mesh has been changed.
As a special option, you can specify the number of an eigen mode
instead of -yes after materi_velocity has
been initialized and an eigenvalue analysis has been
performed by control_eigen.
Then the eigenmode for the velocity is added to the nodal coordinates.
In this way you can view the mode.
You can plot this file with the program tecplot (a trademark
of Amtec Eng., Inc.).
6.98 control_print_unknowns index switch
If switch is set to -yes then results for the primary unknowns
will be printed, including also the coordinates at which the results hold.
By example, for the file temp.index will contain lines
containing x, y, z and -temp.
In 1D only x will be printed, etc.
Also results for node_dof_calcul records will be printed.
6.99 control_print_unknownsrhside index switch
If switch is set to -yes then results for right-hand-side
for the the primary unknowns will be printed,
including also the coordinates at which the results hold.
By example, for the file temp_rhside.index will contain lines
containing x, y, z and right-hand-side of -temp (that is, heat flux).
In 1D only x will be printed, etc.
6.100 control_print_vtk index switch
Print the mesh and the unknowns in a file which can be plotted
with the Visual Tool Kit, vtk, if switch is set to -yes.
The results are printed in the file tnindex.vtk.
Also results of node_dof_calcul records, if present, will be printed.
Only the elements -bar2, -bar3,
-tria3, -quad4, -quad9, -tet4,
-hex8 and -hex27 are available.
The elements -bar3, -quad9 and -hex27 will be mapped
to -bar2, -quad4 and -hex8 elements respectively for vtk plotting.
6.101 control_relaxation_condif_temperature
index group_condif_temperature_relaxation
Relaxation parameters for temperature.
See also control_relaxation_materi_velocity.
6.102 control_relaxation_groundflow_pressure
index group_groundflow_pressure_relaxation
Relaxation parameters for groundflow pressure.
See also control_relaxation_materi_velocity.
6.103 control_relaxation_materi_velocity
index group_materi_velocity_relaxation
Relaxation parameters for velocity.
This parameter only enters the left hand side of the iterative scheme.
If enough iterations are used (see control_timestep_iterations), the
parameters do not influence the final results.
The control_relaxation ... options add 'stiffness' to the left hand
side of the equations, and so stabilize the iterations.
Another possibility is to use options_relaxation which reduces
iterative changes to the unknowns.
6.104 control_repeat index number_of_repeats control_index
If number_of_repeats is larger than 0 the calculation repeats
from the control_index.
The value of number_of_repeats is decreased with 1.
A first application is to do many time steps, but print only once in a while:
control_timestep 10 1. 100.
...
control_print 20 -node_dof
...
control_repeat 30 80 10
In the latter example, first 100 timesteps are taken, then results for
node_dof are printed; this is repeated 80 times.
Also, this control_repeat can typically be used to perform a number
of refinements combined with time stepping to a new, refined, solution.
This is done a fixed number of times.
See also control_repeat_until_item.
6.105 control_repeat_until_item index control_index
repeat_criterium data_item_name
data_item_index data_item_number
The calculation repeats from the control_index until
the data item value as specified by data_item_name
data_item_index data_item_number satisfies repeat_criterium.
If repeat_criterium is -change then
repeating is stopped if the value changes less than tolerance.
The tolerance needs to be specified in the
control_repeat_until_tolerance record (with the same index).
It specifies as a percentage the relative change in the data item value
above which repeating occurs.
If repeat_criterium is -value then
repeating is stopped if the absolute value is less than tolerance.
The tolerance needs to be specified in the
control_repeat_until_tolerance record (with the same index).
This can typically be used to perform a number
of refinements combined with time stepping to a new solution
until some data item doesn't change much anymore.
See also control_repeat.
6.106 control_repeat_until_tolerance index tolerance
6.107 control_restart index switch
If switch is set to -yes then
the calculation continues with the undeformed mesh.
The unknowns (in the node_dof records) are reset to the initial values.
And time_current is set to the initial time.
This allows you to calculate some path dependent behavior completely
from the start with a refined mesh.
6.108 control_timestep index step_size time_increment
step_size time_increment ...
These records define sets of time steps of size step_size
which are to be taken till the time is increased by time_increment.
In the example below time steps of 0.1 are taken from time 0.0 up
to time 1.0. Then time steps of 0.2 are taken up to time 2.0
control_timestep 0 0.1 1. 0.2 1.
6.109 control_timestep_iterations index number_of_iterations
This sets a fixed number of equilibrium iterations in each time step
(for time steps of the control_timestep record with the same index).
If number_of_iterations is 1 then the time stepping is
completely Euler explicit.
For larger values, the time stepping becomes implicit.
For many iterations, the time stepping is Euler implicit.
Typically, number_of_iterations is 1,2 or 3.
Default number_of_iterations is 2.
As an alternative, you can use control_timestep_iterations_automatic.
6.110 control_timestep_iterations_automatic index
ratio_criterium maximum_timestep
After specification of this record, iterations will be performed
until ratio in post_node_rhside_ratio is less then ratio_criterium.
Typically, set ratio_criterium to 0.01 or 0.001.
TOCHNOG will now also adjust the time step size.
If few iterations are needed the time step size is increased.
If many iterations are needed the time step size is decreased.
The time step specified in control_timestep is used as initial step.
The time step is not allowed to become higher then maximum_timestep.
If the time step becomes very low compared to the initial step, time stepping is aborted.
The initial step as specified in control_timestep, should be sufficient small so
that this automatic algorithm can fulfill the ratio_criterium in that initial step.
6.111 control_timestep_iterations_automatic_stop index switch
The control_timestep_iterations_automatic options normally will stop the calculation if the minimal
timestep is reached and the criterium can not be fulfilled.
However, if you set switch in control_timestep_iterations_automatic_stop to -yes
then the calculation will continue.
6.112 control_timestep_multiplier index multiplier
If this record is specified, each new time step size is multiplier * old time step size.
The step_size as specified in control_timestep
will only be used as the initial time step.
This option is handy to study physical processes which develop more slowly when time proceeds.
A typical example is consolidation analysis in geotechnics.
6.113 control_unknown_freeze index unknown_0 unknown_1 ...
The unknowns as specified in this record are freezed to keep their values.
By example, unknown_0 is temp, etc.
6.114 control_unknown_reset_geometry index
geometry_item_name geometry_item_index
Specifies the geometry on which the control_unknown_reset record with
the same index should be applied.
If this geometry is not specified, the control_unknown_reset record
will be done for all nodes.
6.115 control_unknown_reset_unknown index unknown_0 unknown_1 ...
The unknowns as specified in this record are set to a value
specified in the control_unknown_reset_value record (with the same index).
By example, unknown_0 is -eptxx, etc.
As a special option you can use -all to reset all unknowns.
As a typical example, you can set strains to zero in a geotechnical
calculation, with an -updated material description,
after the gravity load has been applied.
In this way the strains for further deformations can de distinguished more clearly.
6.116 control_unknown_reset_value index value
Specifies the value to which unknowns of the control_unknown_reset_unknown
record are reset.
If this control_unknown_reset_value record is not specified,
then the unknowns are reset to 0.
6.117 dependency_diagram index unknown_value_0 ...data_item_value_0 ...
See dependency_item.
6.118 dependency_item index data_item element_group
unknown n
This record allows you to make an element data item
dependent on one of the unknowns (see dof_label for unknown names).
This is done for n values of the unknown (n should be at least 2).
The dependency should be specified in the dependency_diagram
record (same index) with a multi linear diagram.
In the diagram first a set of unknowns values should be specified.
Second the set of data item values for those
unknown values should be specified.
Some examples are given below.
Temperature dependent Young's modulus of element_group 1
(E=1.e10 at temperature 1, etc.):
dependency_item 1 -group_materi_elasti_young 1 -temp 4
dependency_diagram 1 1. 2. 3. 4. 1.e10 1.e9 1.e8 3.e5
Temperature dependent Young's moduli in two maxwell chains of element_group 1
(
for the first chain the moduli 1.e10, 1.e9, ...
for the second chain the moduli 1.e10, 1.e9, ...
all relaxation times are 1. 10 -2.
):
dependency_item 1 -group_materi_maxwell_chain 1 -temp 4
dependency_diagram 1
1. 2. 3. 4.
1.e10 1.e9 1.e8 3.e5
1.e-2 1.e-2 1.e-2 1.e-2
1.e12 1.e11 1.e10 3.e7
1.e-2 1.e-2 1.e-2 1.e-2
As a special option, unknown can be set to -time_current.
This allows for time-dependent properties (aging).
The example below shows time dependent Young's modulus of element_group 1
(E=1.e10 at time 0, etc.):
dependency_item 1 -group_materi_elasti_young 1 -time_current 4
dependency_diagram 1 0. 1. 2. 3. 1.e10 1.e9 1.e8 3.e5
The dependencies are available only for real data (and thus not for integer data).
The dependency_diagram values shows be specified from
low to high values for the unknown.
6.119 dof_label unknown_0 unknown_1 ...
This record will be filled with labels of the unknowns in the correct order.
This information is required for understanding records like
node_dof etc.
The sequential order for the primary unknowns
will match the order in which they are specified in the initialization part.
The total list of possible unknown labels is:
-dam damage,
-dens density,
-ener material strain energy,
-epexx xx-strain elastic, -epexy, -epexz,
-epeyy, -epeyz, -epezz,
-eppxx xx-strain plastic, -eppxy, -eppxz,
-eppyy, -eppyz, -eppzz,
-eptxx xx-strain total, -eptxy, -eptxz,
-eptyy, -eptyz, -eptzz,
-eppsize size of plastic strains,
-gvelx ground water velocity in x-direction, -gvely, -gvelz.
-hisv0, -hisv1, ..., material history variables,
-kap plastic isotropic hardening parameter kappa,
-pres hydraulic pressure head,
-res residue unknown,
-rhoxx xx plastic kinematic hardening, -rhoxy, -rhoxz,
-rhoyy, -rhoyz, -rhozz,
-scal scalar,
-temp temperature,
-f plasticity yield rule,
-fn nonlocal plasticity yield rule,
-fscal time derivative of scalar,
-sigxx xx-stress, -sigxy, -sigxz,
-sigyy, -sigyz, -sigzz,
-1msigxx xx-stress in first maxwell chain,
-1msigxy, -1msigxz, -1msigyy, -1msigyz,
-1msigzz,
-velx velocity in x-direction, -vely, -velz,
-velix integrated velocity in x-direction, -veliy, -veliz,
-void material void fraction.
-work material second order work.
Furthermore, -xvelx denotes the spatial x-derivative of
-velx in x-direction, etc..
Finally, -tvelx denotes the first time
derivative of -velx, etc..
The time derivative and the space derivatives are
only calculated if derivatives is included in the
initialization part.
By example, the following might be seen after a print of the database
echo -yes
number_of_space_dimensions 2
derivatives
condif_temperature
end_initia
...
dof_label -temp -xtemp -ytemp -ttemp
...
Or, by example, the following might be seen after a print of the database
echo -yes
number_of_space_dimensions 2
condif_temperature
end_initia
...
dof_label -temp
...
6.120 element index element_name node_0 node_1
node_2 ...
Nodal connective of element index.
In 1D, element_name is -bar2 (2 noded bar),
-bar3, -bar4.
In 2D, element_name is
-tria3 (3 noded triangle), -tria6 (6 noded triangle),
-quad4 (4 noded quadrilateral), -quad9,
-quad16.
In 3D, element_name
is -tet4 (4 noded tetrahedral),
-tet10 (10 noded tetrahedral),
-hex8 (8 noded hexahedral),
-hex27,
-hex64.
Example with 4-noded quadrilateral
element 0 -quad4 1 2 3 4
node 1 0. 0.
node 2 1. 0.
node 3 0. 1.
node 4 1. 1.
file=ps/quad4.ps,width=3cm
Example with 9-noded quadrilateral
element 0 -quad9 1 2 3 4 5 6 7 8 9
node 1 0.0 0.0
node 2 0.5 0.0
node 3 1.0 0.0
node 4 0.0 0.5
node 5 0.5 0.5
node 6 1.0 0.5
node 7 0.0 1.0
node 8 0.5 1.0
node 9 1.0 1.0
file=ps/quad9.ps,width=3cm
Example with hexahedral
element 0 -hex8 1 2 3 4 5 6 7 8
node 1 0. 0. 0.
node 2 1. 0. 0.
node 3 0. 1. 0.
node 4 1. 1. 0.
node 5 0. 0. 1.
node 6 1. 0. 1.
node 7 0. 1. 1.
node 8 1. 1. 1.
file=ps/hex8.ps,width=4cm
As a special option, user supplied elements can be used by
specifying -user.
See the section on user supplied subroutines.
Except for the -tria3 and -tet4 element, the nodal location
is always in lobatto points.
See also: group_integration_points.
Spring elements between two nodes are available by
specifying -spring2 for element.
The two nodes may have the same position in space for a spring.
Spring elements at one node are available by
specifying -spring1 for element.
The springs are available in 1D, 2D and 3D.
You need to specify data like group_spring_stiffness etc.
Contact spring elements between two nodes are available by
specifying -contactspring for element.
The two nodes may have the same position in space for a spring.
The contact springs are available in 1D, 2D and 3D.
You need to specify data like group_contactspring_stiffness etc.
Truss elements are available by specifying -truss for element.
A truss always has two nodes, which it connects with a elongation stiffness.
The trusses are available in 1D, 2D and 3D.
You need to specify data like group_truss_area etc.
Beam elements are available by specifying -beam for element.
A beam always has two nodes, which it connects with a bending stiffness.
The beams are presently only available in 2D.
You need to specify data like group_beam_inertia etc.
Combined trussbeam elements are available by specifying -trussbeam for element.
This element always has two nodes, which it connects with a elongation
stiffness and a bending stiffness.
This element is presently only available in 2D.
You need to specify data like group_truss_area,
group_beam_inertia etc.
6.121 element_beam_direction index dir_x dir_y dir_z
After the calculation, this record will be filled with the direction of a beam in space.
The index specifies the beam element number.
6.122 element_beam_moment index
force_x_first_node force_y_first_node moment_z_first_node
force_x_second_node force_y_second_node moment_z_second_node
...
After the calculation, this record will be filled with the forces and moments
of a beam in the local beam space coordinates x, y, z (such that
z is perpendicular to the bending plane of the beam).
For a beam in 2d, the local beam x, y, z axes equal the
global x, y, z.
The element_beam_moment record contains the forces and moments in the first node,
and after that the forces and moments in the second node.
The index specifies the beam element number.
6.123 element_group index element_group
This data item is specified which element data items should be taken for the element
index.
Example: elements 0 and 1 get density 1024 while element 2 gets
density 1236
element 0 0 1 2
element 1 1 2 3
element 2 2 3 4
...
element_group 0 1
element_group 1 1
element_group 2 2
...
density 1 1024.
density 2 1236.
If no element_group records are specified, all element data
should use index is 0.
See also area_element_group.
6.124 element_contactspring_direction index dirNx dirNy dirNz
dirT1x dirT1y dirT1z dirT2x dirT2y dirT2z
After the calculation, this record will be filled with
the normal and tangential directions in a contactspring element.
The index specifies the spring element number.
6.125 element_contactspring_force index force_N force_T1 force_T1
After the calculation, this record will be filled with
the normal and tangential forces in a contactspring element.
The index specifies the spring element number.
6.126 element_spring_force index force
After the calculation, this record will be filled with
the normal force in a spring element.
The index specifies the spring element number.
6.127 element_tendon_direction index dir_x
dir_y dir_z dir_x dir_y dir_z ...
This record will be filled with the direction of the
tendons which are placed in element index (all three directions
for each tendon). See also tendon.
6.128 element_tendon_number index tendon_0
tendon_1 ...
This record will be filled with the tendons which are placed
in element index. See also tendon.
6.129 element_tendon_strain index eps_0 eps_1 ...
This record will contain after the calculation the strains of the tendons
which are placed in element index. See also tendon.
6.130 element_tendon_stress index sig_0 sig_1 ...
This record will contain after the calculation the stresses of the tendons
which are placed in element index. See also tendon.
6.131 element_tendon_volume index volume_0
volume_1 ...
This record will contain after the calculation the volume of the
tendons which are placed in element index. See also tendon.
6.132 element_truss_direction index dir_x dir_y dir_z
After the calculation, this record will be filled with the direction
of a truss in space.
The index specifies the truss element number.
6.133 element_truss_force index force
After the calculation, this record will be filled with
the normal force in a truss element.
The index specifies the truss element number.
6.134 force_element_edge index force_0 force_1 ...
Distributed edge source terms (force terms per unit length in 2D or
per unit area in 3D).
These distributed terms are translated into equivalent nodal force terms
on the edges of elements.
This option is meant for 2D and 3D calculations.
You should specify a force term for each principal unknown
which is present in the calculation (see the start of the
data part description for a list of principal unknowns).
Also the record force_element_edge_geometry should
be specified, and optionally the records force_element_edge_factor
and force_element_edge_time can be specified.
6.135 force_element_edge_factor index a0 a1 ...an
This data item defines a polynomial in space.
This polynomial gives a factor which is used as a multiplication
factor for force_element_edge records (with the same index).
In this way, you can obtain coordinate dependent forces.
In 1D the polynomial is a0 + a1 x + a2 x2 + ... .
In 2D the polynomial is a0 + a1 x + a2 y + a3 x2 + a4 xy +
a5 y2 + a6 x3 + a7 x2 y + a8 x y2 + a9 y3 + ... .
In 3D the polynomial is a0 + a1 z + a2 z2 + ... .
6.136 force_element_edge_geometry
index node_0 node_1 node_2 ...
Selects the area for which the force_element_edge record with
the same index should be applied.
In stead of specifying node numbers also,
by example, -geometry_line 1 can be
used in 2D, indicating that the nodes on line 1 get the distributed force.
Attention: if this force_element_edge_geometry option is used INSIDE
a FE mesh, then the elements on each side of the geometry will get the force.
So you may need to specify only half of the physical force value.
6.137 force_element_edge_sine index start_time
freq_0 amp_0 freq_1 amp_1 ...
The force_element_edge record with the same
index is imposed with the sum of the sine functions;
the first sine function has frequency freq_0 and amplitude amp_0,
the second sine function has frequency freq_1 and amplitude amp_1,
etc.. The sine functions start at time 0.
More general behavior in time can be imposed by using force_element_edge_time
records. For a specific index only one of force_element_edge_sine and
force_element_edge_time can be specified.
The sine loads will be only imposed after start_time.
More general time behaviour can be specified with force_element_edge_time.
6.138 force_element_edge_time index time load time load ...
This record specifies a diagram which contains the factors
with which the force_element_edge record with the same index is applied.
Linear interpolation is used to extend the time load values
to the intervals between these pairs.
If this record is not specified, and
the force_element_edge_sine record is not specified,
the force is applied at all times with a factor 1.
If no external forces like force_element_edge_time are specified,
the internal element forces become zero at free edges to satisfy equilibrium.
This causes, by example, temperature gradients to become zero
at free edges in heat problems.
6.139 force_element_edge_normal index force
Distributed normal force in the direction of
the outward normal at the edge of a geometry.
This distributed term is translated into equivalent nodal force terms
on the edges of elements.
This option is meant for 2D and 3D calculations.
Also the record force_element_edge_normal_geometry should
be specified, and optionally the record force_element_edge_normal_time can be specified.
6.140 force_element_edge_normal_factor index a0 a1 ...an
This data item defines a polynomial in space.
This polynomial gives a factor which is used as a multiplication
factor for force_element_edge_normal records (with the same index).
In this way, you can obtain coordinate dependent forces.
In 1D the polynomial is a0 + a1 x + a2 x2 + ... .
In 2D the polynomial is a0 + a1 x + a2 y + a3 x2 + a4 xy +
a5 y2 + a6 x3 + a7 x2 y + a8 x y2 + a9 y3 + ... .
In 3D the polynomial is a0 + a1 z + a2 z2 + ... .
6.141 force_element_edge_normal_geometry
index geometry_item_name geometry_item_index
Selects the area for which the force_element_edge_normal record with
the same index should be applied.
By example, -geometry_line 1 can be
used in 2D, indicating that the nodes on line 1 get the distributed force.
Attention: if this force_element_edge_normal_geometry option is used INSIDE
a FE mesh, then the elements on each side of the geometry will get the force.
So the total force will normally become zero since the normals of the elements
at the side of the geometry are opposite.
6.142 force_element_edge_normal_sine index start_time
freq_0 amp_0 freq_1 amp_1 ...
Same as force_element_edge_sine, now for normal edge loads however.
6.143 force_element_edge_normal_time index time load time load ...
This record specifies a diagram which contains the factors
with which the force_element_edge_normal record with the same index is applied.
Linear interpolation is used to extend the time load values
to the intervals between these pairs.
If this record is not specified, the force is applied at all times with a factor 1.
6.144 force_element_edge_water index density_water g dir_x dir_y dir_z
Distributed water pressure force.
This distributed term is translated into equivalent nodal force terms
on the edges of elements.
The distributed force is automatically calculated
as density_water g D z where g is the gravitational acceleration,
and D z is the distance from the phreatic level.
In a 3d calculation, the water pressure force acts in the direction dir_x dir_y dir_z.
In a 2d calculation, the water pressure force acts in the
direction dir_x dir_y (and dir_z should not be specified).
Also the record groundflow_phreaticlevel and
force_element_edge_water_geometry should be specified.
6.145 force_element_edge_water_geometry
index geometry_item_name geometry_item_index
Selects the area for which the force_element_edge_water record with
the same index should be applied.
By example, -geometry_line 1 can be used in 2D, indicating that
the nodes on line 1 get the distributed water pressure force.
Attention: if this force_element_edge_water_geometry option is used INSIDE
a FE mesh, then the elements on each side of the geometry will get the force.
So you may need to specify only half of the physical force value.
6.146 force_element_edge_water_time index time load time load ...
This record specifies a diagram which contains the factors
with which the force_element_edge_water record with the same index is applied.
Linear interpolation is used to extend the time load values
to the intervals between these pairs.
If this record is not specified, the force is applied at all times with a factor 1.
6.147 force_element_volume index force_0 force_1 ...
Distributed volume source terms (like force, heat generation, etc.) in differential equations.
Here force_0 is the source term for the first primary unknown, etc.
Use the control_print data item to print dof_label
to get the sequential order of the primary unknowns.
Specify source terms for each principal unknown which
is present in the calculation (see the start of the data part description
for a list of principal unknowns).
Consider the example with distributed volume force in x-direction
for a 2D material:
force_element_volume 0 1. 0.
See also force_element_volume_factor, force_element_volume_geometry,
and force_element_volume_time.
6.148 force_element_volume_factor index a0 a1 ...an
This polynomial gives a factor which is used as a multiplication
factor for force_element_volume records (with the same index).
In this way, you can obtain coordinate dependent forces.
In 1D the polynomial is a0 + a1 x + a2 x2 + ... .
In 2D the polynomial is a0 + a1 x + a2 y + a3 x2 + a4 xy +
a5 y2 + a6 x3 + a7 x2 y + a8 x y2 + a9 y3 + ... .
In 3D the polynomial is a0 + a1 z + a2 z2 + ... .
6.149 force_element_volume_geometry
index element_0 element_1 element_2 ...
Restricts the area for which the force_element_volume record with
the same index should be applied.
In stead of a specifying element numbers also,
by example, -geometry_quadrilateral 1 can be
used in 2D, indicating that the elements on quadrilateral 1 get the distributed force.
6.150 force_element_volume_sine index start_time
freq_0 amp_0 freq_1 amp_1 ...
Same as force_element_volume_sine, now for volume loads however.
6.151 force_element_volume_time index time load time load ...
This record specifies a multi-linear diagram which contains the factors
with which the force_element_volume record with the same index is applied.
If this record is not specified, the force is applied at all times
with a factor 1.
6.152 force_gravity g_x g_y g_z
Gravitational acceleration.
In 1D, only the gravity in x-direction needs to be specified.
In 2D, the gravity in x-direction and y-direction needs to be specified.
In 3D, the gravity in x-direction, y-direction and z-direction needs to be specified.
See also force_gravity_time.
6.153 force_gravity_time time load time load ...
This record specifies a multi-linear diagram which contains the factors
with which the force_gravity record is applied.
This allows you to impose the gravity on a structure slowly,
which might be needed for path dependent problems.
If this record is not specified, the gravity is applied at all times
with a factor 1.
6.154 geometry_bounda_factor index factor_0 ...
This sets, for either the geometry_line or the geometry_triangle
or the geometry_quadrilateral with the same index extra factors
which are used for the bounda_unknown and the bounda_force
records. The boundary conditions at a node being part of the geometrical
entity are multiplied with the interpolation of the factors.
For a geometry_line either 2 or 3 factors should be specified;
2 factors define a linear variation where the factors hold at
the start and end of the line respectively;
3 factors define a parabolic variation
where the factors hold at the start, at the middle and at the end of
the line respectively.
For a geometry_triangle 3 factors should be specified
(a linear variation with factors for the first,
second and third corner point respectively).
For a geometry_quadrilateral 4 factors should be specified
(a linear variation with factors for the first,
second, third and fourth corner point respectively).
In the example below, node 2 will get temperature 20*1.6 and
node 3 will get temperature 20*2.2.
...
number_of_space_dimensions 2
condif_temperature
...
end_initia
node 2 0.2 0
node 3 0.4 0.
...
geometry_line 1 0. 0. 1. 0. 0.01
geometry_bounda_factor 1 1. 4.
bounda_unknown 0 -geometry_line 1 -temp
bounda_time 0 0. 20. 1.e6 20.
...
end_data
6.155 geometry_bounda_sine_x index a b
This sets, for the geomerical entity with the same index an extra factor
which is used for the bounda_unknown and the bounda_force records.
The factor gives a sinus variation in x-direction.
The size of the factor is sin(a+b*x).
6.156 geometry_bounda_sine_y index a b
This sets, for the geomerical entity with the same index an extra factor
which is used for the bounda_unknown and the bounda_force records.
The factor gives a sinus variation in y-direction.
The size of the factor is sin(a+b*y).
6.157 geometry_bounda_sine_z index a b
This sets, for the geomerical entity with the same index an extra factor
which is used for the bounda_unknown and the bounda_force records.
The factor gives a sinus variation in z-direction.
The size of the factor is sin(a+b*z).
6.158 geometry_brick index x_c y_c z_c l_x l_y l_z tolerance
This data item defines a brick in space.
Other data items can check if nodes are located on this geometry.
The coordinate of the center is x_c y_c z_c.
The length in respectively x, y and z direction
are l_x l_y l_z.
All node within a distance tolerance are considered to be
part of the brick.
6.159 geometry_circle index x_c y_c radius tolerance
This data item defines a circle in space.
Other data items can check if nodes are located on this geometry.
The coordinate of the center is x_c y_c.
The circle can only be used in 2D.
All node within a distance tolerance of the radius are considered to be
part of the circle.
6.160 geometry_circle_segment index x_c y_c
radius side_x side_y tolerance
This data item defines a circle segment in space.
Other data items can check if nodes are located on this geometry.
The coordinate of the center is x_c y_c.
If side_x is set to a positive value, say +1.,
then only x-values larger then x_c are considered
to be part of the geometry.
If side_x is set to a negative value, say -1.,
then only x-values smaller then x_c are considered
to be part of the geometry.
If side_x is set to 0 ,
then all x-values are considered
to be part of the geometry.
Likewise remarks hold for y-values.
All node within a distance tolerance of the radius are considered to be
part of the circle segment.
6.161 geometry_cylinder index x_0 y_0 z_0
x_1 y_1 z_1 radius tolerance
This data item defines a cylinder segment in space.
Other data items can check if nodes are located on this geometry.
The coordinate of the center point at the
bottom is x_0 y_0 z_0. The coordinate of the center point at the
top is x_1 y_1 z_1. The cylinder can only be used in 3D.
All node within a distance tolerance of the radius
are considered to be part of the cylinder.
6.162 geometry_cylinder_segment index x_0 y_0 z_0
x_1 y_1 z_1 radius side_x side_y side_z tolerance
This data item defines a cylindrical segment in space.
Other data items can check if nodes are located on this geometry.
The coordinate of the center point at the
bottom is x_0 y_0 z_0. The coordinate of the center point at the
top is x_1 y_1 z_1.
If side_x is set to a positive value, say +1.,
then only x-values larger then x_c are considered
to be part of the geometry.
If side_y is set to a negative value, say -1.,
then only x-values smaller then x_c are considered
to be part of the geometry.
If side_x is set to 0 ,
then all x-values are considered
to be part of the geometry.
Likewise remarks hold for y- and z-values.
The cylinder segment can only be used in 3D.
All node within a distance tolerance of the radius
are considered to be part of the cylinder.
6.163 geometry_ellipse index x_c y_c a b tolerance
The coordinate of the center is x_c y_c.
The equation for the ellipse is:
|
æ
ç
ç
è |
|
|
ö
÷
÷
ø |
|
+ |
æ
ç
ç
è |
|
|
ö
÷
÷
ø |
|
= 1
|
Other data items can check if nodes are located on this geometry.
The ellipse can only be used in 2D.
All node within a distance tolerance of the ellipse are considered to be
part of the ellipse.
6.164 geometry_line index x_0 y_0 z_0
x_1 y_1 z_1 radius
This data item defines a line in space.
Other data items can check if nodes are located on this geometry.
Coordinates of the end points are denoted
by x_0, etc.. In 1D, only the x-coordinates should be specified,
etc.. All node within a distance radius are considered
to be part of the line.
In the example, a line in 2D space is defined and is used by a
convection_geometry record (nodes located on the line will convect heat)
...
geometry_line 2 1. 0. 1. 1. 0.01
...
group_condif_convection_geometry 0 -geometry_line 2
...
6.165 geometry_point index x y z radius
This data item defines a point in space.
Other data items can check if nodes are located on this geometry.
The coordinate of the point is
x y z. In 1D, only x should be specified, etc..
All node within a distance radius are considered to be part
of the point.
6.166 geometry_polynomial index a0 a1 ...an
x_0 x_1 y_0 y_1 tolerance
This data item defines a polynomial in space if 2D or 3D.
Other data items can check if nodes are located on this geometry.
In 2D it is the curve y = a0 + a1 x + a2 x2 + ... .
In 3D it is the surface z = a0 + a1 x + a2 y + a3 x2 + a4 xy +
a5 y2 + a6 x3 + a7 x2 y + a8 x y2 + a9 y3 + ... .
In 2D x0-x1 defines the domain of x.
In 3D x0-x1 defines the domain of x and y0-y1 defines the domain
of y. All node with a distance (that is the y-distance in 2D or
the z-distance in 3D) not more than tolerance are considered to be
part of the polynomial.
6.167 geometry_quadrilateral index x_0 y_0 z_0
x_1 y_1 z_1 x_2 y_2 z_2
x_3 y_3 z_3 tolerance
This data item defines a quadrilateral in space.
Other data items can check if nodes are located on this geometry.
The coordinates of the corner points are x_0 y_0 z_0 etc..
In 2D, only x_0, y_0 etc. should be specified etc..
The points of the quadrilateral should be specified in the correct order;
the order is clearified in the example below.
All node within a distance tolerance are considered
to be part of the quadrilateral (this gives a brick with thickness
2 * tolerance).
Internally in TOCHNOG, the quadrilateral is divided into two
geometry_triangles, which is only approximately true if the
quadrilateral is twisted. Example
...
number_of_space_dimensions 2
...
geometry_quadrilateral 0 0. 0. 1. 0. 0. 1. 1. 1.
...
Notice the order in which the points are to be specified.
6.168 geometry_set index geometry_entity_0
geometry_entity_index_0 geometry_entity_1
geometry_entity_index_1 ...
This set combines a number of geometrical entities
(e.g. geometry_circle, geometry_line, etc.) into a new entity.
As a special option you can refer to nodes with a node_boundary record
by specifying geometry_set index node_boundary.
Other data items can check if nodes are located on this geometry.
6.169 geometry_sphere index x_c y_c z_c radius tolerance
This data item defines a sphere in space.
Other data items can check if nodes are located on this geometry.
The coordinate of the center is x_c y_c z_c.
All node within a distance tolerance of radius
are considered to be part of the sphere.
6.170 geometry_sphere_segment index x_c y_c z_c radius side_x
side_y side_z tolerance
This data item defines a spherical segment in space.
Other data items can check if nodes are located on this geometry.
The coordinate of the center is x_c y_c z_c.
If side_x is set to a positive value, say +1.,
then only x-values larger then x_c are considered
to be part of the geometry.
If side_x is set to a negative value, say -1.,
then only x-values smaller then x_c are considered
to be part of the geometry.
If side_x is set to 0 ,
then all x-values are considered
to be part of the geometry.
Likewise remarks hold for y- and z-values.
All node within a distance tolerance of radius
are considered to be part of the spherical segment.
6.171 geometry_triangle index x_0 y_0 z_0
x_1 y_1 z_1 x_2 y_2 z_2 tolerance
This data item defines a triangle in space.
Other data items can check if nodes are located on this geometry.
The coordinates of the corner points
are x_0 y_0 z_0 etc.. In 2D the z coordinates should not be
specified. All node within a distance tolerance are considered
to be part of the triangle (this gives a wedge with thickness
2 * tolerance).
6.172 groundflow_density r
Density of ground water.
6.173 groundflow_phreaticlevel ...
Groundwater level.
In a 1D calculation this record should be given x value of the groundwater level.
The groundwater is below that x-value.
In a 2D calculation this record should be given sets of
x-y which specify the y level of the groundwater at several x locations;
In 2D you need to give the x-y sets as follows:
-
specify x-y sets for increasing x
In 3D the phreatic line is specified as follows.
Denote the lowest x with x_0, the next higher x with x_1 etc.
Denote the lowest y with y_0, the next higher y with y_1 etc.
Denote the phreatic level z value for x_i y_j with z_ij.
Then give the following:
-
x_0 y_0 z_00 x_1 y_0 z_10 etc.
- x_0 y_1 z_01 x_1 y_1 z_11 etc.
- etc.
The sets x,y need to form a regular grid in the x,y plane.
In 3d, the number of points in x and y direction resprectively should be set
with nx and ny of the groundflow_phreaticlevel_n record.
In nodes above the phreatic level the pressure will be set to zero during
the calculation.
As a special option in 2D and 3D, you can specify one value only, which
sets a constant phreatic level of that value everywhere.
6.174 groundflow_phreaticlevel_n nx ny
See groundflow_phreaticlevel.
6.175 groundflow_phreaticlevel_bounda method
If method is set to -method1 then the phreatic level gives
the following boundary conditions.
The phreatic level is used to automatically give nodes
which are located exactly on the phreatic level the boundary condition
that the hydraulic pressure head is r g z.
(In fact in 2D y is used in stead of z).
Nodes above the phreatic level will be given a hydraulic pressure head of zero.
Notice that this option only works correct if the groundwater level is located
exactly on nodes of the mesh.
If method is set to -method2 then the phreatic phreatic level gives
the following boundary conditions.
The phreatic level is used to automatically give nodes
which are located exactly on or above the phreatic level the boundary condition
that the hydraulic pressure head is r g z.
(In fact in 2D y is used in stead of z).
Nodes above the phreatic level (getting also r g z) are in fact not important
for the groundflow calculation results under the phreatic level.
Notice that this option also works correct if the groundwater phreatic level
is not located exactly on nodes of the mesh.
However, plots of the hydraulic head are more difficult to understand because
nodes above the phreatic level don't get value 0 but get value r g z
(but, again, this is not important for the real groundwater results).
6.176 group_axisymmetric index switch
If switch is set to -yes, the calculation becomes axi-symmetrical
(1D or 2D) for the group index.
Each specified x coordinate becomes a radius and y becomes the
length (=vertical) direction. (The z-direction is the axi-symmetric direction).
Specify only non-negative x coordinates, i.e. define the computational domain
in the right half-plane.
6.177 group_beam_inertia index I
Moment of inertia for for a beam.
The index specifies the element_group, see element_group.
6.178 group_beam_memory index memory_type
Memory model for beam; either -updated_without_rotation or -updated.
The -updated model is a geometrically nonlinear model which takes large
beam rotations into account.
The index specifies the element_group, see element_group.
6.179 group_beam_plane index first_direction second_direction
With this option you can use a 2d beam in a 3d calculation.
With first_direction and second_direction you can set
the plane in which the beam will act;
set these to either -x, -y or -z;
set first the smaller one (so e.g. -x before -y).
Example of beam acting in x-z plane:
...
number_of_space_dimensions 3
materi_velocity
materi_velocity_integrated
materi_stress
end_initia
...
group_beam_inertia 0 ...
group_beam_plane 0 -x -z
...
end_data
Please realize that the beam mechanically still is a 2d beam (it does not model
double bending or torsion); it just can act in a 2d plane in 3d space.
Any element output like element_beam_direction and
element_beam_moment is defined in the plane of the beam.
If this record is not specified for a beam in 3d,
then -x -y is assumed.
In 2d, this record cannot be specified (the beam is always in the x-y plane).
The index specifies the element_group, see element_group.
6.180 group_beam_young index E
Young's modulus for a beam.
The index specifies the element_group, see element_group.
6.181 group_condif_absorption index a
Absorption coefficient.
The index specifies the element_group, see element_group.
6.182 group_condif_capacity index C
Heat capacity.
The index specifies the element_group, see element_group.
6.183 group_condif_conductivity index k
Heat conductivity.
The index specifies the element_group, see element_group.
6.184 group_condif_density index density
Density for convection-diffusion equation.
The index specifies the element_group, see element_group.
6.185 group_condif_flow index beta1 beta2 beta3
Known flow field. In 1D only beta1 should be specified, etc.
The index specifies the element_group, see element_group.
6.186 group_contactspring_cohesion index c
The normal contact force FN is not allowed to become larger then cohesion c
in tension (positive values of FN).
If it would become larger, then the contact is broken, a gap is assumed and
the contact force FN is put to 0.
To have really a positive FN for extension of the contact spring,
the order of the two nodes as specified in the element record for the
contact spring should be correct.
Notice that when you use control_mesh_generate_contactspring to obtain
the contact spring elements, you are not sure what the first and what the second node
of an element will be, and thus you should not use this group_contactspring_cohesion
record.
Otherwise, it is not important what you use as first and second node,
so that control_mesh_generate_contactspring can be used safely.
If this group_contactspring_cohesion is not specified, infinite cohesion is assumed.
The index specifies the element_group, see element_group.
6.187 group_contactspring_direction index dir_x dir_y dir_z
Direction of a contactspring; that is the direction normal to
the surface of the body to which the contact spring is connected.
If this record is not specified, the direction is taken to be from the first
node of the spring to the second node.
The direction it used to determine the elongation of the spring normal to the surface (penetration).
The index specifies the element_group, see element_group.
6.188 group_contactspring_memory index memory_type
Memory model for contactspring; either -updated_without_rotation or -updated.
The -updated model is a geometrically nonlinear model which takes large
contactspring rotations into account.
The index specifies the element_group, see element_group.
6.189 group_contactspring_stiffness index kN kT
Stiffnesses for contact springs.
The force FN in normal direction of the contact spring is
determined from FN = kN uN where uN is the normal
displacement difference of the two nodes (that is, the displacement of the second node
in normal direction minus the displacement of the first node in normal direction).
The first tangential force FT1 of the contact spring is
determined from FT1 = kT uT1 where uT1 is the tangential
displacement difference of the two nodes in the first
tangential direction; the same is done for the second tangential force.
The total tangential force FT1 + FT2 cannot
exceed f FN with f friction coefficient;
then frictional slip occurs and the total tangential force is set
to f FN
To model continuing stick between two bodies just put the
friction coefficient f very high.
In 1D the parameters kT and f will not be used (but should be specified as dummies
nevertheless).
The index specifies the element_group, see element_group.
See also group_contactspring_friction and group_contactspring_friction_automatic.
6.190 group_contactspring_friction index f
With this record you can specify a fixed friction coefficient for contact springs.
The index specifies the element_group, see element_group.
See also group_contactspring_stiffness and group_contactspring_friction_automatic.
6.191 group_contactspring_friction_automatic index switch
If switch is set to -yes,
the friction coefficient for contact springs will be determined
from the plasticity law angle of neighbouring elements.
For a neighbouring group_materi_plasti_mohrcoul the friction coefficient f will
be set to f = (2./3.) tan f with f the friction angle in
the mohr-coulomb law of the neighbouring elements.
For a neighbouring group_materi_plasti_diprisco the friction coefficient f will
be set to a value depending on the parameter g of that law.
If no neigbouring elements with appropriate material law are found,
then f will be set to 0.2.
The index specifies the element_group, see element_group.
6.192 group_groundflow_capacity index C
Capacity for ground water flow.
The index specifies the element_group, see element_group.
6.193 group_groundflow_materidivergence index switch
If switch is set to -yes, then the material divergence
part ¶ v/¶ xi in the groundflow storage equation
is used in the analysis.
If switch is set to -no it is not used.
Default switch is -yes.
The index specifies the element_group, see element_group.
6.194 group_groundflow_permeability index pex pey pez
Permeability coefficient in ground water flow, in each space direction.
In 1D you only should specify pex, etc.
The index specifies the element_group, see element_group.
6.195 group_integration_method index method
Here method sets the integration method for bars, quads en hexa elements.
You can either set method to -gauss or -lobatto.
If this record is not set, the default method as described
in group_integration_points is chosen.
6.196 group_integration_points index type
Here type sets the number of integration points in an element.
It should be set to -normal, -minimal or to -maximal.
For -tria3 elements and -tet4 elements, the integration
point will be located in the middle with -minimal integration,
or the integration points are located in the nodes with -maximal integration.
For -tria6 elements and -tet10 elements, the integration
point will be located in the in the nodes,
irrespective of this group_integration_points record.
For other elements, if -minimal is used then
the number of integration points in a direction is set equal to
the number of nodes in the direction minus 1, and gauss integration is used.
If for the other elements -maximal is used then
the number of integration points in a direction is set equal to
the number of nodes in the direction, and lobatto integration is used.
Default -minimal is used for -bar2, -tria3 and -tet4 elements;
it is default -maximal otherwise.
If type is set to -normal, the default integration will be used.
For third or higher order elements (-bar4, -quad16, etc.)
you always need to use -minimal if materi_velocity is initialized.
The index specifies the element_group, see element_group.
6.197 group_materi_damage_mazars index e0
at bt ac bc b
Parameters for the Mazars damage law.
The index specifies the element_group, see element_group.
6.198 group_materi_damping index d
Material damping coefficient.
The index specifies the element_group, see element_group.
6.199 group_materi_density index density
Density for material flow equation.
This may be overruled by specifying the density as
an unknown in the initialization part.
The index specifies the element_group, see element_group.
6.200 group_materi_density_groundflow index density_wet density_dry
Density for material flow equation when a calculation is performed in combination
with groundflow.
In case an element is above the phreatic level,
as specified by groundflow_phreaticlevel_bounda,
the density_dry will be used.
In case an element is below the phreatic level, the density_wet will be used.
In case the groundflow_phreaticlevel_bounda is not specified,
the density_wet will be used.
The index specifies the element_group, see element_group.
6.201 group_materi_elasti_camclay_g index G
Elastic data G for the modified CamClay model.
The index specifies the element_group, see element_group.
6.202 group_materi_elasti_camclay_poisson index n
Elastic data n for the modified CamClay model.
This option is alternative to the group_materi_elasti_camclay_g option
(so, only one of both can be defined).
With this option the poisson ratio n is assumed constant, and is used as follows:
G = |
|
K ( 1 - 2 n ) / ( 1 + n )
|
The index specifies the element_group, see element_group.
6.203 group_materi_elasti_compressibility index co
Compressibility for materials.
The index specifies the element_group, see element_group.
6.204 group_materi_elasti_lade index B R l
Elastic data B-0, R, l for the Lade model.
The index specifies the element_group, see element_group.
6.205 group_materi_elasti_poisson index poisson
Poisson ratio for solid. The index specifies the element_group,
see element_group.
6.206 group_materi_elasti_transverse_isotropy index dir_0 dir_1 dir_2
Caaaa Cbbbb
Caabb Cabab Cbcbc
Specifies the unique direction (dir_0 dir_1 dir_2)
and the elastic moduli in the transverse isotropic model.
The index specifies the element_group, see element_group.
6.207 group_materi_elasti_volumetric_poisson index n
See group_materi_elasti_volumetric_young_values
6.208 group_materi_elasti_volumetric_young_order index n
See group_materi_elasti_volumetric_young_values
6.209 group_materi_elasti_volumetric_young_values
index e_0 s_0 e_1 s1 ...
This is a special record to model the volumetric stress part of a nonlinear material,
given the experimental results of a volumetric compression test (compression in one direction,
fixed size in other two directions).
The table e_0 s_0 e_1 s1 ... specifies
the strain-stress results for the volumetric compression test.
Together with the poisson ratio as specified in group_materi_elasti_volumetric_poisson,
an isotropic law in a nonlinear Young's modulus and a constant poisson ratio
is fitted to this experiment.
The Young modulues in fact is taken as the polynomial
expansion E0 + E1 e + E2 e2 + ... + En-1 en-1 where
n denotes the order of the polynomial expansion (as given
in group_materi_elasti_volumetric_young_order).
The poisson ratio should be taken very high, say 0.4999999 or so,
to ensure that the resulting law only models volumetric stresses.
Then afterwards a normal young-poisson isotropic law (group_materi_elasti_young
and group_materi_elasti_poisson) can be added to get an extra deviatoric part.
6.210 group_materi_elasti_young index E
Young's modulus for solid material.
The index specifies the element_group, see element_group.
6.211 group_materi_elasti_young_polynomial index E0 E1 ...
Polynomial parameters for strain dependent Young's modulus for solid material.
See the theory part.
The index specifies the element_group, see element_group.
6.212 group_materi_elasti_young_power index p0 E0 a
Power law Young's modulus for solid material.
See the theory part.
The index specifies the element_group, see element_group.
6.213 group_materi_expansion_linear index a
Linear expansion coefficient.
The index specifies the element_group, see element_group.
6.214 group_materi_expansion_volume index b
Volume expansion coefficient.
The index specifies the element_group, see element_group.
6.215 group_materi_failure_cruching index threshold
delete_time
If the compression strain in an element exceeds
threshold, the element is considered to be fail.
The element will be slowly deleted.
It is totally deleted if the delete_time has passed.
The index specifies the element_group, see element_group.
6.216 group_materi_failure_damage index threshold delete_time
If the damage in an element exceeds
threshold, the element is considered to be fail.
The element will be slowly deleted.
It is totally deleted if the delete_time has passed.
The index specifies the element_group, see element_group.
6.217 group_materi_failure_plasti_kappa index threshold delete_time
If the plastic parameter kappa in an element exceeds
threshold, the element is considered to be fail.
The element will be slowly deleted.
It is totally deleted if the delete_time has passed.
The index specifies the element_group, see element_group.
6.218 group_materi_failure_rupture index threshold
delete_time
If the tensile strain in an element exceeds
threshold, the element is considered to be fail.
The element will be slowly deleted.
It is totally deleted if the delete_time has passed.
The index specifies the element_group, see element_group.
6.219 group_materi_failure_voidfraction index threshold delete_time
If the void fraction in an element exceeds
threshold, the element is considered to be fail.
The element will be slowly deleted.
It is totally deleted if the delete_time has passed.
The index specifies the element_group, see element_group.
6.220 group_materi_hyper_besseling index K1 K2 a
Parameters for Besseling Hyper elastic rubber model.
The index specifies the element_group, see element_group.
6.221 group_materi_hyper_blatz_ko index G b
Parameters for Blatz-Ko model.
The index specifies the element_group, see element_group.
6.222 group_materi_hyper_mooney_rivlin index K1 K2
Parameters for Mooney-rivlin hyper elastic rubber model.
The index specifies the element_group, see element_group.
6.223 group_materi_hyper_neohookean index K1
Parameter for Neo-Hookean hyper elastic rubber model.
The index specifies the element_group, see element_group.
6.224 group_materi_hyper_reducedpolynomial index K1
K2 ...
Parameters for reduced polynomial hyper elastic rubber model.
The index specifies the element_group, see element_group.
6.225 group_materi_hyper_volumetric_linear index K
Parameter for the linear volumetric hyperelasticity model.
The index specifies the element_group, see element_group.
6.226 group_materi_hyper_volumetric_murnaghan index K b
Parameter for the murnaghan volumetric hyperelasticity model.
The index specifies the element_group, see element_group.
6.227 group_materi_hyper_volumetric_ogden index K b
Parameter for the ogden volumetric hyperelasticity model.
The index specifies the element_group, see element_group.
6.228 group_materi_hyper_volumetric_polynomial index
K_0 K_1 ...
Parameters for the polynomial volumetric hyperelasticity model.
The index specifies the element_group, see element_group.
6.229 group_materi_hyper_volumetric_simotaylor index K
Parameter for the simo-taylor volumetric hyperelasticity model.
The index specifies the element_group, see element_group.
6.230 group_materi_maxwell_chain index E_0 t_0 ...E_n-1 t_n-1
In total n parallel maxwell chains are defined with stiffness E_0,
relaxation time t_0, etc..
file=ps/maxwell.ps,width=3cm,angle=-90
The number n should equal
materi_maxwell_stress in the input initialization part.
The index specifies the element_group, see element_group.
6.231 group_materi_membrane index switch
If switch is set to -yes the zz stress becomes zero
in 2D and the yy and zz stress become zero in 1D (in combination with
axi-symmetry in 1D, only the yy stress becomes zero since zz
is the axi-symmetric direction).
If group_materi_membrane is not used the plane strain conditions are used.
Always the z-thickness is 1. in 3D, and the y, and z-thickness
are 1. in 2D; see however also volume_factor.
The group_materi_membrane option cannot be used in combination with
group_materi_elasti_compressibility, group_materi_hyperelasticity
and group_materi_viscosity.
The index specifies the element_group, see element_group.
6.232 group_materi_memory index memory_type
Either memory_type should be set to -updated,
-updated_without_rotation, -total,
-total_piola or -total_linear.
See the theoretical part for some explanation.
For a simple linear total Lagrange solid the input file may look like
...
materi_velocity
materi_displacement
materi_strain_total
materi_stress
end_initia
...
group_materi_memory 0 -total_linear
group_materi_elasti_young 0 ...
...
end_data
For a large deformation total Lagrange solid with a straightforward decomposition
of the deformation tensor into a rotation tensor and a stretch tensor
the input file may look like
...
materi_velocity
materi_displacement
materi_strain_total
materi_stress
end_initia
...
group_materi_memory 0 -total
group_materi_elasti_young 0 ...
...
end_data
For a large deformation total Lagrange solid with Piola-Kirchoff stresses
and Green-Lagrange strains the input file may look like
...
materi_velocity
materi_displacement
materi_strain_total
materi_stress
end_initia
...
group_materi_memory 0 -total_piola
group_materi_elasti_young 0 ...
...
end_data
For an updated Lagrange solid the input file may look like
...
materi_velocity
materi_strain_total
materi_stress
end_initia
...
node 1 ...
node 2 ...
...
(use -updated_without_rotation to neglect rigid body rotation)
group_materi_memory 0 -updated
group_materi_elasti_young 0 ...
...
end_data
For a fluid the input file may look like
...
materi_velocity
materi_stress
end_initia
...
(use eulerian mesh)
options_mesh -fixed_in_space
...
node 1 ...
node 2 ...
...
group_materi_memory 0 -updated_without_rotation
group_materi_viscosity 0 ...
group_materi_elasti_compressibility 0 ...
...
end_data
The index specifies the element_group, see element_group.
6.233 group_materi_plasti_boundary index group_0 group_1
With this record you can model frictional slip of soil material and alike
granular materials on other materials like concrete, steel, etc.
This is done by reducing the friction angle phi and diletance angle phiflow
and cohesion c of the granular material with a factor (2./3.).
The reduction is done for records group_materi_plasti_mohrcoul and
group_materi_plasti_druckprag, if specified.
The index specifies the element_group of the granular material, see element_group.
With group_0 , group_1 etc. you can specify the groups of the concrete material,
steel material etc.
The reduction of the friction angle and diletance angle will only be applied
to the granular elements (of element_group) which are a direct neighbour of
an element which has one of the groups group_0 , group_1 etc.
Please realise that this method only works well if the finite elements
are not too large.
See also group_materi_plasti_boundary_factor.
6.234 group_materi_plasti_boundary_factor index factor
With this record you can specify a factor other then the default 2./3.
used by the group_materi_plasti_boundary record.
The index specifies the element_group of the granular material, see element_group.
6.235 group_materi_plasti_camclay index M k l
Plastic data M, k and l for the modified CamClay model.
The index specifies the element_group, see element_group.
6.236 group_materi_plasti_cap index c f a R
evp pb ...
Plastic data for the modified cap plasticity model.
The evp pb ... represents a table with evp versus pb
values; at least two sets of values need to be specified.
The index specifies the element_group, see element_group.
6.237 group_materi_plasti_compression index sigy
Yield data for compression plasticity.
The index specifies the element_group, see element_group.
Condition: materi_strain_plasti should be initialized.
6.238 group_materi_plasti_diprisco index
g bf bp cp tp qc
qe xc xe bf0 C
Yield data for di Prisco plasticity.
The index specifies the element_group, see element_group.
Condition: materi_strain_plasti should be initialized.
6.239 group_materi_plasti_druckprag index phi c phiflow
Both yield data and flow data (indicated by the word flow) for
Drucker-Prager plasticity.
Choose phi and phiflow in between 0 and p/2.
The index specifies the element_group, see element_group.
Condition: materi_strain_plasti should be initialized.
6.240 group_materi_plasti_druckprag_tensioncutoff index switch
The normal group_materi_plasti_druckprag does only limit
shear forces, and doesn't care about any tension stresses.
That normally isn't a problem since in geotechnical calculations the stress are
compressive anyway.
With this group_materi_plasti_druckprag_tensioncutoff you can cutoff,
however, any tensile stresses beyond the apex.
Activate this by setting switch to -yes.
Activating this cutoff option may lead to a more troublesome convergence behavior.
6.241 group_materi_plasti_gurson index sigy q1 q2 q3
Yield data (also used as flow data) for Gurson plasticity.
The index specifies the element_group, see element_group.
6.242 group_materi_plasti_hlc index sigy m21 m22 m23 m1
Yield data (also used as flow data) for HLC plasticity.
The index specifies the element_group, see element_group.
6.243 group_materi_plasti_heatgeneration factor
This factor specifies how much of the plastic energy loss
is transformed into heat (this only makes sense if
condif_temperature is initialized).
The factor should be between 0 and 1.
The index specifies the element_group, see element_group.
6.244 group_materi_plasti_hypo_cohesion index c
Cohesion parameter in hypoplastic law; see the theory section.
The index specifies the element_group, see element_group.
6.245 group_materi_plasti_hypo_intergranularstrain
index R mR mT br c
Intergranular strain parameters in hypoplastic law; see the theory section.
The index specifies the element_group, see element_group.
6.246 group_materi_plasti_hypo_pressuredependentvoidratio index switch
If switch is set to -yes the initial void ratio is corrected for
pressure dependency; see the theory section.
The index specifies the element_group, see element_group.
6.247 group_materi_plasti_hypo_wolffersdorff
index j hs n ec0 ed0 ei0 alpha beta
Von-Wolffersdorf parameters in hypoplastic law; see the theory section.
Here j is in degrees.
The index specifies the element_group, see element_group.
Attention: you need to initialize 4 history variables for application
of this hypoplasticity model.
The first history variable contains the void ratio, and should be initialized
by initially specifying node_dof records.
The second history variable will be filled with the time step size of
an internally used sub-stepping algorithm for hypoplasticity;
this is meant for postprocessing only.
The third history variable will be filled with the mobilized friction angle;
this is meant for postprocessing only.
The fourth history variable will be filled with the a measure of the effective stiffness
following from the hypoplasticity law ( Mijkl Mijkl ).
this is meant for postprocessing only.
6.248 group_materi_plasti_kinematic_hardening index a
This record specifies the size of the rate of the kinematic
hardening matrix rij.
The index specifies the element_group, see element_group.
6.249 group_materi_plasti_matsuokanakai index phi c phiflow
Both yield data and flow data (indicated by the word flow) for
Matsuoka-Nakai plasticity.
Choose phi and phiflow in between 0 and p/2.
The index specifies the element_group, see element_group.
6.250 group_materi_plasti_mohrcoul index phi c phiflow
Both yield data and flow data (indicated by the word flow) for
Mohr-Coulomb plasticity.
Choose phi and phiflow in between 0 and p/2.
The index specifies the element_group, see element_group.
6.251 group_materi_plasti_mohrcoul_softening index phi_0 c_0 phiflow_0
phi_1 c_1 phiflow_1 kappa_crit
Both yield data and flow data (indicated by the word flow) for
Mohr-Coulomb softening plasticity.
See the theoretical part.
Choose each of the angles phi_0 phiflow_0 phi_1 phiflow_1 in
between 0 and p/2.
The index specifies the element_group, see element_group.
6.252 group_materi_plasti_mohrcoul_tensioncutoff index switch
The normal group_materi_plasti_mohrcoul does only limit
shear forces, and doesn't care about any tension stresses.
That normally isn't a problem since in geotechnical calculations the stress are
compressive anyway.
With this group_materi_plasti_mohrcoul_tensioncutoff you can cutoff,
however, any tensile stresses beyond the apex.
Activate this by setting switch to -yes.
Activating this cutoff option may lead to a more troublesome convergence behavior.
6.253 group_materi_plasti_tension index sigy
Yield data for tension plasticity.
The index specifies the element_group, see element_group.
Condition: materi_strain_plasti should be initialized.
6.254 group_materi_plasti_user index switch
If switch is set to -yes
the user supplied routine for plasticity is called.
See also the file user.cc in the distribution.
The index specifies the element_group, see element_group.
6.255 group_materi_plasti_visco_always index switch
This record specifies if the visco-plasticity yielding, for the viscoplastic law with
the same index, is used for all values of the yield function (both positive and negative)
or only for positive values of the yield function.
If switch is set to -yes then viscoplastic yielding is used for all
values of the yield function f.
If switch is set to -no then viscoplastic yielding is nonly used for positive
values of the yield function f.
If this group_materi_plasti_visco_always record is not specified, the
switch is assumed to be -no.
The index specifies the element_group, see element_group.
6.256 group_materi_plasti_visco_exponential index g a
This record specifies visco-plasticity data for the exponential model. It should be used in combination with a plasticity model.
The index specifies the element_group, see element_group.
6.257 group_materi_plasti_visco_power index h p fref
This record specifies visco-plasticity data for the power model. It should be used in combination
with a plasticity model.
The index specifies the element_group, see element_group.
6.258 group_materi_plasti_vonmises index sy0
Yield data for Von-Mises plasticity.
The index specifies the element_group, see element_group.
Condition: materi_strain_plasti should be initialized.
6.259 group_materi_plasti_vonmises_nadai index C k0 n
Data for Von-Mises Nadai hardening.
The sy0 of the group_materi_plasti_vonmises record is taken as
sy0 in the nadai law.
The index specifies the element_group, see element_group.
Condition: materi_plasti_kappa should be initialized.
6.260 group_materi_stokes index switch
If switch is set to -yes, then stokes flow is used.
The index specifies the element_group, see element_group.
6.261 group_materi_viscosity index n
Viscosity for Newtonian flow. The index specifies the element_group,
see element_group.
6.262 group_materi_viscosity_user index switch
If switch is set to -yes, the user supplied routine
for the viscosity for Newtonian flow is used.
The index specifies the element_group, see element_group.
6.263 group_materi_viscosity_bingham index sy g m
Parameters for the non-Newtonian bingham viscosity law.
The index specifies the element_group, see element_group.
6.264 group_materi_viscosity_exponential index n0 m
Parameters for the non-Newtonian exponential viscosity law.
The index specifies the element_group, see element_group.
6.265 group_materi_viscosity_heatgeneration switch
If switch is set to -yes,
then viscous dissipation will be used as a heat generation source.
See also the theoretical part at the start of this manual.
The index specifies the element_group, see element_group.
6.266 group_spring_direction index dir_x dir_y dir_z
Direction of a spring.
If this direction is specified, it used to determine the elongation of the
spring in this direction.
If this record is not specified, the direction is taken to be from the first
node of the spring to the second node.
The index specifies the element_group, see element_group.
6.267 group_spring_plasti index Fy
Maximum force in a spring.
The index specifies the element_group, see element_group.
6.268 group_spring_stiffness index k
Stiffness of a spring.
It is multiplied with the elongation of the spring to calculate the
spring force.
The index specifies the element_group, see element_group.
6.269 group_time index birth death
With this option you can set the time of birth of the elements (in group index) and the time of death of the elements.
Out of the range birth - death the elements of the group
will not be used in the calculation (the starting birth limit itself
is not included in the range, whereas the ending death limit itself is
included).
6.270 group_truss_area index A
Cross-sectional area for a truss.
The index specifies the element_group, see element_group.
6.271 group_truss_density index r
Density for a truss.
The index specifies the element_group, see element_group.
6.272 group_truss_memory index memory_type
Memory model for truss; either -updated_without_rotation or -updated.
The -updated model is a geometrically nonlinear model which takes large
truss rotations into account.
The index specifies the element_group, see element_group.
6.273 group_truss_rope index switch
The truss will act as a rope if switch is set to -yes.
This means that negative forces will not be allowed (the force remains
zero in compression).
The index specifies the element_group, see element_group.
6.274 group_truss_plasti index sy
Yield stress for truss.
The actual stress cannot exceed the yield force.
The index specifies the element_group, see element_group.
6.275 group_truss_young index E
Young's modulus for a truss.
The truss force F is F = E A D u, where D u is
the elongation of the truss.
The index specifies the element_group, see element_group.
See also group_truss_young and group_truss_area.
6.276 group_type index type_name_0 type_name_1 ...
With this record a differential equation is specified for
the element group index. Allowed type names
are -condif, -groundflow, -materi, -wave,
-spring, -truss, -beam and -trussbeam.
Also -empty is allowed; it indicates that the element is empty.
See also element_group.
6.277 group_user_umat index switch
Set switch to -yes if you want to use a umat.c routine.
The index specifies the element_group, see element_group.
See also the user supplied subroutines section and group_user_data.
6.278 group_user_data index ...
Data values which will become available for user supplied subroutines.
The index specifies the element_group, see element_group.
See also: the user supplied subroutines section and group_user_umat.
6.279 group_volume_factor index factor
In 1D or 2D you can specify the cross-section and thickness respectively,
for elements of the element group index (see element_group).
See also volume_factor.
6.280 group_wave_speed_of_sound index c
Speed of sound in wave equation.
The index specifies the element_group, see element_group.
6.281 inverse_iterations number_of_iterations
Number of iterations for inverse modeling of parameters.
In each iteration the total time history as defined by the control_timestep
records will be applied. Moreover, it will be applied for the current
estimate of the parameters and once for each parameter varied a bit
(see inverse_variation); in this way, the sensitivity of the target data
with respect to the parameters is determined. At the end of the iteration,
these sensitivities are used to determine new estimates for the parameters.
In case of problems consider using inverse_parameter_step.
See also: inverse_target.
6.282 inverse_iteration_number index number
This record will be filled with the number of inverse iteration.
This comes handy in printing (see control_print).
6.283 inverse_parameter index data_item_name
data_item_index data_item_number
Selects a parameter which is to be determined by inverse modeling.
Condition: the parameter value should not be 0.
See also: inverse_target.
6.284 inverse_parameter_limits index lower_value
higher_value
Specifies the lower and higher allowed value for the
inverse_parameter (with the same index).
Default no limits are used.
6.285 inverse_parameter_step index size
The inverse parameter may be adjusted too much in each inverse iteration,
such that the inverse process becomes unstable.
This record allows you to set a maximum to the adjustment
of the inverse_parameter (with the same index).
Specifying small values (near 0) for size gives a stable but slow
inverse process.
Default, size is 1.0e10.
6.286 inverse_parameter_variation index variation
Specifies the factor by which the inverse_parameter (same index)
is varied a bit to determine the sensitivity of the targets
with respect to the parameter.
A relative variation is used: (varied factor = (1+variation)*factor.
On the one hand, it is of importance to use a variation small enough to get a good
approximation of the sensitivity of the targets with respect to the
parameter.
On the other hand the variation should not be such small that we
run into problems with the computer accuracy.
Default, variation is 1. 10-4.
See also inverse_target.
6.287 inverse_target index data_item_name
data_item_index data_item_number
This record, in combination with the inverse_target_data record
with the same index, allows you to specify target data (e.g. experimental data
to determine model parameters or required data for optimization)
to be used in the inverse modeling.
Parameters will be determined by least squares minimization, i.e. the sum
S ( penalty ( actual_value - target_value ) ) 2
is minimized (penalty and target_value are the penalty factor and
target value, see inverse_target_data).
In the example below, the temperature (2.33) at node
3 and the temperature (80.2) at post point 10 were measured and are used for
inverse modeling of the conductivity.
Both experimental results are imposed with a penalty factor 100 in the
inverse modeling. In total 20 iterations are used to estimate the conductivity.
The initial estimate for the conductivity needs to be specified via
the group_condif_conductivity record; while iterating this record will be updated
with new estimates.
...
condif_temperature
end_initia
...
inverse_target 1 -node_dof 3 -temp
inverse_target_data 1 2.33 100.
inverse_target 2 -post_point_dof 10 -temp
inverse_target_data 2 80.2 100.
inverse_parameter 0 -group_condif_conductivity 0 0
inverse_iterations 0 20
...
end_data
6.288 inverse_target_data index target_value penalty
Specifies the target_value (required value) and penalty (penalty factor
in least squares minimization) for the inverse_target record with
the same index.
A special format index lower_value higher_value penalty is available
which allows for putting limits on targets; if the actual value is in between
the lower_value and higher_value it considered to be ok;
if the actual value is lower than lower_value than the lower value
becomes the target value and is imposed with the penalty factor; likewise
for higher_value.
6.289 inverse_target_timestep index timestep_index
With this record you can specify at the end of which control_timestep record
the inverse_target record (with the same index) should be evaluated.
This is useful if transient information is needed for the inverse modeling.
Default, the inverse_target is evaluated after the last control_timestep
record.
6.290 materi_diffusion_minimum c_minimum
Minimal value for artificial diffusion.
Above this minimal value, an element is considered to be filled with material.
Below this minimal value, an element is considered to be empty.
See also: the initialization of materi_diffusion in the initialization part.
6.291 node index coord_0 coord_1 coord_2
Coordinates of node index. In 1D, only coord_0 should be
specified, etc..
You are not allowed to put free nodes (not attached to any element)
in your model.
These free nodes will be removed automatically.
6.292 node_boundary index switch
The index corresponds to a node.
The node is assumed to be located on the boundary
of the domain if this record is specified.
You can set switch is set to -yes.
For the options control_mesh_remesh, control_new_mesh
and the contact algorithm it is necessary to give all the nodes on the boundary.
These node_boundary records can also be referred to
by geometry_set records.
It is not allowed to give all nodes of one element node_boundary records.
6.293 node_damping index damping_x damping_y
damping_z
This record adds a discrete damper to node index in x, y and
z direction respectively.
In 1D only damping_x needs to be specified, etc.
The damper will lead to a nodal force of the size damping_x * v_x
where v_x is the velocity in x direction.
The same holds for the y and z direction.
6.294 node_dof index dof_0 dof_1 ...
dof_0 dof_1 ... are the degrees of freedom (unknowns) at the node
with number index. The total number and type of the unknowns depends
on the initialization part. Each node has the same unknowns.
Unknowns like pressure, temperature, etc. are primary unknowns.
The other unknowns, space derivatives and the time derivative,
are not primary unknowns.
In the example below, -temp is 1., -xtemp is 0.2 and
-ttemp is 0.1 in node 6
...
number_of_space_dimensions 1
derivatives
condif_temperature
end_initia
...
node_dof 6 1.0 0.2 0.1
...
Default all values in the node_dof
records are set zero at the start of the calculation.
See also: dof_label and post_point.
6.295 node_dof_calcul index ...
See post_calcul.
6.296 node_dof_start_refined index dof_0 dof_1 ...
This record will be filled with dof_0 dof_1 ..., which are
the degrees of freedom (unknowns) as specified at the start of the calculation.
at the node with number index.
If the mesh has been refined, these start values hold for the refined mesh.
See also node_dof and node_start_refined.
6.297 node_eigen index unknown_0 unknown_1 ...unknown_0 unknown_1 ...
Eigenvector for node index for the principal unknowns.
First the results for the unknowns for the first eigen mode are given.
Then the results for the unknowns for the second eigen mode are given. Etc.
Only the principal unknowns of these unknowns have been actually
solved in the eigen problem.
See also control_eigen and the principal unknowns listed in
the initialization part.
6.298 node_mass index mass_x mass_y mass_z
This record adds a discrete mass to node index
in x, y and z direction.
In 1D only the x-mass needs to be specified, etc.
The mass will lead to a nodal force of the size mass_x * v
where v_x is the acceleration, and to a gravity
force if force_gravity is specified.
The same holds for the y and z direction.
6.299 node_rhside index rhside_0 rhside_1 ...
This record will contain after the calculations
Fexternal - ( Fstatic + Finertia + Fdamping )
Here Fexternal are the external forces resulting
from bounda_force records, Fstatic are the internal
static forces (elastic forces, ..), Finertia are the
internal inertia forces (mass, capacity, ..) and Fdamping
are the internal damping forces.
For the temperature equation, this will give the heat flow
normal to the outer surface (the heat flux to the environment) at prescribed
temperatures.
For velocity unknowns, this will give the force vector at prescribed
displacements.
For the pressure in the ground flow equation, this will give
the ground flow to the environment at prescribed pressures.
6.300 node_start_refined index coord_0 coord_1 coord_2
After the calculation, this record will contain coordinates of node index
as specified at the start of the calculation.
If the mesh has been refined this record with contain the start coordinates for
the refined mesh.
In 1D, only coord_0 is filled, etc..
6.301 node_stiffness index stiffness_x stiffness_y
stiffness_z
This record adds a discrete stiffness to node index in x, y and
z direction respectively.
In 1D only stiffness_x needs to be specified, etc.
The stiffness will lead to a nodal force of the size stiffness_x * u_x
where u_x is the displacement in x direction.
The same holds for the y and z direction.
Condition: also materi_velocity_integrated or materi_displacement should be initialized.
6.302 options_convection switch
If switch is set to -yes, the convection of a material with respect
to the mesh is allowed.
If switch is set to -no, the convection of a material with respect
to the mesh is not allowed.
This is done for all timesteps.
Default switch is set to -yes.
See also control_options_convection.
6.303 options_elementloop switch
If switch is set to -no the evaluation of elements in the element loop
will not be done.
This is meant for testing purposes only.
6.304 options_inertia switch
If switch is set to -yes, inertia terms are included (material mass, heat capacity, ..).
If switch is set to -no, inertia is not included.
This is done for all timestep records.
Default switch is set to -yes.
See also control_options_inertia.
6.305 options_matrix_group switch
If switch is set to -yes then the element matrices are stored per
group (and not per element).
This saves memory.
It is only possible to use this, however, if the element matrices in a group are really the
same (typically in a linear calculation in a regular mesh with elements of the
same size and the same shape per group).
6.306 options_matrix_length matrix_length
Tochnog normally allocates much (and enough) memory to store element matrices.
Especially in 3D calculations with high order elements, the allocated memory
size may be eccesive large.
Then you can set matrix_length with this options_matrix_length record to a low value,
which will be used for memory allocation.
If this value matrix_length would be too small to store the element
matrices, you will be automatically warned and asked to make the value higher.
6.307 options_mesh specifier_x specifier_y specifier_z
If specifier_x is set to -fixed_in_space, the nodal points of the mesh remain fixed in space in x-direction.
If a specifier_x is set to -follow_material, the nodal points of the mesh will follow material displacements in x-direction.
The same holds for the other directions.
In 1D, you only need to give specifier_x, etc.
Default each specifier is set to -follow_material.
This record options_mesh only is used if materi_velocity is initialised.
If materi_displacement is initialized however, each specifier is automatically
set to -fixed_in_space.
6.308 options_nonlocal nonlocal_radius
By specifying this record in combination with a viscoplastic model
, like group_materi_plasti_visco_power,
a nonlocal yield rule fn will be used in the viscoplastic law.
The nonlocal yield rule needs to be initialized as unknown
by the materi_plasti_f_nonlocal record in the
initialization part.
The nonlocal yield rule fn in a point is determined by an averaging
of the local yield rule f in neighbouring points and using
gauss weighting functions for this (i.e. the larger the distance the less
the neighbouring point contributes to the nonlocal yield rule).
The averaging is done over a region with radius nonlocal_radius.
In this way, you can prevent unlimited localization and so mesh dependency,
in calculations with softening plasticity.
6.309 options_processors index nproc
With this record you can set the number of CPUs you want to use (nproc).
If your TOCHNOG implementation does not allow for more processors, this
record is ignored.
In fact, not the number of processors but the number of threads is set
(that is, if you use 2 threads while your system only supports 1 processor
than those threads are split over that single processor).
You can also set an environment symbol
TOCHNOG_OPTIONS_PROCESSORS to nproc.
In this way, you do not need to set the number of processors in each input file separately.
Error messages may become confusing when you use more than one processor.
Default nproc is 1.
6.310 options_relaxation relax_0 relax_1 ...
Relaxation parameters for adjusting unknowns in iterations.
This can stabilize the calculation.
By example, a relaxation parameter of 0.1 means that the corresponding unknown
is now completely updated with the iterative change, but only 10 percent of
the change is actually applied in a iteration.
If enough iterations are used, the relaxation parameters with not influence
the final solution.
You should specify a relaxation parameter term for each principal unknown
which is present in the calculation (see the start of the
data part description for a list of principal unknowns;
these are velocities, temperature, etc.).
The relaxation is used for all timesteps.
See also control_options_relaxation.
6.311 options_residuefactor factor_0 factor_1 ...
While determining the residue in the differential equations -res for the
node_dof records, the contribution for
each primary unknown equation can be multiplied with a separate factor.
Here factor_0 is the factor for the
first principal unknown, factor_1 is the factor for the
second principal unknown, etc. A factor should be specified
for each principal unknown.
With these factors you can put special importance on the equation for one
(or several) principal unknowns.
If this record is not specified, all factors are taken to be 1.
6.312 options_skip_plasticity switch
If switch is set to -yes, any plasticity data in the input file will be ignored.
This is done for all timesteps.
This option is convenient for testing your input file just linear, without the need
to outcomment each and every part with plasticity data.
See also control_options_skip_plasticity.
6.313 options_solver solver
You can set here the solver type to one of diagonal,
matrix_iterative_bicg, matrix_iterative_petsc or materi_superlu.
The solver set here holds for the entire calculation (as opposed
to the control_options_solver which only holds for the corresponding time steps).
In fact, each control_options_solver will be overwritten by a specified options_solver.
You can also set an environment symbol
TOCHNOG_OPTIONS_SOLVER to solver, by example to -matrix_superlu.
In this way, you do not need to set the solver type in each input file separately.
6.314 options_stabilization switch
Because of finite discretisation sometimes unrealistic results may be obtained (wiggles, etc.).
If switch is set to -static, results are stabilized with a scheme which assumes that you are looking for the static (time independent) solution.
If switch is set to -dynamic, results are stabilized with a scheme which assumes that you are looking for the dynamic (transient) solution.
If switch is set to -no, no stabilization is used.
Default switch is set to -static.
Warning: this default -static scheme may give bad results for transients calculations.
6.315 post_calcul unknown operat ...
This records activates calculation post results.
Here unknown can be one of the matrices -materi_stress, -materi_strain_elasti,
-materi_strain_plasti, -materi_strain_total
or unknown can be one of the vectors -materi_velocity, -materi_displacement,
or unknown can be one of the scalars -condif_temperature, -groundflow_pressure.
The results of these calculations are stored for each
node_dof record in a node_dof_calcul record,
and are stored for each post_point_dof record in a
post_point_dof_calcul record,
and are stored for each post_line_dof record in a
post_line_dof_calcul record,
and are stored for each post_quadrilateral_dof record in a
post_quadrilateral_dof_calcul record.
We denote a matrix unknown with Aij
and denote a vector unknown with Ai,
and denote a scalar unknown with a.
If operat is -prival then three principal values
of a matrix Aij are calculated.
Each principal value contains the size of the principal vector.
The principal values are ordered (the first value is the largest one,
and the last value is the smallest one).
If operat is -privec then three principal vectors
of a matrix Aij are calculated.
Each principal vector contains the x, y and z component of
the principal vector. The same ordering as used for -prival is used
here also.
If operat is -average then
1/3 ( A11 + A22 + A33 ) is calculated for a matrix
or 1/3 ( A1 + A2 + A3 ) is calculated for a vector.
If operat is -absol then
the absolute value of a scalar a is calculated.
If operat is -positive then
the average of the positive principal values
for a matrix is calculated.
If materi_strain_plasti is taken for the matrix Aij,
then this operator typically can be used as a measure for the
amount of tensile failure (cracking).
If operat is -negative then
the average of the negative principal values
for a matrix is calculated.
If materi_strain_plasti is taken for the matrix Aij,
then this operator typically can be used as a measure for the
amount of compression failure (crunching).
If operat is -sizetot then
0.5 Aij Aij is calculated for a matrix or
0.5 Ai Ai is calculated for a vector.
This measures the size of a matrix or the size of a vector.
If operat is -sizedev then
0.5 Bij Bij is calculated
where Bij is the deviatoric part of a matrix Aij:
Bij = Aij - dij A11+A22+A33/3 where
dij is 1 if i=j and is 0 otherwise.
This measures the size of the deviatoric part of the matrix.
Specially for geotechnics you can set operat to -phimob
in case unknown is -materi_stress.
Then the 'mobilised friction angle' is calculated in degrees.
It is default calculated without taking cohesion into account.
Specially for geotechnics you can set operat to -total
in case unknown is -materi_stress.
Then the total stress is calculated from the effective stress and
the groundflow total pressure.
Specially for geotechnics you can set operat to -static
in case unknown is -groundflow_pressure.
Then the static pressure is calculated.
Specially for geotechnics you can set operat to -dynamic
in case unknown is -groundflow_pressure.
Then the dynamic pressure is calculated.
Specially for geotechnics you can set operat to -total
in case unknown is -groundflow_pressure.
Then the total pressure is calculated.
The next piece of input file
...
materi_stress
materi_strain_plasti
end_initia
...
post_calcul -materi_stress -sizedev -materi_strain_plasti -sizetot
...
control_timestep 1 ...
control_print 1 -node_dof_calcul
will print records like
node_dof_calcul index 0.2 1.1e-4
Here the 0.2 is the equivalent Von Mises stress and 1.1e-4 measures
the plastic strain matrix.
6.316 post_error_item index data_item_name
data_item_index number
By means of this record, you can specify a data record for which the
error in its value needs to be estimated.
The error is estimated as follows.
The value for the data item will be remembered just before each
mesh refinement (with control_mesh_refine_locally
or control_mesh_refine_globally).
The last 2 stored values and the current value
are used create an estimated value .
The error percentage is defined as:
100 |
actual_value - estimated_value |
|
estimated_value |
|
The percentage will be placed in the post_error_result,
with the same index.
A typical example looks like:
...
post_error_item 1 -post_point_dof 1 -velx
...
control_mesh_refine_globally 10 ...
...
timesteps 20 ...
...
control_repeat_until_item 30 10 -value -post_error_result 1 0
control_repeat_until_tolerance 30 5.
...
This asks for the estimation of the error in the x-velocity at a point.
It is used to determine automatically the number of refinements,
by requiring that the error should become less than 5 percent.
A final remark.
The values used for the error estimation
will not be stored if the mesh refinement takes
place at the start of the calculation, since that mesh
contains normally not useful information.
6.317 post_error_result index percentage
See post_error_item.
6.318 post_integrate index
data_item_name data_item_index data_item_number ...
Here you can specify results that should be integrated over time.
The integrated results will be placed in the post_integrate_result
record with the same index.
An example looks like:
...
groundflow_pressure
groundflow_velocity
end_initia
...
post_node 1 -average -geometry_line 4
...
post_integrate 3 -post_node_result 1 -gvely
...
...
Here the post_node record first takes care that the average groundflow
y-velocity at nodes on a line are determined, among other unknowns.
The post_integrate record integrates that
average groundflow y-velocity over time.
In this way the total groundflow debit volume over a line is registered.
6.319 post_global index name_0 name_1 ...
With this post_global you can ask for global information to be determined.
You can set each of the names name_0, name_1, etc. to
-
-global_elements (total number of elements)
- -global_nodes (total number of nodes)
- -global_unknowns (total number of free principal unknowns)
- -global_solver_iterations (total number of iterations of
iterative linear equation solver)
- -global_mass (total global mass)
- -global_strainenergy (total strain energy)
- -global_unknown_average (average values for unknowns)
- -global_unknown_max (maximum values for unknowns)
- -global_unknown_min (minimum values for unknowns)
- -global_volume (total global volume)
User control_print to print each of -global_elements, etc.
6.320 post_integrate_result index result
See post_integrate.
6.321 post_line index x_0 y_0 z_0 x_1 y_1 z_1
This record specifies a line in space for which the average or sum of the
unknown values will be calculated.
The values are placed in a record post_line_dof with the same index.
Internally in TOCHNOG, post_point records are used to evaluate
the unknowns on the line.
In 1D only x_0 and x_1 should be specified, etc..
In the example below, the average of the x-velocity
between the points (3,1) and (3,7) will be printed
...
number_of_space_dimensions 2
materi_velocity
...
end_data
...
post_line 1 3. 1. 3. 7.
...
print_filter 0 -post_line_dof 1 -velx
...
control_timestep 1 1. 100.
control_print 1 -post_line_dof
The coordinates are defined in the initial mesh.
See also: post_line_n, post_line_operat and post_line_moment.
6.322 post_line_operat index operat
If operat is set to -average then the average is calculated for the
post_line record with the same index.
If operat is set to -sum then the sum is calculated for the
post_line record with the same index.
If this post_line_operat is not specified, then operat is set to
-average.
6.323 post_line_dof index dof_0 dof_1 ...
Average unknown values at a selected line. See post_line.
6.324 post_line_dof_calcul ...
See post_calcul.
6.325 post_line_moment index switch
If switch is set to -yes, then the moment of the unknowns
with respect to the middle of the post_line (same index)
is calculated (instead of the average value of the unknowns).
This moment is the integral of the unknown value multiplied
with the distance to the middle of the line multiplied by the area
contribution; the first point in the post_line has negative
distance with respect to the line middle and the second point
in the post_line has positive distance with respect
to the line middle.
6.326 post_line_n index n
Use n post_point records to evaluate the unknowns along the line.
Default n is 5. See post_line.
6.327 post_node index data_item operat
geometry_entity geometry_entity_index
If operat is set to -sum, results for the
nodal data_item are summed.
If operat is set to -average, results for the
nodal data_item are averaged.
For example, you can take for data_item the -node_rhside data item.
In this way you can sum the external nodal forces on a part of the domain.
If operat is set to -moment and data_item
equals node_rhside, the moments Mx, My, Mz are determined.
These are moment with respect to the three model axes, each one
in the positive direction of its axis.
This operation is done for nodes which are placed on the geometrical entity
geometry_entity geometry_entity_index.
Instead of a geometrical entity you can also use -all to tell that all
nodes should be used.
The result is put into the post_node_result record (with the same index).
6.328 post_node_result index result_0 result_1 ...
See post_node.
6.329 post_node_rhside_fixed value_0 value_1 ...
After the calculations, this record will be filled with the absolute maxima
for the node_rhside values for those unknowns which
are fixed (so the maxima of external forces, fluxes, etc.).
6.330 post_node_rhside_free value_0 value_1 ...
After the calculations, this record will be filled with the absolute maxima
for the node_rhside values for those unknowns which are free.
In equilibrium these should become 0.
Because of a limited number of equilibrium iterations however,
the values may be larger then 0.
6.331 post_node_rhside_ratio ratio
After the calculations, this record will be filled with the ratio
of the the internal forces (out-of-balance forces) and the external forces.
The internal forces are taken from the post_node_rhside_free record.
The external forces are taken from the post_node_rhside_fixed record.
The maximum ratio for the unknowns is used.
As an expeption, if the external forces are very low (below 1.e-6),
the ratio is directly filled with the internal forces and so
represent an absolute value of unbalance and no unbalance ratio.
See also post_node_rhside_ratio_unknowntypes.
6.332 post_node_rhside_ratio_unknowntypes unknowntype_0 ...
With this option you can specify a list of unknown types which should be used in the
calculation of the post_node_rhside_ratio result.
By example, if both materi_velocity and condif_temperature are initialised,
then you can should to use only the material velocities in the accuracy ratio determination
by specifying post_node_rhside_ratio_unknowntypes -materi_velocity.
In case this post_node_rhside_ratio_unknowntypes is not specified, default all
principal unknowns present in the calculation will be used.
6.333 post_point index x y z
This record specifies a point in space for which unknown values
will be calculated. The values are placed in a record post_point_dof
with the same index. The values are obtained by determining
in which element the point is located and then using the element's
interpolation functions.
In 1D only x should be specified, etc..
The coordinates are defined in the initial mesh.
6.334 post_point_dof index dof_0 dof_1 ...
Unknown values at a selected point. See post_point.
6.335 post_point_dof_calcul ...
See post_calcul.
6.336 post_quadrilateral index x_0 y_0 z_0
x_1 y_1 z_1 x_2 y_2 z_2 x_3 y_3 z_3
This record specifies a quadrilateral in space for which the average of the
unknown values will be calculated. The values are placed
in a record post_quadrilateral_dof with the same index.
Internally in TOCHNOG, post_point records are used to evaluate
the unknowns on the quadrilateral.
In 2D only x_0 y_0 and x_1 y_1 should be specified.
The coordinates are defined in the initial mesh.
See also: post_quadrilateral_n.
6.337 post_quadrilateral_dof index dof_0 dof_1 ...
Average unknown values at a selected quadrilateral.
See post_quadrilateral.
6.338 post_quadrilateral_dof_calcul ...
See post_calcul.
6.339 post_quadrilateral_n index n
Use n post_point records in each direction to evaluate
the unknowns along the quadrilateral.
Default n is 5.
See post_quadrilateral.
6.340 print_arithmetic switch
If switch is set to -yes, all evaluated arithmetics will be printed.
See the start of the data part for an explanation about arithmetics.
6.341 print_control switch
If switch is set to -yes, the control index being evaluated
will be printed.
Handy for keeping track on what the program is doing.
6.342 print_define switch
If switch is set to -yes, all evaluated defines will be printed.
See the start of the data part for an explanation about defines.
6.343 print_failure switch
If switch is set to -yes then failure of elements
due to one of the failure criteria (group_materi_failure_rupture,
etc.) will be reported.
6.344 print_filter index data_item_name
data_item_index number_0 number_1 ...
The data selected in the records control_print,
control_print_unknowns, control_print_unknownsrhside
or control_print_element will be filtered at output.
Thus only a limited amount of data will actually be printed.
Here data_item_name is the name of the data item to be filtered,
e.g. data_item_name is -node_dof.
data_item_index is the index of the data_item_name record
which passes the filter.
If, by example, data_item_index is 3 then only index 3 passes the filter.
If data_item_index is -all then all indices pass the filter.
If, by example, data_item_index is -geometry_line 3 (valid if
data_item_name is -node or another nodal item)
then only records with coordinates located on line 3 pass the filter.
If, by example, data_item_index is -geometry_line 3 (valid if
data_item_name is -element or another element item)
then only element with at least one coordinate located on line 3 pass the filter.
If, by example, data_item_index is -ra ...-ra then indices in
this range pass the filter.
If, by example, data_item_index is -macro 4 and data_item_name
is data valid at a node (or element), then only nodes (or elements) generated by
the macro number 4 pass the filter (see control_mesh_macro_* for macro's).
If, by example, data_item_index is -macro -none and data_item_name
is data valid at a node (or element) then only nodes (or elements) not generated by
any macro pass the filter (see control_mesh_macro_* for macro's).
By example, if number_0 is 3 then the fourth value of a record passes
the filter. If number_0 is -all the whole
record passes the filter. If, by example, number_0 is
-velx while data_item_name is -node_dof then
only x-velocities pass the filter.
Some examples are
print_filter 1 -node_dof -all -temp -sigxx (temperatures and xx-stresses)
print_filter 2 -node -geometry_line 3 0 (x-coordinates on line 3)
With control_print_filter you can select if
the records control_print, control_print_unknowns
or control_print_unknownsrhside (with the same index)
should use specific filters (specify the indices of the filter for print_filter_index),
should use all filters (specify -all for print_filter_index),
or should use no filter at all (specify -none for print_filter_index).
Default, if control_print_filter is not specified, all filters
will be used for a print option.
Example:
print_filter 1 ...
print_filter 2 ...
...
control_timestep 10 ...
control_print 10 ...
control_print_filter 10 1 (only use filter 1)
...
control_timestep 20 ...
control_print 20 ...
control_print_filter 20 -all (use all filters)
All used filters are placed in-line; thus only data which passes all used filters
will be printed.
6.345 print_lastdatabase switch
If switch is set to -yes, the database will be written after
succesfull completion of a timestep to the file last.dbs.
In case of any trouble at the new timestep, that last.dbs can serve as a restart file.
Just adjust all control records to what you want them to be.
6.346 print_where switch
If switch is set to -yes, tochnog will print some info where it
is in the calculation.
6.347 slide_geometry index geometry_entity geometry_entity_index
This record makes material to slide over the geometry specified
by geometry_entity geometry_entity_index.
Velocities normal to that direction are not allowed.
This option comes handy when it is a priori known at which nodes
sliding will occur, which is typically the case in an Eulerian calculation,
or if deformations are small.
Otherwise, contact conditions should be used
(see contact_geometry etc.).
Optionally slide_friction and slide_penalty can be specified.
6.348 slide_friction index friction_coefficient
This specifies friction for the slide_geometry option.
6.349 slide_penalty index penalty_coefficient
This specifies penalty factor with which the slide_geometry option
is enforced; if this record is not specified then some high default value
for the penalty factor.
6.350 target_item index data_item_name
data_item_index number
See also: target_value.
6.351 target_value index value tolerance
This allows for testing the results of the calculation.
Typically, data_item_name is -node_dof but also
other data items can be tested.
The record with index data_item_index will be tested.
If data_item_name is -node_dof then number can
be -velx, -temp, etc. (see dof_label);
else, by example, number is 3 states that the fourth value
needs to be checked.
The result should not differ more from value than tolerance.
For a calculation with no problems, the tn.log file contains a line
stating that the calculation did start followed by a line stating that
the calculation did end. If this is not precisely the case,
some problem did occur or the targeted results differ too much.
In the example below it is checked that the pressure in node 6 does not
differ more than 1. 10-5.
target_item 0 -node_dof 6 -pres
target_value 0 1.2 1.e-5
The chacked value, 1.2 in this case, has been
found from a previous computation that is regarded as reliable.
The present computed value is compared with the earlier one.
If they agree within the specified tolerance, 1.e-5 in this case, then Tochnog is silent.
If they do not, then Tochnog writes an error message into the file "tn.log".
6.352 tendon index x_0 y_0 z_0
x_1 y_1 z_1 tendon_area
This record specifies a tendon; the start point is specified by
x_0 y_0 z_0 and the end point is specified
by x_1 y_1 z_1.
The tendon has cross sectional area tendon_area.
In 1D only x_0, x_1, etc. should be specified, etc..
Tendons will automatically be distributed over the elements.
This is only available for linear and quadratic elements.
Only if a tendon part completely passes an element
it will be embedded in the element; tendons need to be embedded in
elements which have a -materi differential equation group_type.
This record automatically fills the
element_tendon_direction, element_tendon_number,
element_tendon_stress and element_tendon_volume
records. You are not allowed to specify those records yourself.
In combination with tendons, the group_materi_memory model
should be set to -total or -updated_without_rotation.
6.353 tendon_elasti index stiffness
Elastic stiffness for tendon (with the same index).
Tendon will use the group_materi_memory model of the parent element;
only -total is available however for tendons.
6.354 tendon_expansion index a
Thermal expansion coefficient for tendon (with the same index).
6.355 tendon_plasti index yield_stress
Yield stress for tendon (with the same index). Perfectly plastic
yielding is used.
6.356 tendon_stress index initial_stress
Initial stress for tendon (with the same index).
See also tendon_stress_time and element_tendon_stress.
6.357 tendon_stress_time index time_0 factor_0 time_1 factor_1 ...
With this record you can specify a factor for the initial tendon stress in
time (see tendon_stress for the initial tendon stress).
A table of time points with factors should be specified.
After the last time point in this table is passed, the tendon stress initially is set to the last
value (that is the initial_stress multiplied with the last factor), and further on can change due to
length changes of the tendon.
Attention: this table is only taken into account if actual time steps are performed
by means of control_timestep.
6.358 time_calculation cpu_time_in_seconds
Consumed computer time up to moment of printing.
6.359 time_current current_time
Current time in calculation.
6.360 volume_factor a0 a1 ...an
This data item defines a polynomial in space in 1D or 2D.
The polynomial specifies the cross-sectional area (in 1D) or
the thickness (2D) as function of the global x coordinate (1D) or
the global x,y coordinates (2D). By example, in a 1D solid
calculation it can be used to specify varying cross-sectional areas
of bars, or in a 1D flow calculation it can be used to specify the cross-
sectional area of a channel.
In 1D the polynomial is a0 + a1 x + a2 x2 + ... .
In 2D the polynomial is a0 + a1 x + a2 y + a3 x2 + a4 xy +
a5 y2 + a6 x3 + a7 x2 y + a8 x y2 + a9 y3 + ... .
If this record is not specified, the cross-sectional area is 1 (1D)
or the thickness is 1 (2D).
See also volume_element_factor.
6.361 end_data (last record of data part)