Multiple Input File Format

Model Setup

The multiple input format setup was the first to be introduced in Radioss Multi-Domain technique. Each subdomain is built as a separate complete Radioss model, using its own complete input files. The coupling between the Radioss Engine computations is ensured by the RAD2RAD program based on the connections between domains defined in each Radioss model.


Figure 1.

Connection between Domains

A connection (or link) between 2 domains is always defined by 2 groups of nodes relating to the two corresponding meshes to be connected to each other and the type of this connection. Below is a list of available types of connections in RAD2RAD.

TYPE 1: Shell to Shell (Schur Dual Method)

It may be used to link shell element meshes through Lagrange multipliers. The meshes may be compatible or incompatible and the interfaces may be open or closed.


Figure 2.
Note: In the case of incompatible meshes and open interface, the beginning and the ending point of the two faces must coincide. Heading the same way, in the case of closed interface, there must be at least one common point between the two faces.

TYPE 2: Shell to Beam (Schur Dual Method)

This type of link is very similar to TYPE 1; but it is adapted to beam/shell connection.
Note: The restrictions on the shell part are the same as for TYPE 1 in the case of incompatible meshes.


Figure 3.

TYPE 4: Node to Node (Schur Primal Method)

In the case of compatible meshes, the connection between domains can be reduced to simple node to node relations.


Figure 4.

This method is strictly equivalent to TYPE 1 for compatible meshes; but consumes less CPU time, as no matrix assembly and no inversion have to be performed. Furthermore, in this case, since only nodal data is needed, it can be used to connect any type of nodes (attached to any type of elements).

Note: In the case of shell to solid connection, the continuity condition is applied only on translational degree of freedom.

Contact between Domains

TYPE 5: Connection

It is also possible to compute contact between domains using the artificial skin method. The contacts are not computed by RAD2RAD, but inside one of the two domains called main domain. Therefore, the part of the secondary domain concerned by the contact must be duplicated in the main domain with a void material having same density and Young's modulus. The contact is then treated normally by Radioss inside the main domain and a node-to-node specific connection TYPE 5 (similar to connection TYPE4) must be used to connect the nodes of the artificial skin and the corresponding nodes of the secondary domain.


Figure 5.
In the Multi-Domain main input file, the definition of connection TYPE5 is similar to other connections; except that the nodes of the main domain (nodes of the artificial skin) must be declared first:
/LINK/TYPE5
Main_Domain Link_Id1
Second_Domain Link_Id2
Radioss contact interfaces that are compatible with Multi-Domain are:
  • /INTER/TYPE5
  • /INTER/TYPE7
  • /INTER/TYPE10
  • /INTER/TYPE11
  • /INTER/TYPE18
  • /INTER/TYPE24, if (surf_ID11 > 0, surf_ID2 > 0) or (surf_ID1 > 0, surf_ID2 = 0). Not if (grnd_IDs > 0, surf_ID1 = 0, surf_ID2 > 0).
Note: The RAD2RAD connection TYPE5 is incompatible with contact interfaces using Lagrange multipliers formulation.

Mass and nodal stiffness are transferred by RAD2RAD connection TYPE5 from the secondary domain to the artificial skin. Therefore, modifications of mass and nodal time step may be observed in the main domain at the beginning of the computation.

In the Multi-Domain main input file, the definition of connection TYPE5 is similar to other connections; except that the nodes of the main domain (that is nodes of the artificial skin) must be declared first:
/LINK/TYPE5
Main_Domain Link_Id1
Second_Domain Link_Id2
If kinematic constraints are applied on the part of the secondary domain that is duplicated in the main domain, they must be duplicated, in case of:
  • A rigid body duplication, the main node must be specified in the RAD2RAD connection TYPE5.
  • Interface TYPE2 duplication, an additional flag /TIED must be specified in the RAD2RAD input file.
Note: For rigid bodies or interfaces TYPE2, the secondary nodes can be removed from the RAD2RAD connection. Their behavior is defined only by their main nodes or main elements. That is why Multi-Domains will not have any effects on them.

The RAD2RAD is incompatible with Lagrange multipliers kinematic conditions, such as interface /INTER/LAGMUL/TYPE2 and /RWALL/LAGMUL.

Data Input

Starter Input File

Definition of connections (or links) between domains:
/EXTERN/LINK/Link_ID
title
 gr_ID
Where,
gr_ID
Nodal group identifier defining frontier nodes with other domain(s)
Link_ID
Link identifier

The number of external links in a Radioss model is not limited. The only restriction is that different links should not contain common nodes. Each link defines a distinct interface between current model and the external world.

Engine Input File

One Engine input file is required for each domain. In order to activate the coupling, all the Engine files must contain the following directive:
/RAD2RAD/ON
The RAD2RAD input file is a text file defining some additional information required by the RAD2RAD program. The names of the domains to connect and the connections between domains must be specified in the RAD2RAD input file. For each connection the identifier of the links that are connected and the used connection types must be specified. Some Multi-Domain specific parameters also have to be entered.
Note: For more information concerning the RAD2RAD input file, refer to the online documentation of Multi-Domain.

CPU Allocation

The Radioss domains are treated alternately; which means that only one Radioss process is running at a time. The full CPU resource is automatically allocated by the RAD2RAD to the running Engine process and the other processes are put in a no CPU consuming waiting mode. It means that all the same available CPU resources must be allocated to each domain during its computation.

Launch a Multi-Domain Analysis

There are two ways to launch a Multi-Domain computation, manually and through a script.

SMP Script Example
SPMD Script Example
  1. To manually launch a Multi-Domain computation, use the command line to browse to the working directory that contain the input files of the individual domains (_0000.rad and _0001.rad) and the Multi-Domain main input file (input.dat).
  2. Launch Starter for each domain in a terminal using the command:
    Option
    Description
    Linux
    <install_dir>/hwsolvers/bin/linux64/s_version -i "filename"
    Windows
    <install_dir>\hwsolvers\bin\win64\s_version -i "filename"
  3. Launch RAD2RAD in a terminal using the command:
    Option
    Description
    Linux
    <install_dir>/hwsolvers/bin/linux64/r2r_version input.dat
    Windows
    <install_dir>\hwsolvers\bin\win64\r2r_version input.dat
    RAD2RAD will then wait for Radioss connections from the individual domains.
  4. Launch Engine for the individual domains in separate terminals, as follows:
    Option
    Description
    Linux
    <install_dir>/hwsolvers/bin/linux64/e_version -i "filename"
    Windows
    <install_dir>\hwsolvers\bin\win64\e_version -i "filename"
    All the Radioss processes will then connect automatically to RAD2RAD.

An easier way to launch a Multi-Domain computation is to use a script.

  1. Launch Starter for each domain the same way as described above.
  2. Add a script called run_SMP or run_SPMD in your working directory.
  3. In the script, change name of the input files, location of executables (MPI, RAD2RAD and Radioss Engine) and the number of processors, if necessary.
  4. Run the script in a terminal.
    SMP Example
    Linux : run_linux_SMP
    ./s_<versin> < PART1_0000.rad
    ./s_<version> < PART2_0000.rad
    ./e_<version> < PART1_0001.rad > out_1 &
    ./e_<version> < PART2_0001.rad > out_2 &
    ./r2r_<version> input.dat
    Windows : run_win_SMP.bat
    E:\Rad2rad\s_<version>.exe -i PART1_0000.rad
    E:\Rad2rad\s_<version>.exe -i PART2_0000.rad
    set KMP_STACKSIZE=64M
    start /B E:\Rad2rad\e_<version>.exe -i PART1_0001.rad > out1
    start /B E:\Rad2rad\e_<version>.exe -i PART2_0001.rad > out2
    start /B E:\Rad2rad\r2r_<version>.exe input.dat
    Windows (cygwin) : run_win_SMP
    ./s_<version>.exe < PART1_0000.rad;
    ./s_<version>.exe < PART2_0000.rad;
    ./e_<version>.exe < PART1_0001.rad > out1&
    ./e_<version>.exe < PART2_0001.rad > out2&
    ./r2r_<version>.exe data4.dat;
    SPMD Example
    Linux : run_linux_SPMD
    ./s_<version> < PART1_0000.rad
    ./s_<version> < PART2_0000.rad
    /opt/hpmpi/bin/mpirun -np 4 ./e_<version> < PART1_0001.rad > out_1 &
    /opt/hpmpi/bin/mpirun -np 4 ./e_<version> < PART2_0001.rad > out_2 &
    ../exec/r2r_<version>_impi data4.dat
    Windows : run_win_SPMD.bat
    E:\Rad2rad\s_<version>.exe -i PART1_0000.rad -n 4
    E:\Rad2rad\s_<version>.exe -i PART2_0000.rad -n 4
    set KMP_STACKSIZE=64M
    start /B mpiexec -n 4 E:\Rad2rad\e_<version>.exe -i PART1_0001.rad > out1
    start /B mpiexec -n 4 E:\Rad2rad\e_<version>.exe -i PART2_0001.rad > out2
    start /B E:\Rad2rad\r2r_<version>.exe input.dat
    Windows (cygwin) : run_win_SPMD
    ./s_<version>.exe < PART1_0000.rad;
    ./s_<version>.exe < PART2_0000.rad;
    mpiexec -n 4 ./e_<version>.exe < PART1_0001.rad > out1&
    mpiexec -n 4 ./e_<version>.exe < PART2_0001.rad > out2&
    ./r2r_<version>.exe data4.dat;

RAD2RAD Parallelization

If the sizes of the Multi-Domain interfaces are big, the time spent in RAD2RAD for computing the coupling forces can be long. It is now possible to reduce this time by splitting the task of computing the coupling among several processors. Contrary to single input file setup, for the multiple input file setup only SMP parallelization of the RAD2RAD is available. The number of processors that can be used must be less than the number of cores available on the hardware node where RAD2RAD is launched. For example, a good value is 6 for a machine with 8 cores. The number of threads for the RAD2RAD can be specified using -nt in the command line like for the Engines or directly in the RAD2RAD input file using the keyword /PROC/nthread.
Note: The affect of the parallelization of the RAD2RAD on the CPU time is negligible if the number of nodes that are treated by the RAD2RAD is low ( < Nb of Cpus x 1000).
Note: As the connected Radioss Engines are sleeping when the RAD2RAD is active, the RAD2RAD parallelization is independent from the Engines parallelization. It means that one processor can be assigned to all the Engines as well as one processor is assigned to the RAD2RAD. They will use it one after the other.

MPI Settings

When using Multi-Domains and SPMD Engine executables, the following MPI environment variables should be used in order to improve the performances:
  • HP-MPI: MPI_FLAGS set to y0
  • Open-MPI: OMPI_MCA_mpi_yield_when_idle set to 1
  • Intel-MPI: Default settings can be used

Output Files

  • Radioss: Separate output files are generated by each Radioss process.
  • RAD2RAD: A specific output file named rad2rad.out is generated by RAD2RAD.

Version Restrictions

  • Each sub-domain is constructed as a complete. Separate Radioss model, using its own complete input files.
  • The data transfers between Radioss processes and main program use the pipe system method of communication. All Radioss Engines and the RAD2RAD must be started on the same hardware node.
  • Kinematic conditions on common nodes between domains are compatible only with connection TYPE5.
  • The RAD2RAD program is not parallelized for multiple input files setup. This may lead to reduced performance in Multi-Domain computations with large subdomains running on a large number of CPU's.
  • Currently, the Multi-Domain calculus is not automatically executed by the main program. All Radioss Starters must have been executed before the RAD2RAD program is launched. Although, batch execution is possible, RAD2RAD and all Radioss Engine processes must be launched independently and in parallel, on the single hardware node.
  • For each Radioss domain, the number of links is limited to 15 and the number of CPU's is limited to 128.

Example: RAD2RAD Input File



Figure 6. Model

RAD2RAD Input File

$===============================================================
$ RAD2RAD R8 INPUT FILE :
$===============================================================
$ 1. PARTS DEFINITION
$===============================================================
/DOMAIN/PART1
1 2 3
/DOMAIN/PART2
4 5
/DOMAIN/PART3
9
$===============================================================
$ 2. INTERFACES  DEFINITION
$===============================================================
/LINK/TYPE1
PART1 2
PART2 5
/LINK/TYPE1
PART1 1PART2 4
/LINK/TYPE5
PART3 9
PART1 3
$===============================================================
$3 OPTIONS
$===============================================================
/MLTPS/ON
0.1 0.1
/MESHL/MORFIN
/RADIUS/1e-7
/END   $===============================================================