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
...
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.
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.