HyperWorks Solvers

Multiple Input File Format

Multiple Input File Format

Previous topic Next topic Expand/collapse all hidden text  

Multiple Input File Format

Previous topic Next topic JavaScript is required for expanding text JavaScript is required for the print function  

Modeling Process


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.

rad2rad_multiiple_flowchart

 

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.

rad2rad_connection

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.

rad2rad_connection2

 

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.

rad2rad_connection4

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


Connection Type 5

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 master domain. Therefore, the part of the slave domain concerned by the contact must be duplicated in the master domain with a void material having same density and Young’s modulus. The contact is then treated normally by RADIOSS inside the master domain and a node-to-node specific connection type 5 (similar to connection type 4) must be used to connect the nodes of the artificial skin and the corresponding nodes of the slave domain.

multidomain_artificial_skin

In the Multi-Domain master input file, the definition of connection type 5 is similar to other connections; except that the nodes of the master domain (nodes of the artificial skin) must be declared first:

/LINK/TYPE5

Master_Domain  Link_Id1

Slave_Domain  Link_Id2

The following RADIOSS contact interfaces are compatible with Multi-Domain:

/INTER/TYPE5
/INTER/TYPE7
/INTER/TYPE10
/INTER/TYPE11
/INTER/TYPE18
/INTER/TYPE24, if (surf_ID1 > 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 type 5 is incompatible with contact interfaces using Lagrange multipliers formulation.

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

In the Multi-Domain master input file, the definition of connection type 5 is similar to other connections; except that the nodes of the master domain (that is nodes of the artificial skin) must be declared first:

/LINK/TYPE5

Master_Domain  Link_Id1

Slave_Domain  Link_Id2

If kinematic constraints are applied on the part of the slave domain that is duplicated in the master domain, they must be duplicated as well.

In the case of a rigid body duplication, the master node must be specified in the RAD2RAD connection type 5.
In the case of interface type 2 duplication, an additional flag /TIED must be specified in the RAD2RAD input file.
Note:For rigid bodies or interfaces type 2, the slave nodes can be removed from the RAD2RAD connection. Their behavior is defined only by their master nodes or master 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


RADIOSS Starter Input File

Definition of connections (or links) between domains:

/EXTERN/LINK/Link_ID

title

   gr_ID

Where, gr_ID is a nodal group identifier defining frontier nodes with other domain(s) and Link_ID is a 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.

 

RADIOSS 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

 

RAD2RAD Input File

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.

 

How to Launch a Multi-Domain Analysis


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

Manual Method

To manually launch a Multi-Domain computation, use the command line to browse to the working directory that containing the input files of the individual domains (_0000.rad and _0001.rad) and the Multi-Domain master input file (input.dat).

Launch Starter for each domain in a terminal using the command:

In UNIX: <install_dir>/hwsolvers/bin/linux64/s_version -i “filename”

In Windows: <install_dir>\hwsolvers\bin\win64\s_version -i “filename”

Then launch RAD2RAD in a terminal using the command:

In UNIX: <install_dir>/hwsolvers/bin/linux64/r2r_version input.dat

In Windows: <install_dir>\hwsolvers\bin\win64\r2r_version input.dat

RAD2RAD will then wait for RADIOSS connections from the individual domains.

Launch Engine for the individual domains in separate terminals, as follows:

In UNIX: <install_dir>/hwsolvers/bin/linux64/e_version -i “filename”

In Windows: <install_dir>\hwsolvers\bin\win64\e_version -i “filename”

All the RADIOSS processes will then connect automatically to RAD2RAD.

By Script

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

Launch Starter for each domain the same way as described above
Add a script called "run_SMP" or "run_SPMD" in your working directory
In the script, change name of the input files, location of executables (MPI, RAD2RAD and RADIOSS Engine) and the number of processors, if necessary.
Run the script in a terminal
hmtoggle_plus1SMP script example
Linux : run_linux_SMP

./s_<version> < 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;

hmtoggle_plus1SPMD script 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;

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.

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

Actual 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 master 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 type 5.
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 master 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.
hmtoggle_plus1Example

rad2rad_example

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 1

PART2 4

/LINK/TYPE5

PART3 9

PART1 3

$===============================================================

$3 OPTIONS

$===============================================================

/MLTPS/ON

0.1 0.1

/MESHL/MORFIN

/RADIUS/1e-7

/END $===============================================================