### Fembic Indata Format

The fembic indata format is the default indata format for Impact. It is designed to be simple to read and understand, and is written in free format which means that you can type as you wish and do not have to put data at specific locations in the file. A file which is written in Fembic should have a name which ends with .in and be in ASCII format.

Comments may be included on any line but must be preceded by a # character. Every text written behind this sign will be ignored and the parser will continue on the next line instead.

The General syntax for this manual is that letters in bold are required input for the command. Input in normal writing are optional.

### Block Structure

A fembic file is structured in blocks. Each block starts with a keyword, followed by data related to that block. The blocks can come in any order and may be repeated. A block must start on a new line using any of the keywords. Each keyword and the related data will now be described.

### Commands

Command | Controls
Block | Controls
Description | The control block is initiated with the word control on a single line. There can only be one control block in any give indata file. All commands designed to control the solution process is defined here. One command with it's associated parameters is defined on each line.
Syntax | Controls
Options |
Example | Controls
See also | Run, Print

Command | Run
Block | Controls
Description | This command controls the solution process. The starting time and the end time are mandatory while control of the step size is optional. if this is left blank, impact will choose the most optimal step size for each step during the solution process.
Syntax | Run from svalue to evalue step stpvalue
Options |
svalue | Start time for the solution
evalue | End time for the solution.
stpvalue | Stepsize for the solution. Specifying this value disables autostep. The value can be a single number but could also vary with time. It should then be specified within brackets with time, timestep specified in pairs: [t1,ts1,t2,ts2....tn,tsn]
Example | Run from 0.0 to 1.2 Run from 0.0 to 1.2 step 0.0001 Run from 0.0 to 2.0 step [0,off,1.8,1e-5,2.0,1e-5,2.01,off,10,off]
See also | Controls, Print

Command | Print
Block | Controls
Description | This command controls the print process during the solution. The command can also be repeated with the tracker word if the printing interval is to be set specifically for the trackers. Impact will print the results with the interval specified. Depending on how the element perform it's internal calculations, the output may be local or global stresses and strains. Displacements of nodes are also printed so that mesh deformation can be followed. If no specific interval will be set for the trackers, they will print at the same time as the general printing occurs.
Syntax | print tracker every value step
Options |
value | Step time for printing.
Example | Print every 0.01 step
See also | Controls, Run

Command | For
Block | Controls
Description | This command selects which Writer and Trackwriter to use. This selection determines the output format for the result files and thereby the selection of postprocessor. The default is that both the resultfiles and tracker files are printed in GID format. This command is entirely optional and is often left out.
Syntax | For writertype use selected_type
Options |
writertype | Choice of writer type to specify. Can be either Writer or TrackWriter.
selected_type | The selected type. For writers this can currently only be GIDWriter. Future extensions include Dynawriter and Radiosswriter For Trackwriters this can currently only be GIDTrackWriter. Future extensions include DynaTrackwriter and RadiossTrackwriter
Example | For Writer use GIDWriter
See also | Trackers, Elements

Command | Restore
Block | Controls
Description | This command controls the save process during the solution and allows to create points of restoration of calculation of model. The command also can correct a calculation step at an error. At occurrence of an error calculation stops. In a file error time, an error step are saved. At restart of model time step decreases twice ( timestep = timestep_error / 2 ). So there is each time at model start. It allows to define a step correctly.
Syntax | restore save value
Options |
value | By default OFF. Points of restoration of calculation of model are not created. At parametre PREVIOUS the point of restoration of last step is created. Parametre ALL creates points of restoration for all steps.
Example | Restore save previous
See also | Controls

Command | Elements
Block | Elements
Description | The elements that make up the finite element model are defined within this block. Only one type of elements can be defined within each block.
Syntax | Elements of Type eltype
Options |
eltype | Any type of element: Rod_2, Beam_2, Solid_Iso_6, Shell_BT_4, Contact_Triangle
Example | Elements of Type Shell_BT_4
See also | Rod_2, Beam, Solid_Iso_6, Shell_BT_4, Shell_C0_3

Command | Beam_2
Block | Elements
Description | This is a simple Beam element which means that it will transfer moment and also take node rotation into account. The cross section is assumed solid circular.
Syntax | nr nodes = [node1,node2] D=diameter material= elmaterial
Options |
nr | The element number. Must be a unique number in the model, i.e. another element cannot have the same number.
node1,2,.. | The number of the first node etc.
diameter | the cross section diameter of the Beam. The cross section is solid circular.
elmaterial | The name of the material that the Beam element uses. This name must be defined under the material block.
Example | 1 nodes = [23,24] D = 4.73 material = steel
See also | Elements, Materials, Nodes

Command | Contact_Triangle
Block | Elements
Description | This is a 3 node contact element. It has no other purpose than detecting if other nodes are about to penetrate it's surface. If this is the case, the element will repel the node with a resulting reaction force onto itself. This element is useful to model contact surfaces. It is also used in most of the other finite elements to handle contact detection.
Syntax | nr nodes = [node1,node2,node3] T = thickness factor = factor friction = friction
Options |
nr | The element number. Must be a unique number in the model, i.e. another element cannot have the same number.
node1,2,.. |
| Nodes are defined in a counter clockwise direction as shown in the figure. Results from the element can be local stresses and strains. The picture shows the local axes where the x-axis direction are primarily defined by node 1 and 2. The z-axis is normal to the shell surface. The local y-axis is defined to be octagonal to the x-axis and z-axis.
thickness | is the thickness of the contact element. The thickness is assumed to be constant over the element width. Nodes outside the thickness are not assumed to be in contact. The contact zone extends to half the thickness on each side of the element.
factor | The repelling force to be used when a node penetrates. The force will increase linearly as the node intrudes further.
friction | The friction coefficient to be used. Usually between 0.2 and 0.8 depending on material and condition. Only useful if contact is enabled. If not set, friction is disabled.
Example | 1 nodes = [113,118,110] t = 1.0 factor = 100 friction = 0.2
See also | Elements, Nodes, Shell_C0_3, Shell_BT_4, Contact_Line

Command | Contact_Line
Block | Elements
Description | This element is a two node contact element of a line segment. The element will provide contact sensitivity within the diameter of the line. Also ends are detected within the radius. Contact is sensed against nodes and other contact_line elements.
Syntax | nr nodes = [node1,node2] D=diameter factor = c_factor friction = c_friction contact = c_type
Options |
nr | The element number. Must be a unique number in the model, i.e. another element cannot have the same number.
node1,2,.. | The number of the first node etc.
diameter | the cross section diameter of the element. The cross section is solid circular.
c_factor | The contact factor. This is the reaction force at full penetration of contact node. If nothing is specified, default is 10.
c_friction | The friction coefficient to be used. Usually between 0.2 and 0.8 depending on material and condition. Only useful if contact is enabled. If not set, friction is disabled.
c_type | Contact type. Can be OFF to disable contact. Default contact type is BASIC which means that contact sensing is enabled.
Example | 1 nodes = [23,24] D = 4.73
See also | Elements, Nodes, Shell_C0_3, Shell_BT_4, Contact_triangle

Command | Rod_2
Block | Elements
Description | This element is a two node element of a Rod. The cross section will shrink as the element extends which is important as the rod leaves the elastic state and becomes plastic.
Syntax | nr nodes = [node1,node2] D=diameter material= elmaterial factor = c_factor friction = c_friction contact = c_type
Options |
nr | The element number. Must be a unique number in the model, i.e. another element cannot have the same number.
node1,2,.. | The number of the first node etc.
diameter | the cross section diameter of the rod. The cross section is solid circular.
elmaterial | The name of the material that the rod element uses. This name must be defined under the material block.
c_factor | The contact factor. This is the reaction force at full penetration of contact node. If nothing is specified, default is the same as for the contact_line element.
c_friction | The friction coefficient to be used. Usually between 0.2 and 0.8 depending on material and condition. Only useful if contact is enabled. If not set, friction is disabled.
c_type | Contact type. Can be OFF to disable contact. Default contact type is BASIC which means that a Contact_Line element will represent the rod.
Example | 1 nodes = [23,24] D = 4.73 material = steel
See also | Elements, Materials, Nodes

Command | Beam_Spring_2
Block | Elements
Description | This element is a two node spring element. Since it is a spring, both the stiffness and damping can be defined in six directions. The element attributes are based on the global coordinate system directions independent of element orientation. Note that time step issues for this element often be related to the fact that inertia has not been defined on both the connecting nodes. The element can have contact sensitivity if contact option is turned on (see below).
Syntax | nr nodes = [node1,node2] material= elmaterial D = diameter factor = c_factor friction = c_friction contact = c_type
Options |
nr | The element number. Must be a unique number in the model, i.e. another element cannot have the same number.
node1,node2 | Node 1 and 2 are the start and end nodes respectively.
elmaterial | The name of the material that the spring element uses. This material must be of type spring and be defined in the material block. The material defines all the stiffness attributes for the element.
diameter | The cross section diameter of the spring. This is only used for the contact search. Any node within this diameter will be concidered in contact. This does not have to be defined if contact is not enabled.
c_factor | The contact factor. This is the reaction force at full penetration of contact node. If nothing is specified, default is the same as for the contact_line element. This does not have to be defined if contact is not enabled.
c_friction | The friction coefficient to be used. Usually between 0.2 and 0.8 depending on material and condition. Only useful if contact is enabled. If not set, friction is disabled.
c_type | Contact type. Can be set to BASIC to enable contact. Contact is disabled by default for this element.
Example | 1 nodes = [23,24] material = attrib1
See also | Elements, Materials, Nodes

Command | Shell_BT_4
Block | Elements
Description | This is a 4 node shell element based on the classical Belytchko-Tsai formulation. It is a very robust design which has become the workhorse in explicit finite element simulations. The element has only one integration point which means that the result are only calculated in one point which is situated in the middle of the element. The advantage is that the element is very fast. The drawback is that it is sensitive to hourglassing. To prevent this, there is an additional compensation built in to the formulation, called hourglass control.
Syntax | nr nodes = [node1,node2,node3,node4] T = thickness material = elmaterial NIP = noip PIP = nopip SHEAR_FACTOR = shearfactor HOURGLASS = hglass MHC = mhc OOPHC = oophc RHC = rhc LOAD = loadname FACTOR = c_factor CONTACT = c_type FRICTION = friction THINNING = thinning
Options |
nr | The element number. Must be a unique number in the model, i.e. another element cannot have the same number.
node1,2,.. |
| Nodes are defined in a counter clockwise direction as shown in the figure. Results from the element can be local stresses and strains. The picture shows the local axes where the x-axis direction are primarily defined by node 1 and 2. The z-axis is normal to the shell surface. The local y-axis is defined primarily by node 1 and 4.
thickness | is the thickness of the shell. The thickness is assumed to be constant over the element width.
elmaterial | The name of the material that the shell element uses. This name must be defined under the material block.
noip | the number of integration points through the thickness of the element. All from 1 up to 5 integration points are possible. A minimum of three integration points are recommended.
nopip | the number of the integration point which results will be printed in the result file. Can be anything from 1 up to NIP. If nothing is specified, it will be the middle point in the shell thickness, for example if NIP = 5, PIP will be equal to 3.
shearfactor | the arbitrary parameter used to enforce the Kirchhoff normality condition as the shell become thin. Default value is 1.0.
hglass | a switch to enable or disable hourglass control on the element. It can be either ON or OFF. Default is ON.
mhc | the Membrane Hourglass Control factor. This factor is multiplied with the calculated hourglass forces acting in the shell membrane plane. Default is 0.1.
oophc | the Out Of Plane Hourglass Control factor. This factor is multiplied with the calculated hourglass forces acting out of the membrane plane, causing ex. twist of the element. Default is 0.1.
rhc | the Rotational Hourglass Control factor. This factor is multiplied with the calculated hourglass moments. Default is 0.1.
loadname | Name of a load defined under the load block. Pressure onto the shell element is defined this way.
c_factor | The contact factor. This is the reaction force at full penetration of contact node.
c_type | Contact type. Can be OFF to disable contact. Default contact type is BASIC which means that two Contact_Triangle elements will represent the surface. This works fine for small deformations of the element. ADVANCED will use four Contact_Triangle elements and be able to handle self contact within the element itself, but at a cost of calculation time. EDGE enables edge contact sensitivity along the edges of the element together with the standard surface contact sensitivity. ADVANCED_EDGE does the latter but together with the advanced contact surface model which uses four Contact_Triangle elements.
friction | The friction coefficient to be used. Usually between 0.2 and 0.8 depending on material and condition. Only useful if contact is enabled. If not set, friction is disabled.
thinning | Determines if the shell should reduce thickness at large strains. Useful in pressing simulations. Default is ON. It can be disabled by setting equal to OFF.
Example | 1 nodes = [113,118,110,106] nip = 5 t = 1.0 material = steel load = pres
See also | Elements, Materials, Nodes, Shell_C0_3

Command | Shell_C0_3
Block | Elements
Description | This is a 3 node shell element based on the classical C0 formulation by Belytchko et. al. It complement the BT_4 shell and is common in explicit finite element simulations. The element has only one integration point which means that the result are only calculated in one point which is situated in the middle of the element. The advantage is that the element is very fast. Unlike the BT_4 element, this element does not need hourglass control. Triangulars are however by it's nature stiffer than the BT_4 element which means it should be used with care.
Syntax | nr nodes = [node1,node2,node3] T = thickness material = elmaterial NIP = noip PIP = nopip LOAD = loadname FACTOR = c_factor CONTACT = c_type FRICTION = friction THINNING = thinning
Options |
nr | The element number. Must be a unique number in the model, i.e. another element cannot have the same number.
node1,2,.. |
| Nodes are defined in a counter clockwise direction as shown in the figure. Results from the element can be local stresses and strains. The picture shows the local axes where the x-axis direction are primarily defined by node 1 and 2. The z-axis is normal to the shell surface. The local y-axis is defined to be octagonal to the x-axis and z-axis.
thickness | is the thickness of the shell. The thickness is assumed to be constant over the element width.
elmaterial | The name of the material that the shell element uses. This name must be defined under the material block.
noip | the number of integration points through the thickness of the element. All from 1 up to 5 integration points are possible. A minimum of three integration points are recommended.
nopip | the number of the integration point which results will be printed in the result file. Can be anyting from 1 up to NIP. If nothing is specified, it will be the middle point in the shell thickness, for example if NIP = 5, PIP will be equal to 3.
loadname | Name of a load defined under the load block. Pressure onto the shell element is defined this way.
c_factor | The contact factor. This is the reaction force at full penetration of contact node.
c_type | Parameter to set contact sensitivity type. Can be set to OFF to disable contact. If unspecified, contact is enabled for surface only. If set to EDGE, the surface contact will be complemented with edge contact sensitivity.
friction | The friction coefficient to be used. Usually between 0.2 and 0.8 depending on material and condition. Only useful if contact is enabled. If not set, friction is disabled.
thinning | Determines if the shell should reduce thickness at large strains. Useful in pressing simulations. Default is ON. It can be disabled by setting equal to OFF.
Example | 1 nodes = [113,118,110] nip = 5 t = 1.0 material = steel load = pres
See also | Elements, Materials, Nodes, Shell_BT_4

Command | Solid_Iso_6
Block | Elements
Description | This is a simple isoparametric solid element with eight integration points as showed in the figure. The element is available with either one integration point which is then situated in the middle of the element, or eight integration points. The benefit of having eight points are the the element will be more stable since hourglass modes cannot occur. At the time of writing, there is no hourglass control algorithm implemented which enables a stable use of one integration point which means that this configuration is currently not recommended. The results from the element are stresses and strains in global directions.
Syntax | nr nodes = [node1,node2,node3,node4, node5,node6,node7,node8] material= elmaterial NIP=noip
Options |
nr | The element number. Must be a unique number in the model, i.e. another element cannot have the same number.
node1,2,.. |
| Nodes are defined as shown in the figure where the local axes are shown as well. Results from the element can be local stresses and strains. Other types of solid elements can be created by collapsing the element edges. This is achieved by assigning the same node number to the original nodes on the cube element. For example, the wedge would be achieved by assigning node nr 1 on position 1 and 2 for the solid element. In general, the collapse of elements are not as good as rewriting them from scratch. They are however possible to use, but will not give optimal results, so be aware of this when using them. Note also that the autostep currently does not work well for a degenerated element. A fixed timestep must be set.
noip | the number of integration points in the element; can either be 1 or 8. This will also change the result files since results are calculated in each integration point and the data from each point will then be printed.
elmaterial | The name of the material that the element uses. This name must be defined under the material block.
Example | 1 nodes = [23,24,34,42,65,76,89,33] material = steel nip = 8 2 nodes = [23,23,34,42,65,65,89,33] material = steel nip = 8
See also | Elements, Materials, Nodes

Command | Solid_Iso_4
Block | Elements
Description | This is a tetrahedron solid element. The element is available with either one integration point (recommended) which is then situated in the middle of the element, or eight integration points. The results from the element are stresses and strains in global directions. This element is based on a degenerated Solid_Iso_6 element.
Syntax | nr nodes = [node1,node2,node3,node4] material= elmaterial NIP=noip
Options |
nr | The element number. Must be a unique number in the model, i.e. another element cannot have the same number.
node1,2,.. |
| Nodes are defined as shown in the figure where the local axes are shown as well. Results from the element can be global stresses and strains. Note that the autostep currently does not work well for this element type. Therefore, a solution involving this element type requires a user defined timestep (see Control).
noip | the number of integration points in the element; can either be 1 or 8. One integration point is strongly recommended for this element.
elmaterial | The name of the material that the element uses. This name must be defined under the material block.
Example | 1 nodes = [23,24,34,42] material = steel nip = 1 2 nodes = [23,23,34,42] material = steel nip = 8
See also | Elements, Materials, Nodes

Command | Nodes
Block | Nodes
Description | The node block starts with the keyword nodes on a single line. The following lines should then specify the nodes with one node per line. Impact is designed for three dimensional space problems which means that for each node, all three space coordinates must be defined at all times. If a two dimensional problem is to be solved, each node must be constrained from movement in the third dimension.
Syntax | Nodes
Options | -
Example | Nodes
See also | Node

Command | Node
Block | Nodes
Description | This command defines a node. Impact is designed for three dimensional space problems which means that for each node, all three space coordinates must be defined at all times. If a two dimensional problem is to be solved, each node must be constrained from movement in the third dimension.
Syntax | nr X = xcoord Y = ycoord Z = zcoord constraint = cname loads = lname M = mass Ixx = x_inertia Iyy = y_inertia Izz = z_inertia Ixy = xy_inertia Iyz = yz_inertia Ixz = xz_inertia
Options |
xcoord, ycoord, zcoord | the space coordinates for the node in respective direction. The numbers can contain decimals.
cname | the name of the constraint set that the node should obey. The constraint set must be defined elsewhere in the file under the constraint block. Only one constraint set can be applied on each node. This is an optional parameter and does not have to be defined if the node is free.
lname | the name of the load set that the node should use. The load set must be defined elsewhere in the file under the load block. Only one load set can be applied to each node. This is an optional parameter and does not have to be defined if there is no load on the node.
mass | the weight of the concentrated mass applied to the node. The mass is applied to all spatial directions.
x_inertia | The inertia around global x-axis applied to the node.
y_inertia | The inertia around global y-axis applied to the node.
z_inertia | The inertia around global z-axis applied to the node.
xy_inertia | The xy inertia component. The yx component is assumed equal.
yz_inertia | The yz inertia component. The zy component is assumed equal.
xz_inertia | The xz inertia component. The zx component is assumed equal.
Example | Nodes
See also | Node

Command | Constraints
Block | Constraints
Description | Under this block heading, the constraint sets are defined. Each set must be defined on a single line.
Syntax | Constraints of type ctype
Options |
ctype | Any type of constraint: Boundary_Condition, Rigid_Body
Example | Constraints of type Boundary_Condition
See also | Constraint, Node, Load

Command | Boundary_Condition
Block | Constraints
Description | Defines a boundary condition constraint. A constraint controls movement for the nodes in different directions by setting the acceleration and velocity for the node. Any given combination can be set. There is no need to define all the variables. If none is set, the default value is that the node will be uncontrolled in that direction.
Syntax | name ax = value ay = value az = value vx = value vy = value vz = value arx = value ary = value arz = value vrx = value vry = value vrz = value axis = [node1,node2,node3] update = upd
Options |
name | Name of the constraint. Must be unique.
value | Value of the constraint. Can be either a simple number (constant) or alternatively a variable over time defined as [t1,y1,t2,y2,...,tn,yn] where y1 is the value at time t1 and so on. At this stage, y1 can also be off which means that the constraint will not be effective from this time forward until a new value is set.
node1,node2,node3 | These nodes set up the local coordinate system for the boundary condition. If these are specified, the values specified in the constraint will be assumed to be relating to this local coordinate system. The local x-axis of the system runs from node1 to node2. Local z-axis is then normal to the plane defined by this x-axis and a vector from node1 to node3. Finally, the y-axis is normal to the x- and z-axis.
upd | The update option is connected to the axis option. If the local coordinate system is defined and update is set to ON, the nodes defining the coordinate system will be continuosly scanned and the system updated. This means the system can rotate over time.
Example | exampleconstraint ax = [0,0,1,1.5,5,off,6,3,100,3] ay = 3.0 az = 0.0
See also | Node, Load

Command | Rigid_Body
Block | Constraints
Description | Defines a rigid body constraint. The nodes referring to this constraint are all considered part of a single rigid body. They are all connected to the master node. If specified, the master node can automatically be placed in the centre of gravity for the body. The movement of the body will be controlled from the master node, on which an ordinary boundary condition or load can be placed. The master node will automatically be given the mass and inertia for the rigid body, based on the slave nodes mass, inertia and position.
Syntax | name master_node = nnum update_position = updt
Options |
name | Name of the constraint. Must be unique.
nnum | Node number of the master node. The node will be moved automatically to the centre of gravity of the rigid body before the solution starts.
updt | If this is set to ON, the master node will automatically be moved to the centre of mass for the rigid body before the solution starts.
Example | rb1 master_node = 25
See also | Boundary_Condition, Node

Command | Loads
Block | Loads
Description | Under this block heading, the load sets are defined. Each set must be defined on a single line.
Syntax | Loads
Options | -
Example | Loads
See also | Load, Node, Constraint

Command | Load
Block | Loads
Description | The loads block is initiated by the heading above on a single line. The loads themselves follows, defined one per line. A load set is applied on nodes or some elements. It consists of concentrated forces in any direction defined by their x,y and z components. Accelerations, such as gravity can also be defined here. Pressure can also be defined.
Syntax | name fx = value fy = value fz = value mx = value my = value mz = value ax = acc ay = acc az = acc arx = acc ary = acc arz = acc p = pressure
Options |
name | Name of the load. Must be unique.
value | Value of the load. Can be either a simple number (constant) or alternatively a variable over time defined as [t1,y1,t2,y2,...,tn,yn] where y1 is the value at time t1 and so on. At this stage, y1 can also be off which means that the load will not be effective from this time forward until a new value is set.
acc | Value of the acceleration. Accelerations are added to the load on a node which makes this the way to simulate gravity. Acceleration can be either a simple number (constant) or alternatively a variable over time defined as [t1,y1,t2,y2,...,tn,yn] where y1 is the acceleration at time t1 and so on. At this stage, y1 can also be off which means that the acceleration will not be effective from this time forward until a new value is set.
pressure | Value of the pressure. Can be either a simple number (constant) or alternatively a variable over time defined as [t1,y1,t2,y2,...,tn,yn] where y1 is the pressure at time t1 and so on. At this stage, y1 can also be off which means that the pressure will not be effective from this time forward until a new value is set.
Example | exampleload ax = [0,0,1,1.5,5,off,6,3,100,3] p = 3.0
See also | Node, Load

Command | Materials
Block | Materials
Description | A specific material is defined by setting the parameters of a specific material law. There are several material laws available, depending on material choice. There are laws that are suitable for metals and other more suitable for foams, which may behave differently. The material law is then assigned to one or several elements in the element definition.
Syntax | Materials of type mtype
Options |
mtype | The name of a specific material law. After each block heading, the specific materials are listed with the parameters defined. One material per line.
Example | Materials of Type Elastic
See also | Elastic, Elastoplastic

Command | Elastic
Block | Materials
Description | This is a simple elastic material law.
Syntax | name E = yvalue RHO = dvalue NU = nuvalue FAILURE_STRAIN = fstrain FAILURE_STRESS = fstress
Options |
name | Name of the material. Must be unique.
yvalue | Young's modulus for the material.
dvalue | The density of the material.
nuvalue | Poisson's constant of the material.
fstrain | The strain at which the material fractures. If an element reaches this strain, it will be removed from the simulation.
fstress | The stress at which the material fractures. If an element reaches this stress, it will be removed from the simulation.
Example | steel E = 210 D = 0.0000078 NU = 0.3
See also | Elements, Materials, Elastoplastic

Command | Elastoplastic
Block | Materials
Description | This is an isoparametric elasto-plastic material law. The elastic Young's modulus defines the stress-strain relation up to the yield stress. Above yield stress, there are several options. The plastic behaviour can be described by the plastic modulus (EP) which defines a linear relation between the stress and effective plastic strain. This relation can also be a curve, defined by a range of stress/strain coordinates. The EP in this case has no function and can be omitted. Finally, the relation can also be dependent on the strain rate in which several stress/strain curves are defined together with a parameter setting the velocity for which each curve is representative. The stress for a certain effective strain value is detemined as a linear interpolation from these curves.
Syntax | name E = yvalue RHO = dvalue NU = nuvalue YIELD_STRESS = svalue EP = fvalue Y1,Y2.. Y9 = svalue V1,V2..V9 = vvalues FAILURE_STRAIN = fstrain FAILURE_STRESS = fstress
Options |
name | Name of the material. Must be unique.
yvalue | Young's modulus for the material.
dvalue | The density of the material.
nuvalue | Poisson's constant of the material.
svalue | The yield stress of the material. If this is a single number, the EP variable must be set in order to define a linear plastic relation. The second option is to define the yield stress as a range of strain/stress coordinate pairs. Example is [eps0,stress0,eps1,stress2,....,epsn,stressn]. Remember that the strain is effective plastic strain which is equal to zero at initial yield. When the Y1,2... parameters are used, this stress/strain curve is defined for a certain strain rate, defined in the corresponding vvalue
fvalue | is the plastic modulus or tangent modulus in the plastic region. If a curve is defined for the yield stress, this parameter is not needed.
vvalue | is the strain rate for which the Yx curve is defined. The V1 value defines the strain rate for Y1 and so on. The stress/strain curve for a zero velocity is defined in the ordinary YIELD_STRESS parameter.
fstrain | The strain at which the material fractures. If an element reaches this strain, it will be removed from the simulation.
fstress | The stress at which the material fractures. If an element reaches this stress, it will be removed from the simulation.
Example | epsteel E = 210 RHO = 0.0000078 NU = 0.3 YIELD_STRESS = 0.180 EP = 0.1 steel2 E = 210 RHO = 0.0000078 NU = 0.3 YIELD_STRESS = [0,0.180,0.3,0.220,2.0,0.250] v_steel E = 210 RHO = 0.0000078 NU = 0.3 YIELD_STRESS = [0,0.180,0.3,0.220] V1 = 0.2 Y1 = [0,0.200,0.3,0.240]
See also | Elements, Materials, Elastic

Command | ThermoElastoplastic
Block | Materials
Description | This is an isoparametric thermo-elasto-plastic material law. The elastic Young's modulus defines the stress-strain relation up to the yield stress . Above yield stress, there are several options. The plastic behaviour can be described by the plastic modulus (EP) which defines a linear relation between the stress and effective plastic strain. This relation can also be a curve, defined by a range of stress/strain coordinates. The EP in this case has no function and can be omitted. Finally, the relation can also be dependent on the strain rate in which several stress/strain curves are defined together with a parameter setting the velocity for which each curve is representative. The stress for a certain effective strain value is detemined as a linear interpolation from these curves.
Syntax | name E = yvalue RHO = dvalue NU = nuvalue YIELD_STRESS = svalue T = tvalue A = avalue EP = fvalue Y1,Y2.. Y9 = svalue V1,V2..V9 = vvalues FAILURE_STRAIN = fstrain FAILURE_STRESS = fstress
Options |
name | Name of the material. Must be unique.
yvalue | Young's modulus for the material.
dvalue | The density of the material.
nuvalue | Poisson's constant of the material.
svalue | The yield stress of the material. If this is a single number, the EP variable must be set in order to define a linear plastic relation. The second option is to define the yield stress as a range of strain/stress coordinate pairs. Example is [eps0,stress0,eps1,stress2,....,epsn,stressn]. Remember that the strain is effective plastic strain which is equal to zero at initial yield. When the Y1,2... parameters are used, this stress/strain curve is defined for a certain strain rate, defined in the corresponding vvalue
tvalue | Temperature.
avalue | Thermal Coefficient of Expansion.
fvalue | is the plastic modulus or tangent modulus in the plastic region. If a curve is defined for the yield stress, this parameter is not needed.
vvalue | is the strain rate for which the Yx curve is defined. The V1 value defines the strain rate for Y1 and so on. The stress/strain curve for a zero velocity is defined in the ordinary YIELD_STRESS parameter.
fstrain | The strain at which the material fractures. If an element reaches this strain, it will be removed from the simulation.
fstress | The stress at which the material fractures. If an element reaches this stress, it will be removed from the simulation.
Example | epsteel E = 210 RHO = 0.0000078 NU = 0.3 YIELD_STRESS = 0.180 EP = 0.1 T = 0 A = 0.0000113 steel2 E = 210 RHO = 0.0000078 NU = 0.3 YIELD_STRESS = [0,0.180,0.3,0.220,2.0,0.250] T = 0 A = 0.0000113 v_steel E = 210 RHO = 0.0000078 NU = 0.3 YIELD_STRESS = [0,0.180,0.3,0.220] V1 = 0.2 Y1 = [0,0.200,0.3,0.240] T = 0 A = 0.0000113
See also | Elements, Materials, Elastic

Command | Spring
Block | Materials
Description | This is a dummy material which defines all the spring stiffnesses and damping for a spring element. It cannot be used together with any other element types. Stiffness and damping can be defined as a function or constant for all directions.
Syntax | name KX = kxvalue KY = kyvalue KZ = kzvalue KRX = krxvalue KRY = kryvalue KRZ = krzvalue CX = cxvalue CY = cyvalue CZ = czvalue CRX = crxvalue CRY = cryvalue CRZ = crzvalue
Options |
name | Name of the material. Must be unique.
kxvalue | The stiffness along the local x-axis. Can be defined as a constant or a function of the local x-displacement. If a function is wanted, the syntax shuld be kx = [d0,K0,d1,K1,...,dN,KN]. By default, this stiffness is assumed 0.
kyvalue | The stiffness along the local y-axis. Can be defined as a constant or a function of the local y-displacement. By default, this stiffness is assumed to be the same as for KX.
kzvalue | The stiffness along the local z-axis. Can be defined as a constant or a function of the local z-displacement. By default, this stiffness is assumed to be the same as for KX.
krxvalue | The stiffness around the local x-axis. Can be defined as a constant or a function of the local x-rotation. By default, this stiffness is assumed 0.
kryvalue | The stiffness around the local y-axis. Can be defined as a constant or a function of the local y-rotation. By default, this stiffness is assumed to be the same as for KRX.
krzvalue | The stiffness around the local z-axis. Can be defined as a constant or a function of the local z-rotation. By default, this stiffness is assumed to be the same as for KRX.
cxvalue | The damping along the local x-axis. Can be defined as a constant or a function of the local x-displacement. If a function is wanted, the syntax shuld be cx = [d0,C0,d1,C1,...,dN,CN]. By default, this damping is assumed 0.
cyvalue | The damping along the local y-axis. Can be defined as a constant or a function of the local y-displacement. By default, this damping is assumed to be the same as for CX.
czvalue | The damping along the local z-axis. Can be defined as a constant or a function of the local z-displacement. By default, this damping is assumed to be the same as for CX.
crxvalue | The damping around the local x-axis. Can be defined as a constant or a function of the local x-rotation. By default, this damping is assumed 0.
cryvalue | The damping around the local y-axis. Can be defined as a constant or a function of the local y-rotation. By default, this damping is assumed to be the same as for CRX.
crzvalue | The stiffness around the local z-axis. Can be defined as a constant or a function of the local z-rotation. By default, this damping is assumed to be the same as for CRX.
Example | attrib KX = 10 CX = [0,0,1,20,2,off,3,30,45,0]
See also | Elements, Materials, Elastoplastic

Command | Trackers
Block | Trackers
Description | The trackers are used to track result data from a solution. There are several different trackers, each specially tailored for different results.
Syntax | Trackers of Type ttype
Options |
ttype | Any type of tracker: Nodeforce, Sectionforce, etc
Example | Trackers of Type Nodeforce
See also | Nodeforce, Sectionforce

Command | Nodeforce
Block | Trackers
Description | This tracker reads the forces from one or several nodes and plots the result into a file. The file is currently readable by the GID pre/postprocessor but the tracker can also print in a different fileformat. This is controlled by the Trackwriter command. Target is a value set by the user. If this value is reached during simulation, a file will be written (with extension .target). This is useful when debugging new versions of Impact.
Syntax | nr nodes = [tnode,tnode,...,tnode] DIRECTION = dir FILENAME = fname TARGET = [ttime,timetol,tvalue,valuetol]
Options |
nr | The tracker number. Must be a unique number in the model, i.e. another nodetracker cannot have the same number.
tnode | The number of the node to track forces from.
dir | The direction of the force to track. Can be either 'X', 'Y' or 'Z'. It is also possible to select components thereof by adding a - or +, i.e. 'X+' will plot the component acting in the positive X direction. If only X is used, the sum of the positive and negative component will be plotted.
filename | The name of the file of which the nodetracker should write. Must be a unique name for each nodetracker.
ttime | The time where the target is to be checked.
ttol | The tolerance for the target time
tvalue | The target value.
valuetol | The tolerance for the target value
Example | 1 nodes = [23] direction = x+ filename = nodeforce.trk
See also | Trackwriter, Sectionforce, Trackers

Command | Nodemoment
Block | Trackers
Description | This tracker reads the moments from one or several nodes and plots the result into a file. The file is currently readable by the GID pre/postprocessor but the tracker can also print in a different fileformat. This is controlled by the Trackwriter command. Target is a value set by the user. If this value is reached during simulation, a file will be written (with extension .target). This is useful when debugging new versions of Impact.
Syntax | nr nodes = [tnode,tnode,...,tnode] DIRECTION = dir FILENAME = fname TARGET = [ttime,timetol,tvalue,valuetol]
Options |
nr | The tracker number. Must be a unique number in the model, i.e. another nodetracker cannot have the same number.
tnode | The number of the node to track moments from.
dir | The direction of the moment to track. Can be either 'X', 'Y' or 'Z'. It is also possible to select components thereof by adding a - or +, i.e. 'X+' will plot the component acting in the positive X rotation direction. If only X is used, the sum of the positive and negative component will be plotted.
filename | The name of the file of which the nodetracker should write. Must be a unique name for each nodetracker.
ttime | The time where the target is to be checked.
ttol | The tolerance for the target time
tvalue | The target value.
valuetol | The tolerance for the target value
Example | 1 nodes = [23] direction = x+ filename = nodemoment.trk
See also | Trackwriter, Nodeforce, Sectionforce, Trackers

Command | NodeDisplacement
Block | Trackers
Description | This tracker reads the displacement of a single node and plots the result into a file. The file is currently readable by the GID pre/postprocessor but the tracker can also print in a different fileformat. This is controlled by the Trackwriter command. Target is a value set by the user. If this value is reached during simulation, a file will be written (with extension .target). This is useful when debugging new versions of Impact.
Syntax | nr node = [tnode] DIRECTION = dir FILENAME = fname TARGET = [ttime,timetol,tvalue,valuetol]
Options |
nr | The tracker number. Must be a unique number in the model, i.e. another nodetracker cannot have the same number.
tnode | The number of the node to track displacement from.
dir | The direction of the displacement to track. Can be either 'X', 'Y' or 'Z'
filename | The name of the file of which the nodetracker should write. Must be a unique name for each nodetracker.
ttime | The time where the target is to be checked.
ttol | The tolerance for the target time
tvalue | The target value.
valuetol | The tolerance for the target value
Example | 1 node = [23] direction = z filename = nodedisp.trk
See also | Trackwriter, Sectionforce, Trackers

Command | NodeAcceleration
Block | Trackers
Description | This tracker reads the acceleration of a single node and plots the result into a file. The file is currently readable by the GID pre/postprocessor but the tracker can also print in a different fileformat. This is controlled by the Trackwriter command. Target is a value set by the user. If this value is reached during simulation, a file will be written (with extension .target). This is useful when debugging new versions of Impact.
Syntax | nr node = [tnode] DIRECTION = dir FILENAME = fname TARGET = [ttime,timetol,tvalue,valuetol]
Options |
nr | The tracker number. Must be a unique number in the model, i.e. another nodetracker cannot have the same number.
tnode | The number of the node to track acceleration from.
dir | The direction of the acceleration to track. Can be either 'X', 'Y' or 'Z'
filename | The name of the file of which the nodetracker should write. Must be a unique name for each nodetracker.
ttime | The time where the target is to be checked.
ttol | The tolerance for the target time
tvalue | The target value.
valuetol | The tolerance for the target value
Example | 1 node = [23] direction = z filename = nodeacc.trk
See also | Trackwriter, Sectionforce, Trackers

Command | Sectionforce
Block | Trackers
Description | This tracker collects the nodal forces from a range of nodes. The first three of the nodes is the basis of a plane of which a normal axis is calculated. The force from each node is calculated in this direction, summarised and then plotted. A minimum of three nodes must be specified. This tracker is suitable for measuring the load through a cross section of a member or a beam.
Syntax | nr nodes = [node1,node2,node3,nodeN] direction = dir filename = fname
Options |
nr | The tracker number. Must be a unique number in the model, i.e. another sectionforcetracker cannot have the same number.
node1,2,.. | The number of the first node etc. The first three nodes are mandatory. The rest are optional.
dir | The direction of the forces to be collected. Can only be equal to "negative". When set, all the forces acting in the opposite direction to the section normal will be summed. If this parameter is not specified at all, the forces acting in the same direction as the section normal will be summed (default).
filename | The filename of the result file of which the tracker should print the results. Must be unique for each tracker.
Example | 1 nodes = [23,24,12,34,15] filename = sectionforce_1.trk
See also | Nodeforce, Trackwriter, Trackers

Command | Energy
Block | Trackers
Description | This tracker reads the energy from the model and plots it. There are several different energy types that can be plotted, but only one per tracker
Syntax | nr TYPE = ttype FILENAME = fname TARGET = [ttime,timetol,tvalue,valuetol]
Options |
nr | The tracker number. Must be a unique number in the model, i.e. another nodetracker cannot have the same number.
ttype | The type of energy to plot. Can be one of contact - for contact energy. external - for external applied energy. internal - for internal absorbed energy. hourglass - for hourglass energy used to stabilize some elements.
filename | The name of the file of which the energytracker should write. Must be a unique name for each energytracker.
ttime | The time where the target is to be checked.
ttol | The tolerance for the target time
tvalue | The target value.
valuetol | The tolerance for the target value
Example | 1 type = external filename = energy_external.trk
See also | Trackwriter, Sectionforce, Trackers

Command | NodeDistance
Block | Trackers
Description | This tracker calculates the distance between two nodes and plots it as a function of time into a selected file. The distance is the shortest space distance.
Syntax | nr node = [node1,node2] FILENAME = fname TARGET = [ttime,timetol,tvalue,valuetol]
Options |
nr | The tracker number. Must be a unique number in the model, i.e. another NodeDistance tracker cannot have the same number.
node1,node2 | The number of the nodes to track distance between.
filename | The name of the file of which the tracker should write. Must be a unique name for each tracker.
ttime | The time where the target is to be checked.
ttol | The tolerance for the target time
tvalue | The target value.
valuetol | The tolerance for the target value
Example | 1 node = [23,15] filename = nodedist.trk
See also | Trackwriter, Sectionforce, Trackers

Command | RodForce
Block | Trackers
Description | This tracker reads the local force from a given Rod_2 element. The force is then plotted into a file as a function of time. Note that the force is always local and not plotted in any global direction.
Syntax | nr element = [telem] FILENAME = fname TARGET = [ttime,timetol,tvalue,valuetol]
Options |
nr | The tracker number. Must be a unique number in the model, i.e. another RodForce tracker cannot have the same number.
telem | The number of the Rod_2 element to track force from.
filename | The name of the file of which the tracker should write. Must be a unique name for each tracker.
ttime | The time where the target is to be checked.
ttol | The tolerance for the target time
tvalue | The target value.
valuetol | The tolerance for the target value
Example | 1 element = [23] filename = rodforce.trk
See also | Trackwriter, Sectionforce, Trackers

Command | BeamSpring
Block | Trackers
Description | This tracker reads the local force from a given Beam_Spring_2 element. The force or moment is then plotted into a file as a function of time. Note that the force or moment is always local and not plotted in any global direction.
Syntax | nr element = [telem] FILENAME = fname COMPONENT = comp TARGET = [ttime,timetol,tvalue,valuetol]
Options |
nr | The tracker number. Must be a unique number in the model, i.e. another BeamSpring tracker cannot have the same number.
telem | The number of the Beam_Spring_2 element to track force or moment from.
filename | The name of the file of which the tracker should write. Must be a unique name for each tracker.
comp | Sets which component to track. Can be one of: FX, FY, FZ, MX, MY, MZ. If nothing is set here, the default is to track the FX component.
ttime | The time where the target is to be checked.
ttol | The tolerance for the target time
tvalue | The target value.
valuetol | The tolerance for the target value
Example | 1 element = [23] filename = beamspring_mz.trk component = mz
See also | Trackwriter, Sectionforce, Trackers, Beam_Spring_2

## Other Indata and Outdata Formats

Impact is designed to handle other indata and outdata formats. At the time of writing, there are no additional formats supported but the process of extending Impact is documented in the programmers manual for those who would like to.

### Units

Impact can handle any unit of indata as long as the user is consistent between the different types. The following table summarizes possible combinations for SI units, but similar principles also works for any other units:

Length | Time | Mass | Force | Pressure | Velocity | Density | Energy | Gravity
m | s | Kg | Kg m/s2 | N/m2 | m/s | Kg/m3 | Kgm2/s2 | 9.81
m | s | Kg | N | Pa | m/s | m Kg/l | J | 9.81
m | s | g | mN | mPa | m/s | micro Kg/l | mJ | 9.81
m | s | Mg (ton) | KN | KPa | m/s | Kg/l | KJ | 9.81
m | ms | Kg | MN | MPa | Km/s | m Kg/l | MJ | 9.81e-6
m | ms | g | KN | KPa | Km/s | micro Kg/l | KJ | 9.81e-6
m | ms | Mg (ton) | GN | GPa | Km/s | Kg/l | GJ | 9.81e-6
mm | s | Kg | mN | KPa | mm/s | M Kg/l | micro J | 9.81e+3
mm | s | g | micro N | Pa | mm/s | g/mm3 | nJ | 9.81e+3
mm | s | Mg (ton) | N | MPa | mm/s | Mg/mm3 | mJ | 9.81e+3
mm | ms | Kg | KN | GPa | m/s | M Kg/l | J | 9.81e-3
mm | ms | g | N | MPa | m/s | K Kg/l | mJ | 9.81e-3
mm | ms | Mg (ton) | MN | TPa | m/s | G Kg/l | KJ | 9.81e-3
cm | ms | g | daN | 10^5 Pa (bar) | dam/s | Kg/l | dJ | 9.81e-4
cm | ms | Kg | 10^4 N (KdaN) | 10^8 Pa (Kbar) | dam/s | K Kg/l | hJ | 9.81e-4
cm | ms | Mg (ton) | 10^7 N(MdaN) | 10^11 Pa (Mbar) | dam/s | M Kg/l | 10^5 J | 9.81e-4
cm | micro s | g | 10^7 N (MdaN) | 10^11 Pa (Mbar) | 10^4 m/s | Kg/l | 10^5 J | 9.81e-10

### The Impact Translator Mode

Impact has a mode where it works as a translator between different file formats. This happens when the solver is invoked with both an infile and an outfile. Alternatively, this feature is available from the GUI by using the file import button available in the editor.

Currently, Impact supports files that have been opened with a .msh ending and a .nas ending. These represents a file from Gmsh or a file in Nastran format respectively, so make sure that your sourcefile has the right ending.

Activating the translator can also be done from outside the GUI by writing the follwing at the command prompt:

`java run.Impact infile outfile`

### Nastran models

Impact now supports a basic Nastran to Fembic file format translation. It can mainly be used for translating nodes and elements. Do not expect materials or constraints to be transferred correctly. Currently, only MAT1 and SPC1 types are available, so if you have problems translating files, rename the materials or boundary conditions to get the processing done. Also,if the nodes are expressed in some kind of coordinate system other than the global, do not expect proper geometry.

The translator also has a problem with the way that engineering number format is expressed. An example can be 0.7800-8. This will not work. When this happens, change the number in an editor to 0.780e-8 instead.

Some programs export a nastran file where the command for a node (GRID) is expressed as GRID*. The same applies for elements i.e. CBAR becomes CBAR*. The solution here is to replace all * with a simple whitespace and then it should translate correctly.

To speed up the process of translation, always place the property commands ( PSHELL or similar) at the top of the file. Unless you do that, it will take ages to translate a file.

### Gmsh models

The Open Source Pre and Postprocessor Gmsh is now supported by Impact. The output from the preprocessor (Version 1.0 of the .msh format) can be translated into Fembic format in the same manner as for the nastran .nas file.

When creating models in Gmsh, you can configure the mesh with a couple of special parameters that have been defined especially for interface with Impact. These parameters are available in a .geo file which you will find in the interface directory in the Impact file structure. The file is called `impact.geo`

How to use the parameters are shown in another file in the same directory called bumper.geo. The geometry should be meshed with the mesh 2D button when running Gmsh and then exported as a .msh file (Version 1.0 file format). This file can then be read into the Impact editor and then saved as .in file. The file will then automatically be translated into Fembic file format (Impacts native file format). The user then needs to edit the file to set the timestep and other parameters as wanted.