send

  'send' 'init'|
         <set> 'fbd' ['c','e','f']| ->
               'stl'| ->
               'abq'|'ans'|'ast'|'dar'|'frd'|'gmp'|->
               'lst'|'nas'|'ng'|'pat'|'skv'|'tcg' <RETURN>|
               ['bin']|['dbin']|
               ['ds'<nr>[+] [e<nr>[','|'-'<nr>]..]]|
               ['tmf']|
               ['sta' <refspeed>]|
               ['crp' <timefact> <refspeed> <writefreq>]|
               ['comp']|
               ['mpc' [[<rotation>|'v'<node> <v1> <v2> <v3> ]|
                                  ['n'<node>]]]|
               ['names']|
               ['raw']|
               ['spc' <dofs(1-6|t|p)> <value>]| ->
                 [<dofs(1-6|t|p)> 'ds'<nr> e<nr>]| ->
                 ['nor' <fac1> [<fac2> <fac3>]]| ->
                 ['nor' 'ds'<nr> 'e'<nr>]|
               ['spcf' <dofs(1-6|t|p)> <value>]| ->
                 [<dofs(1-6|t|p)> 'ds'<nr> 'e'<nr>]| ->
               ['slide' 'c'|'s'|'rx'| ->
                 'ry'|'rz'|'tx'|'ty'|'tz']|
               ['pres' [<value>]|['ds'<nr> 'e'<nr>] [+|-] ]|
               ['film' [[n<nodnr>][<temp>]|->
                     [[['ds'<nr>]|[sq<dsnr>-<dsnr>]] 'e'<nr>]->
                 [[<coeff>]|->
                 [['ds'<nr>]|[sq<dsnr>-<dsnr>] 'e'<nr>]] [+|-] ]| 
               ['rad' [[<temp>|[cr<temp>]|['ds'<nr> 'e'<nr>]] ->
                 [[<emis>|['ds'<nr> 'e'<nr>]] [+|-] ]|
               ['dflux' [[<load>]|['ds'<nr> 'e'<nr>]] [+|-] ]|
               ['mflow' [[<load>]|['ds'<nr> 'e'<nr>]] [+|-] ]|
               ['cflux' <load>]| 
               ['force' <f1> <f2> <f3>]|
               ['quadlin']|
               ['sur' [+|-] ]
  'send' <set> 'dolfyn' [<type> <set>] 
  'send' <set> ['duns'|'isaac'] [[<type>|'periodic'] <set>] 
  'send' <set> ['foam'] [<type> <set>] | ->
               ['cyclic' <set> <set> 'tx'|'ty'|'tz'|'rx'|'ry'|'rz'|
               'cx'|'cy'|'cz'|<vx,vy,vz>] 
  'send' <dep-set> <indep-set> 'nas'|'abq'|'ans' ['cycmpc'|'cycmpcf' ->
    'px'|'py'|'pz'|'tx'|'ty'|'tz'| ->
    'rx'|'ry'|'rz'|'cx'|'cy'|'cz'<+-segments> 'c'|'u'<NR>]| ->
    ['areampc' <dofs('t'|'p'|'1-6')> 'c'|'u'<Nr>]|'f'<value> ->
    ['areampc' 'slide']| ->
    ['areampc' 'presfit' ['s'<value>]]| ->
    ['gap' <vx> <vy> <vz> <tol>]
This keyword is used to send data to the file-system. In certain cases the written file-name contains given parameters to make them unique which is convenient when the user writes several files of the same type. But on the other hand this makes it sometimes hard to know in advance how the file would be named. Therefore the send command writes the file-name to the stack from which the user can derive the name if the ”stack” was activated.

The following formats are known (but not all options for all formats are fully supported so far); The geometry-format (fbd)

send set fbd

or

send set fbd c

will complete the set downwards before writing.

Usually the point coordinates are written in exponential format but with option 'f' after 'fbd' the point coordinates will be written in long float (double) format:

send set fbd f

Useful when otherwhise a '0.' is not exactly zero. The command

send set fbd e

will write all model-edges as small lines running from node to node. A special case of a command file is written with

send init

named init.fbl which stores status variables (also written at the end of geometry files). This can be used in a second or later session by reading it with the ”read” command:

read init.fbl

The user might use the ”menu” command to define two command lines for the writing and reading of the init file to a certain location. With this approach a certain orientation of the model can be quickly stored and restored.

A surface description with triangles (stl)can be written:

send all stl

This triangles are based on elements which were created by meshing surfaces or by automatically triangulated element-faces of all types of supported elements. If be2 elements are included in the mesh (meshed lines) a so called edge file for NETGEN will also be created if stl is written. NETGEN provides also a stand-alone mesher called ng_vol. The mesher can be found in the netgen sub-directory nglib. As for the stl-format triangles can be written for this mesher with:

send set ng

It has the advantage that the triangles are directly used to define tetras and not as with stl are only used to define the outer shape of the body.

The following mesh-related formats are known: Femview and CADfix (frd), Nastran (nas), Abaqus (abq), Ansys (ans), CodeAster (ast), Samcef (sam), Darwin (dar), patran (pat, only sets), gagemap (gmp, only sets) and Tochnog (tcg) but only ccx (Abaqus) is fully supported. Good support is also provided for ansys, darwin and nastran. If no further parameter follows then just the definition of the nodes and elements will be written:

send all abq

will write the mesh in the format used by Abaqus and the CalculiX solver. If the parameter ”ds” is provided followed by the dataset-nr

send set abq ds1

then the values stored in Dataset 1 are written. For 'frd'-format the 'ds' parameter w/o any further values forces cgx to write all datasets but w/o the internally calculated ones:

send all frd ds

If a “+” sign appears at the end of the 'ds' parameter

send all frd ds+

or

send all frd ds1+

then also the internally calculated values like vMises-stress are written. Additionally the entities might be specified with the 'e' parameter followed by the numbers to write. The numbers have to be separated by a ',' sign or in case of a range by a '-' sign:

send all frd ds1 e9,25-30

The “bin” parameter has the same meaning as the “ds” parameter but in this case the result is written in the single precision binary form of the frd-format ('dbin' writes formally double precision but the data are single precision). It writes always all datasets. In case data should be written for the crack analysis tool Darwin

send all dar ds

will write all datasets. Since Darwin changed the format from version 7.1 on, it is possible to change the format with the parameter 'v7.1' as the last parameter (use 'v7.1' and the darwin conversion tool for newer versions). If the set is of the ordered type and includes nodes (see “qseq”) then the data are written in tabular form for use in a 1D crack-prop Darwin-analysis.

In certain circumstances the user needs an easy solver independent format to write node- and element numbers. This is provided by the “lst” parameter:

send setname lst

will write the node- and element-numbers in lines of seven space separated rows.

The export of 'skv' input data for the quasi-normals is included:

send setname skv ds1

will write the node coordinates in y direction as 'r' coordinates, the x direction as 'z' coordinates, the values from the given dataset as the 'betaru' value, datasetnr+1 as the 'betazu' value, datasetnr+2 as the 'sigma' value and datasetnr+2 as the 'entropy' value.

Missing lower entities (nodes, points, lines etc.) will be added to the set before the set is written if the parameter ”comp” follows. For example geometry like bodies

send set fbd comp

will be extended by surfaces, lines and points or

send set frd comp

will include all nodes used by the elements to the set elem and will then write the file.

The parameter “quadlin” forces the conversion from second order elements into single order elements were each element is subdivided into 8 single order elements. This takes place during writing and will not change the current state of the mesh in cgx. Up to now it is only available for the abq format:

send all abq quadlin

If the parameter ”tmf” follows the definition of a solver format

send set abq tmf

then the mesh plus all temperatures with the necessary solver context for tmf calculations is written. If the parameter ”sta” follows

send set abq sta 2900.

then the mesh plus all temperatures with the necessary solver context for a static calculations is written. Here the value for ”speed” is a reference value for eventual numerical values in the TEXT-Block of the Datasets in the result file (frd-file, see ”Nodal Results Block”). A scaling factor will be determined based on the reference value (here a ref.speed of 2900.) and the individual TEXT-Block values (factor = speed**2 / refspeed**2). This factor is used in *AMPLITUDE commands which will also be written and will be used to scale static loads which are referenced in the *STEP data. If the parameter ”crp” follows

send set abq crp 1. 2900. 1

then the mesh plus all temperatures with the necessary solver context for creep calculations is written. Here the value for ”timefact” scales the time-values of the Datasets, ”speed” is a reference value for scaling static loads (see option “sta”) and writefreq limits the output to the result-file.

If the parameter ”names” follows the solver-type then just the element- or node-numbers are written. This is useful for defining sets for the solvers. The command

send steel abq names

will write the node and element numbers included in ”steel”. This file could be used to define a set for material assignments, boundary conditions or loads. If all sets should be written at once, use:

send all abq nam

When using “abq” together with “names” or “sur” a set is defined before the data lines. If this is not desired then the “raw” parameter has to be used instead of “names” or “sur”:

send nodeset abq raw

It is also possible to define and send some constraints to the file system. To constrain degrees of freedom (dof) of selected nodes use the parameter ”spc” in combination with the numbers of the constrained dofs and optionally a forced deflection. For example:

send hinge abq spc 123

will constrain the translational degrees of freedom of the nodes in set ”hinge”. Or

send hinge abq spc 12356

will leave just one rotational degree of freedom unconstrained. And

send move-nodes abq spc 1 0.1

will move the nodes in set move-nodes by 0.1 in direction 1.

send move-nodes abq spc 1 ds1 e1

will use the values from dataset-nr 1 and the entity-nr 1 for the forced displacement in direction 1 and

send move-nodes abq spc nor 0.1

will force the nodes included in set move-nodes by 0.1 in the normal direction (normal to the element-faces). The components of the vectors at the node positions can be scaled individually (fac1-3)). The vector length can also be read from an entity of a dataset:

send move-nodes abq spc nor ds1 e4

A subsequent calculation with ccx will move the mesh accordingly. After solving the deformed mesh can be used as a new mesh for further calculations. With this procedure geometric variations are possible without manipulating the geometry (morphing).

For the ccx cfd finite volumen method there is a “spc” function available which works on faces instead on nodes (see *BOUNDARYF in the ccx manual).

send Inlet abq spcf 123

The degees of freedom 123 define velocities and not deflections. Its called “spcf” and works otherwhise accordingly to the “spc” command. For the *INITIAL CONDITIONS keyword of ccx you write the data for example with

send all abq ds123

were ds123 is the dataset-nr shown in front of datasets (not loadcases) in cgx. It can be a vector (velocity) or scalar (pressure, temperature).

The parameter ”slide” in combination with one additional parameter will create equations that force the selected nodes to move only in a plane. If the additional parameter ”s” is specified then the specified nodes will be attached to their element faces. All nodes of the affected element-faces have to be selected. For example you type:

send sur abq slide s

and this should attach the node with the node-nr. 1 to a plane parallel to the surface of the corresponding element-face. This element uses the node 1, 2, 3, 4, 5, 6, 7 and 8 where 1, 2, 3 and 4 are on the surface of the mesh. The program will detect this element face and constrain the node only then if the nodes 2, 3 and 4 were also included in the set ”sur”! The detected elements or faces of volume-elements will be assigned to the set. So it is possible to check the detected elements. Instead of providing a set with the necessary nodes, you might instead provide a set with shell-elements or/and faces of volume-elements. The nodes will be derived from them. In most cases this is the most convenient way.

A special case which works probably only in ccx (abaqus might give wrong results) is triggered by the “c” parameter. It behaves as for the “s” parameter but works for cycsym calcs:

send cycsur abq slide c

A new set with new nodes will be created with the name “<set>_COPY” which has to be used in the cycsym definition in ccx instead of “<set>”. In addition equations are specified which connect the new nodes with the original ones in the normal direction of the element faces. In this way two faces used in a cyclic symmetry connection will slide at each other instead of beeing glued in all directions.

If nodes should slide radially to the y axis then use ”ry”:

send sur abq slide ry

or use ”ty” if the nodes should move only tangential to the y axis. In both cases the axial movement is still permitted.

The parameter ”sur” will write the surfaces of the mesh either in abaqus-format for the *SURFACE command or in frd-format as shell elements. For example

send top abq sur

will write the elements in set top together with the face-nr (Important: Only free surfaces of the mesh are regarded, internal faces are unknown and can not be identified). The front- or rear side of the face (pos or neg) is selected with the '+' or '-' parameter:

send surset abq sur -

will write all surfaces in set surset in abaqus format and all surfaces which have a potentially negative side will be written in that manner.

The parameter ”pres” is used to assign pressure values to element faces. For example

send surf abq pres 0.05

will assign the pressure value 0.05 to all element-faces in set surf. If a dataset with nodal values is available it is also possible to use this values instead of using a uniform value for all faces. For example

send surf abq pres lc1 e1

will specify the dataset-nr 1 and the entity-nr 1 to be used instead of a uniform value. The front- or rear side of the face (pos or neg) is selected with the '+' or '-' parameter (it has to be the last parameter).

The parameter ”film” is used to assign free-stream temperatures and thermal heat coefficients to element faces. It works similar to the ”pres” option. For example

send surf abq film 1200. 0.5

will assign the film temperature of 1200 and the coefficient 0.5 to all element-faces in set surf. If datasets with nodal values are available it is also possible to use this values instead of using a uniform value for all faces. For example

send surf abq film ds1 e1 0.5

will specify the dataset-nr 1 and the entity-nr 1 to be used for the temperature instead of a uniform value, or

send surf abq film ds1 e1 lc1 e2

will specify also the dataset-nr 1 with the entity-nr 2 to be used for the film-coefficients instead of a uniform value. The front- or rear side of the face (pos or neg) is selected with the '+' or '-' parameter (it has to be the last parameter). Instead of a single dataset-nr a range can be given:

send surf abq film sq1-9 e1 sq1-9 e2

and instead of giving e determined value for the temperature a node of a thermal network can be specified with:

send surf abq film n1277 ds1 e1

The parameter ”rad” is used to assign a sink temperatures and the emissivity to element faces. It works similar to the ”pres” option. For example

send surf abq rad 1200. 0.5

will assign the sink temperature of 1200 and the emissivity 0.5 to all element-faces in set surf. If datasets with nodal values are available it is also possible to use this values instead of using a uniform value for all faces. For example

send surf abq rad lc1 e1 1200.

will specify the dataset-nr 1 and the entity-nr 1 to be used for the temperature instead of a uniform value, or

send surf abq rad lc1 e1 lc1 e2

will specify also the dataset-nr 1 with the entity-nr 2 to be used for the emissivity instead of a uniform value. The front- or rear side of the face (pos or neg) is selected with the '+' or '-' parameter (it has to be the last parameter). If cavity radiation should be used then the command has to use the 'cr' attribute:

send surf abq rad cr1000. 0.7

Here 1000. is either the sink temperature, or, if the ccx parameter ENVNODE is active (*RADIATE,ENVNODE), the sink node.

The parameters ”dflux” and ”mflow” are used to assign an energy stream or a mass-flow to element faces. They work similar to the ”pres” option. For example

send surf abq dflux 0.5

will assign the flux of 0.5 to all element-faces in set surf. And

send surf abq mflow 0.5

will assign the mass-flow of 0.5 to all element-faces of the given set. If a dataset with nodal values is available it is also possible to use this values instead of using a uniform value for all faces. For example

send surf abq dflux lc1 e1

will specify the dataset-nr 1 and the entity-nr 1 to be used instead of a uniform value. The front- or rear side of the face (pos or neg) is selected with the '+' or '-' parameter (it has to be the last parameter).

The parameter ”cflux” is used to assign an energy stream to nodes. For example

send surf abq cflux 0.5

will assign the flux of 0.5 to all nodes in set surf.

The parameter ”force” is used to assign force values to nodes. For example

send nodes abq force 1. 20. 0.

will assign the specified forces to all nodes of the set nodes.

The parameter ”mpc” is either used to create input for the user-subroutine umpc which forces all nodes from ”set” to rotate by an average value specified with ”rotation” around the vector v, or to create a rigid body. In case of a rotation the value has to be in degree were 90 degree is orthogonal. For example

send nodes abq mpc 4. 1. 0. 0.

will assign the nodes of the set ”nodes” to the user-subroutine umpc and will force them to rotate by 4 degree around the x-axis. Two files are produced. One file with the equation and the reference node has to be included in the model-definition-section and the boundary-file in the step section. The reference node is used to apply the pre-defined rotation but can also be used to apply a moment by using the *CLOAD command. The number of the reference node is always one above the highest node number in the current mesh. You may use “node” to increase the last node number in the model.

In case of a rigid-body request there are two other parameters in combination with “mpc” available. The rotation value is replaced by a nodenr of an independent node which will be created based on either provided coordinates

send nodes nas mpc v4711 1. 0. 0.

or by averaged coordinates based on the specified set (here “nodes”) which are interpreted as dependent nodes:

send nodes nas mpc n4711

In both cases an RBE2 (nastran) or *RIGID BODY,REF NODE=nodenr (ccx,abq) element will be created which connect all this nodes. See also ”asgn” on how to predefine a thermal expansion coefficient “alfa” for this element (only nastran).

Another useful method are so called ”cyclic symmetry” equations. These equations are used when just a section of a rotation-symmetric part like a disk is modeled. These equations force the two cutting planes of such a section to move exactly equal in the cylindrical system. If the coordinate system of the displacements for the solver is rectangular (xyz) then the syntax is:

send dep indep nas cycmpc rx12 c1

Here ”dep” is the set containing the nodes of the dependent side. These nodes will be replaced by the solver with the independent nodes from the set ”indep”. In this case the equations will be written in the nastran format ”nas” (in nastran called MPC). The parameter ”rx12” defines the displacement system as rectangular ”r”, the rotational axis is ”x” and the ”12” defines the number of segments in 360 deg, therefore the angle of the segment is 360 deg /12. Attention: The sign of the number-of-segments must be negative if the angle between the independent side and the dependent side is negative. When the nr-of-segments is omitted the value is calculated individual for each node. The ”c” triggers the correction of the position of the dependent nodes to a position defined by the angle of the segment (highly recommended), ”u” would prevent the correction. The ”1” will be the identifier for the equations if the format is nas (nastran). In case the format would be ans (ansys) then the ”1” would be the number of the first equation. No number is required for abq (abaqus and calculix). If the coordinate system of the displacements is cylindrical (rtz) then the example would be:

send dep indep nas cycmpc cx12 c1

Only the ”r” from ”rx12” is changed to ”c”. A thermal connection is created with:

send dep indep nas cycmpc tx c

The thermal connection is triggered by the ”t”, a pressure connection with “p”. See comments above for the single parameters. In case of the ccx cfd finite volumen method the syntax is similar but only the function name itself differs:

send dep indep abq cycmpcf rx12 c1

The function name for cfd elements is 'cycmpcf' instead of 'cycmpc'.

In addition it is possible to ”glue” independent meshes together. For this purpose the dependent nodes are tied to independent elements by equations. Choose the finer mesh for the dependent side. The equations are based on the shape-functions of the element types. For example

send dep indep nas areampc 123 c1

will connect the nodes in the set dep to element-faces described by nodes included in the set indep. The set dep must contain all nodes which should be ”glued” and the set indep should contain all nodes of the elements surfaces to which the dep nodes should be glued. The numbers ”123” are the degrees of freedom which will be connected (”t” will create a thermal connection, “p” a press-fit connection). The ”c” triggers the correction of the position of the dependent nodes to a position on the surface of the independent elements (highly recommended and default), ”u” would prevent the correction, “f” forces the dependent node away from the independent face. Of course the mesh has to be written after the use of such a command, otherwhise the corrected node positions would not be regarded and the equations would lead to increased stiffness and decreased accuracy. The ”1” will be the identifier for the equations if the format is nas (nastran). In case the format would be ans (ansys) then the ”1” would be the number of the first equation. No number is required for abq (abaqus and calculix), see also ”How to connect independent meshes”.

There is also the ”slide” option in combination with the ”areampc” option: For example if the mesh of a turbine-blade and a disk should be connected with each other in a simpler but realistic way then a sliding condition between this parts can be established. The command:

send dep indep abq areampc slide

will connect the nodes in the set dep to element-faces described by nodes included in the set indep but only in the direction perpendicular to a plane defined by nodes of the dep-set. Therefore all dep-nodes and all indep-nodes must lie in the same plane and will slide in the same plane!

Another case is considered with the ”presfit” option in combination with the ”areampc” option. For example if a cylindrical press fit should be simulated then a forced displacement between the two intersecting surfaces is necessary. This forces the dependent nodes to move to the independent face. Two modes are available:

send dep indep abq areampc presfit f

simulates sticking friction and with the option s

send dep indep abq areampc presfit s

works for sliding conditions. The user might request a certain value for the press fit if the overlapping of the mesh do not represent the necessary distance:

send dep indep abq areampc presfit s0.06

will move the dep-nodes 0.06 in the normal direction of the independent faces (works also with option f). Additional nodes are generated and can be used to request the reaction forces on the dependent nodes. They are stored in a set named N<dep-set-name><ind-set-name>. Two files are produced. The one with the equations has to be included in the model-definition-section and the boundary-file in the step section.

To define so called ”gap” elements and related control-commands: These elements will connect parts if they are closer as a certain distance. For example if the distance is zero (contact). The command:

send dep indep abq gap 1. 0. 0.

will connect the nodes in the set dep and indep with gap-elements but only if they match each other in the direction 1.

Special cases are the cfd-solvers Duns, Isaac and OpenFoam. The boundary patches are an integral part of the mesh. So it is necessary to specify all boundary patches when writing the mesh. Which means that all free surfaces of the mesh must be specified. This is an example for OpenFoam:

send all foam cyclic cyc1 cyc2 cx patch in patch out wall wall

will write the so called polyMesh description to the file-system. After the send command the set (all) with the mesh is specified, then the format (foam), then cyclic boundary conditions (cyclic cyc1 cyc2 cx) between set cyc1 and cyc2 of the axi-symmetric case around x (cx), then boundary conditions of type patch for set ”in” (patch in), then boundary conditions of type patch for set ”out” (patch out) and boundary conditions of type wall for set ”wall” (wall wall).

The symmetric boundary-conditions (base-type: cyclic) can be axi-symmetric (c) around x,y,z or rectangular (r) in direction of x,y,z. Only for OpenFoam and in the rectangular (Cartesian) case also a vector pointing in the direction of the symmetry can be specified (ie: 1.,1.,0.)

For dolfyn, duns and isaac the same syntax has to be used:

send all duns viscous-wall profil subsonic-inflow in subsonic-outflow out

send all isaac WALL profil FARFIELD far EXTRAPOLATE out

send all dolfyn INLE ingang OUTL uitgang ... etc. The parameters like 'viscous-wall', 'FARFIELD', 'INLE' are specific for the single cfd tools and are described in the documentation of these programs. The cgx knows a certain BC called 'periodic' to glue the left side to the right side of a mesh and so creating a periodic mesh (cascade). One set for each pair of lines or lcmb's (2D) or surfaces (3D) must be used. For example:

send all duns viscous-wall profil subsonic-inflow in subsonic-outflow out periodic cyc1 periodic cyc2 periodic cyc3

The cgx is able to write parts of the solver input file when certain values are defined (see ”valu”). If they are defined the boundary conditions and gas properties will be written to the “duns.bou” or “isaac.dat” file. The following values can be provided for that purpose:

WallTemperature
temperature   // inlet
pressure  // outlet
stagnation-pressure  // inlet
stagnation-temperature  // inlet
u-velocity  // inlet
v-velocity  // inlet
ini-velocity-factor  // scales the initial velocity field
The user has to add missing commands before he can use the input files.

The initial flowfield values 'MACH' and 'ALPHA' for isaac is scaled by 'ini-velocity-factor' for better convergence if a 'JET' boundary condition is specified. In this case the inlet conditions are defined using the 'JET' conditions (the necessary inlet static pressure is calculated by cgx if the stagnation values are present). Further information is available in ”Remarks Concerning Duns and Isaac”. The velocity of the initial flowfield for duns is also scaled by 'ini-velocity-factor'.

Be aware that duns and isaac use block meshes which must be created using the set 'all'. So the use of set 'all' together with the parameter 'block' is mandatory when the block structure is needed! Nevertheless the user might only assign an element type to a sub set so that only a part of the geometry will be meshed (see ”mesh”).