Difference between revisions of "HowTo:adina"

From CAC Wiki
Jump to: navigation, search
(Created page with "= Adina = This is a short introduction about the usage of ADINA on our machines. It is intended to help our users to get started with the ADINA system, showing how to set up...")
 
 
(15 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
= Adina =
 
= Adina =
  
This is a short introduction about the usage of ADINA on our machines. It is intended to help our users to get started with the ADINA system, showing how to set up environment variables to use ADINA for preprocessing, processing, and post processing data, as well as how to submit large jobs to the scheduler. You will find also pointers to the documentation.  
+
'''Note : Adina software is slated to be de-continued by March 2017'''.
 +
 
 +
This is a short introduction about the usage of ADINA on our machines. It is intended to help users to get started with the ADINA system, showing how to setup environment variables to use ADINA for preprocessing, processing, and postprocessing data. Finally, we explain how to submit large jobs to the scheduler. You will find also pointers to the documentation available on our systems and on the ADINA web site.
  
 
{|  style="border-spacing: 8px;"
 
{|  style="border-spacing: 8px;"
| valign="top" width="50%" style="padding:1em; border:1px solid #aaaaaa; background-color:#e1eaf1; border-radius:7px" |  
+
| valign="top" width="50%" style="padding:1em; border:1px solid #aaaaaa; background-color:#e1eaf1; border-radius:7px" |
== Features ==
+
== General Overview ==
== General Overview of ADINA  ==
+
  
ADINA (Automatic Dynamic Incremental Non-linear Analysis) is a general-purpose finite element program for advanced engineering analysis in the fields of Structural Mechanics, Fluid Mechanics, Fluid-Structure Interactions, Heat Transfer, and Themomechanical Coupling.
+
ADINA(Automatic Dynamic Incremental Non-linear Analysis) is a general-purpose finite element program for advanced engineering analysis in the fields of Structural Mechanics, Fluid Mechanics, Fluid-Structure Interactions, Heat Transfer, and Themomechanical Coupling.
  
 
The ADINA system consists of various programs that come with different tools and utilities that can be used independently or at once. In particular:
 
The ADINA system consists of various programs that come with different tools and utilities that can be used independently or at once. In particular:
Line 15: Line 16:
 
* '''ADINA User Interface (aui8.5)''' for pre-processing and post-processing (including geometry, mesh generation and analysis).
 
* '''ADINA User Interface (aui8.5)''' for pre-processing and post-processing (including geometry, mesh generation and analysis).
  
The present version of ADINA program in HPCVL machines is: '''ADINA 8.5.2'''
+
The present version of ADINA program is '''8.5.2'''
  
 
=== ADINA system ===
 
=== ADINA system ===
Line 55: Line 56:
  
 
For more details check the information provided at the end of this document.
 
For more details check the information provided at the end of this document.
|}
 
  
== Location of the program and setup ==
+
==== Parallel Processing ====
  
The present version of ADF is 2016.101. The programs in the ADF package reside in /opt/adf. To use ADF on our machines, it is required that you read our licensing agreement and [http://www.hpcvl.org/sites/default/files/ADF_statement.pdf sign a statement]. You will then be made a member of a Unix group adf, which enables you to run the software.
+
ADINA also allows Parallel Processing (at the solver level only for SUN)
  
ADF requires the sourcing of a setup script to function properly:
+
* Parallelization for:
 +
** Calculation
 +
** Assemblage of the element matrices
 +
** Solution of the equations
 +
** Calculation of the elements results
 +
* NO pre-and post-processing with SUN Sparc architectures
 +
* DDM is performed automatically
 +
* Parallelization for:
 +
** ADINA-F does not have paralellized assembly.
 +
** ADINA and ADINA-T have paralellized assembly.
 +
** 64-bit Equation solver(for problems demanding large size memory)
 +
** 32-bit Porthole file.
  
<pre>
+
For more details check the information provided at the end of this document.
source /opt/adf/adf2016.101/adfrc.sh
+
</pre>
+
  
This script sets environment variables that are necessary for proper program execution and are used for the system to find executables and data files such as basis sets. Among others, SCMLICENSE is used by the license manager of the program to find a machine specific license file.
+
==== Available tools ====
  
The above settings is best applied through a call to usepackage on our system. Issuing the command
+
Moreover the '''adina''' and '''aui''' binaries, the ADINA system provides a set of shell scripts and utilities that allow the user to handle all aspects of running ADINA applications (located under '''$ADINAHOME/tools''')
  
<pre>use adf</pre>
+
The most important ones are:
  
will take care of this, as well as including the $ADFBIN directory in the $PATH. This command may also be placed into a login shell setup file (.bash_profile).
+
* '''adina8.5''' Shell script program that controls most of ADINA programs.
 +
* '''aui8.5''' Run the GUI and all demo examples.
  
== Scratch files ==
+
And, the list of applications (programs) is:
  
One of the settings is the environment variable '''SCM_TMPDIR''' which is required to redirect the temporary files that ADF uses to the proper scratch space, presently
+
* '''ADINA''' Structural Analysis $ADINAHOME/bin/adinat8.5
 +
* '''ADINA-F''' Incompressible and fully compressible flows $ADINAHOME/bin/adina8.5
 +
* '''ADINA-T''' Heat Transfer and field problems $ADINAHOME/adinat8.5
 +
* '''ADINA-FSI''' Fluid flows with structural interactions $ADINAHOME/adfsi8.5
 +
* '''ADINA-TMC''' Thermomechanical Coupling $ADINAHOME/adtmc8.5
 +
* '''ADINA-M''' ADINA User interface with solid Modeling $ADINAHOME/aui8.5
 +
* '''AUI''' ADINA User interface $ADINAHOME/aui8.5
  
<pre>/scratch/hpcXXXX</pre>
+
==== Getting started using ADINA ====
  
where hpcXXXX stands for your username. If for some reason ADF does not terminate normally (e.g. a job gets cancelled), it leaves behind large '''scratch files''' which you may have to delete manually. To check if such files exist, type
+
Before starting you have to add the path to Adina binaries, scripts and libraries (namely '''PATH''' and '''LD_LIBRARY_PATH'''), to your environment variables.  
 +
For instance one must add the following line into his setup file (.profile, .bashrc, .cshrc, ...)
  
<pre>ls -lt /scratch/hpcXXXX</pre>
+
: '''$ use adina'''
  
Usually the scratch files are in sub-directories that start with '''kid_'''. Once you have determined that the scratch files are no longer needed (because the program that used them is not running any more), you can delete them by typing
+
Which takes care of all the ADINA setup, in particular the following directories:
  
<pre>rm -r /scratch/hpcXXXX/kid_*</pre>
+
: '''$ADINAHOME/bin''' ADINA home directorie
 +
: '''$ADINAHOME/tools''' Shell scripts to run and maintain Adina programs
 +
: '''$ADINAHOME/adina8.5''' Executable and shared libraries for general problems
 +
: '''$ADINAHOME/adfsi8.5''' Executable and shared libraries for fluid-structure Interaction problems
 +
: '''$ADINAHOME/adinat8.5''' Executable and shared libraries for heat transfer problems
 +
: '''$ADINAHOME/adtmc8.5''' Executable and shared libraries for thermo-mechanical coupling problems
 +
: '''$ADINAHOME/aui8.5''' Executable and shared libraries for Adina UI problems
  
Cleaning up the scratch space is the user's responsibility. If it is not done regularly, it can cause jobs to terminate, and much work to be lost.
+
The shared libraries are under '''$ADINAHOME/{ aui8.5, adfsi8.5, adina8.5, adinaf8.5, adinat8.5, adinatmc8.5, aui8.5, plugins, image, format }'''
|}
+
  
 +
Once done, ADINA system can be started either with the GUI '''aui8.5''' for interactive session, or with the '''adina''' program to run jobs from the command line.
 +
 +
|}
 
{|  style="border-spacing: 8px;"
 
{|  style="border-spacing: 8px;"
 
| valign="top" width="50%" style="padding:1em; border:1px solid #aaaaaa; background-color:#f7f7f7; border-radius:7px" |
 
| valign="top" width="50%" style="padding:1em; border:1px solid #aaaaaa; background-color:#f7f7f7; border-radius:7px" |
== Running ADF from a command line==
 
  
The following instructions assume that you are a member of the Unix group "adf". The instructions in this section are only useful if you need to run test jobs of a short duration. If you want to run a production job, please refer to to instructions on how to start a ADF batch job.
+
== Running ADINA ==
  
Once program usage is set up through the "use" command, the program(s) can be run:
+
=== Local Usage of Adina ===
  
<pre>
+
On our systems, a user can only access Adina after they have filled in a [http://www.hpcvl.org/sites/default/files/adina-statement.pdf Adina User statement] (please fax to (613) 533-2015 or scan/email to [mailto:cac.admin@queensu.ca cac.admin@queensu.ca]. The statement is to the effect that the user  will abide by the licensing terms, namely by using the software for academic research purposes only.
adf <in >out
+
</pre>
+
  
Instructions about the job are read from standard input, which has been redirected from a file in in the above command lines. Commonly an input file will be constructed to specify what calculation is to be run. The output of the program(s) goes to "standard output" and has been redirected to an output file out above. Note that the output of these programs is commonly thousands of lines long and should therefore be redirected in any case.
+
=== Interactive session with ADINA ===
  
The construction of a proper input file for ADF is an involved process, and is outside the scope of this help file. Detailed instructions can be found in the ADF User's Guide, which should be studied before the program can be used properly. As an initial hint, here is a  sample input file:
+
To enter the  '''ADINA'''  Graphical environment you must be logged in to a terminal or workstation that is running X-Windows and be sure that your '''DISPLAY''' environment variable is set for the terminal from which you are running X-windows.
  
<pre>
+
If you log in from a '''UNIX''' machine using '''ssh''' then type:
title benzene BP/SZ bondorders tol=0.05
+
  
define
+
: '''$ ssh -X -l hpcxxxx sfnode0.hpcvl.queensu.ca'''
cc=1.38476576
+
ccc=120.0
+
dih=0.0
+
hc=1.07212846
+
hcc= 120.0
+
dih2=180.0
+
end
+
  
atoms Z-matrix
+
followed by
C  0 0 0
+
C  1 0 0  cc
+
C  2 1 0  cc ccc
+
C  3 2 1  cc ccc dih
+
C  4 3 2  cc ccc dih
+
C  5 4 3  cc ccc dih
+
H  2 1 3  hc hcc dih2
+
H  3 2 4  hc hcc dih2
+
H  4 3 5  hc hcc dih2
+
H  5 4 3  hc hcc dih2
+
H  6 5 4  hc hcc dih2
+
H  1 2 3  hc hcc dih2
+
end
+
  
basis
+
: '''$ ssh -X swlogin1'''
Type SZ
+
Core None
+
end
+
  
symmetry NOSYM
+
and then:
  
xc
+
: '''$ use adina'''
  gga becke perdew
+
end
+
  
bondorder tol=0.05 printall
+
To start the Graphic User Interface 'AUI' type:
  
noprint sfo
+
: '''$ aui'''
</pre>
+
  
The input consists of several units, separated by blank lines, starting with a keyword, and ending with the statement END. For instance, the atoms in a molecules may be specified by issuing the keyword atoms, followed by one line with the atom name and "Z-matrix" relative coordinates for each atom, and closing with end (case insensitive).
+
which gives you the '''ADINA''' graphical window consisting of three major areas:
  
'''Note:''' It is absolutely essential to have a good idea about the size and complexity of your calculations before you start a ADF job. Many of the methods have terrible scaling properties, i.e. the computational cost grows very quickly with the number of electrons, degrees of freedom, or number of basis functions used. We suggest you start with a small basis set and a cheap method, and then slowly increase those parameters.
+
* Graphics Window
 +
* Command Window
 +
* Message Window
  
== Submitting (parallel) ADF jobs ==
+
A '''HELP''' button is present at the top right of the GUI from where you can see a list of available documents and also information about demo examples.
  
In most cases, you will run ADF in batch mode.
+
To see all '''aui8.5''' input options type:
  
Production jobs are submitted to our systems via the Grid Engine, which is a load-balancing software. To obtain details, read our Grid Engine FAQ. For an ADF batch job, this means that rather than issuing the above commands directly, you wrap them into a Grid Engine batch script. Here is an example for such a batch script:
+
: '''$ aui8.5 -help'''
 +
 
 +
The most important ones are:
 +
 
 +
* '''-mm MMAX''' maximum memory for entire analysis
 +
* '''-ms MSPARSE''' maximum memory for sparse solver
 +
* '''-m MSTORE''' memory for matrix/element storage
 +
* '''-t threads''' number of CPUs to use
 +
* '''-ulimit''' remove limitation on all resources for this process
 +
 
 +
Users interested in using frequently ADINA should consult the specific chapters in the '''ADINA User’s Guide''' located under directory '''$ADINAHOME/docs'''
 +
 
 +
=== ADINA jobs from the command line ===
 +
 
 +
ADINA programs are controlled by a shell script named '''adina''' stored in the directory '''$ADINAHOME/tools'''
 +
 
 +
The shell script will submit and run your adina job, it has many input options. The minimun necessary to run a job is :
 +
 
 +
: '''$ adina job_name'''
 +
 
 +
Where '''job_name''' is the name of the job which must end with a '''.dat''' suffix.
 +
 
 +
Other options of interest to our users are:
 +
 
 +
: '''-u user''' use ser defined subroutine. The default is '''yes'''
 +
: '''-t num''' Where 'num' is the number of threads. The default is '''one'''
 +
: '''-nthread num''' Where 'num' is the number of threads for parallel matrix solver. The default is '''one'''
 +
: '''-lib directory_name''' Where directory_name is the name of the directory where the job data I/O operations are done. The default is the current working directory.
 +
: '''-m MTOT''' Amount of memory for use by program. For example, to specify 20 megabytes, use -m 20mb
 +
: '''-in[fep]''' start in pre-processor mode
 +
 
 +
'''fep''' can be one of the following letters:
 +
 
 +
: '''A''' Pre-processing for ADINA Structures
 +
: '''F''' Pre-processing for ADINA CFD
 +
: '''T''' Pre-processing for ADINA Thermal
 +
 
 +
'''-plot''' start in post-processor mode
 +
'''-cmd''' run in command mode
 +
'''-s''' filename command file
 +
'''-tools dir''' Directory for script to run ADINA solutions. Default is '''$ADINAHOME/tools'''
 +
'''-tmp dir''' Directory for temporary files. Default is '''/hpcxxxx/scratch'''
 +
'''-ma''' Maxsize Parameter, overrides value given in include file. The default '''NORMAL''' number is 20 Mbyte, and the maximum amount of memory '''MAXSIZE''' to allocate is 4Gbyte.
 +
 
 +
 
 +
'''Note.''' ADINA manages the memory dynamically, so in most cases you will not have to use this option.
 +
 
 +
=== Batch ADINA jobs ===
 +
 
 +
As indicated above the '''adina''' utility script allow the user to run adina jobs in batch mode, which can be used without any other option in the process of developing and debugging your ADINA applications.
 +
 
 +
By default '''adina''' will run the job in background and in order to avoid input verification before starting the job add the ''''-v no'''' option.
 +
For example, if the name of adina job is 'cyl2.dat' (look at the examples in one of these directories '''$ADINAHOME/examples''' or '''$ADINAHOME''' one may type:
 +
 
 +
: '''$ adina -j cyl2'''
 +
 
 +
or also, if you are using your own user defined subroutine '''user.f''' with ADINA, you can type:
 +
 
 +
: '''$ adina -j cyl2 -u user'''
 +
 
 +
'''Note'''. Once your job is ready for production, you should use instead the Grid Engine job management system to run and manage your ADINA jobs, (see next section).
 +
 
 +
|}
 +
{|  style="border-spacing: 8px;"
 +
| valign="top" width="50%" style="padding:1em; border:1px solid #aaaaaa; background-color:#e1eaf1; border-radius:7px" |
 +
 
 +
== ADINA jobs with Grid Engine  ==
 +
 
 +
=== Submitting sequential ADINA jobs through Grid Engine ===
 +
 
 +
Before starting we refer users to our Grid Engine FAQ for more details about the usage of Grid Engine on our machines.
 +
 
 +
Submitting a sequential adina job to Grid Engine queues is the same as submitting any sequential job. But users must make sure that there is no interaction between the program and them, and also note that you can not run the '''adina GUI''' program through Grid Engine.
 +
 
 +
Here is some basic steps you should follow in order to submit your job:
 +
 
 +
* All the data required to run the job must be collected in the command file '''job_name.in''' (created by '''AUI''').
 +
* If submitting a batch job use '''adina''' or '''adina -cmd'''
 +
* You may also need to give the full pathname of '''adina''' shell script if your environment variables are not exported.
 +
 
 +
After this, the executable line in your Grid Engine batch script should look like this:
 +
 
 +
: '''$ adina job_name'''
 +
 
 +
and then you can add other Grid Engine general options like mail notification or name of the job, etc ...
 +
 
 +
A full example of Adina sequential job with Grid Engine can be found here:
  
 
<pre>
 
<pre>
#! /bin/bash
+
#!/bin/sh
 +
# This is a simple example of a GE batch script for adina
 +
# request Bourne again shell as shell for job
 
#$ -S /bin/bash
 
#$ -S /bin/bash
 +
# name of the job
 +
#$ -N baseline
 +
# export environment variables
 
#$ -V
 
#$ -V
 +
# Joining standard output and error into a specified file
 +
#$ -j y
 
#$ -cwd
 
#$ -cwd
#$ -M MyEmailAdress@whatever.com
+
# run adina job
#$ -m be
+
adina8.5 -R 3000MB cyl2
#$ -o STD.out
+
#$ -e STD.err
+
#$ -pe shm.pe 12
+
adf -n $NSLOTS <sample.adf >sample.log
+
 
</pre>
 
</pre>
  
This script needs to be altered by replacing all the relevant items. It sets all the necessary environment variables (make sure you issued a "use adf" statement before using this), and then starts the program. The lines in the script that start with #$ are interpreted the Grid Engine load balancing software as directives for the execution of the program.
+
Once your Grid Engine script for '''ADINA''' (let’s call it '''adina_seq.sh''') is ready you can submit it to Grid Engine:
  
For instance the line "#$ -m be" tells the Grid Engine to notify the user via email when the job has started and when it is finished, while the line beginning with "#$ -M" tells the Grid Engine about the email address of the user.
+
: '''$ qsub adina_seq.sh'''
  
The -o and -e lines determine whence the standard input and the standard error are to be redirected. Since the job is going to be executed in batch, no terminal is available as a default for these.
+
=== Submitting parallel adina jobs through Grid Engine ===
  
The ADF package is able to execute on several processors simultaneously in a distributed-memory fashion. This means that some tasks such as the calculation of a large number of matrix elements, or numerical integrations may be done in a fraction of the time it takes to execute on a single CPU. For this, the processors on the cluster need to be able to communicate. To this end ADF uses the MPI (Message Passing Interface), a well-established communication system.
+
ADINA system has parallel processing capabilities based on domain decomposition techniques. It’s available on shared and distributed machines using multithreading for communications between the processes, while the parallel performance of the solver is done using multithreading.
  
Because ADF uses a specific version of the parallel system MPI (ClusterTools 7), executing the use adf command will also cause the system to "switch" to that version, which might have an impact on jobs that you are running from the same shell later. To undo this effect, you need to type use ct8 when you are finished using ADF and want to return to the production version of MPI (ClusterTools 8).
+
Note that most features of ADINA are also available within the parallel framework (to see if your adina application can run in parallel take a look at '''ADINA Release notes''' or contact HPCVL support team.
  
ADF parallel jobs that are to be submitted to Grid Engine will use the MPI parallel environment and queues already defined for the user.
+
For a parallel job, moreover the conditions discussed in the previous section concerning sequential adina job with Grid Engine, you need to specify the number of processors to be used. This is done with two options of the '''adina''' script
  
Our sample script contains a line that determines the number of parallel processes to be used by ADF. The Grid Engine will start the MPI parallel environment (PE) with a given number of slots that you specify by modifying that line:
+
# '''adina -t num''' where 'num' is the number of processors, usually it’s the same as the number of subdomains, and the 'adina' program will split the hole domain to 'num' subdomains. Note that you can use 'aui8.5' to view the results in the hole domain or in any of the subdomaines.
 +
# '''adina -thread num''', where 'num' is the number of threads for parallel matrix solver only. (Note. This is used automatically in the case of parallel DDM jobs).
  
<pre>#$ -pe shm.pe ''number of processes''</pre>
+
The command line in your Grid Engine batch script should look like this:
  
where ''number of processes'' must be replaced (for instance, by 12 in our example above). It then determines the value of the environment variable NSLOTS which is used in the "adf" line of the sample script. This way, the system allocates exactly the number of processors that are used for the adf run, and no mismatch can occur.
+
: '''adina -j job_name'''
  
Once properly modified, the script (let's call it "adf.sh") can be submitted to the Grid Engine by typing
+
If you are interested in parallelizing the matrix solver only you can use this line:
  
<pre>qsub adf.sh</pre>
+
: '''adina -t num -j job_name'''
  
The advantage to submit jobs via a load balancing software is that the software will automatically find the resources required and put the job onto a node that has a low load. This will help executing the job faster. Note that the usage of Grid Engine for all production jobs on HPCVL clusters is mandatory. Production jobs that are submitted outside of the load balancing software will be terminated by the system administrator.
+
A full example of Adina parallel job with Grid Engine can be found here:
  
Luckily, there is an easier way to do all this: We are supplying a small perl script called that can be called directly, and will ask a few basic questions, such as the name for the job to be submitted and the number of processes to be used in the job. Simply type
+
<pre>
 +
#!/bin/sh
 +
# This is a simple example of a GE batch script for adina
 +
# request Bourne again shell as shell for job
 +
#$ -S /bin/bash
 +
# name of the job
 +
#$ -N baseline
 +
# export environment variables
 +
#$ -V
 +
# Joining standard output and error into a specified file
 +
#$ -j y
 +
#$ -cwd
 +
# Request of the multithreading parallel environment
 +
#$ -pe shm.pe 4
 +
#$ -v PARALLEL=4
 +
#$ -v OMP_NUM_THREADS=4
 +
# make sure <number_of_processors> is the same as above
 +
# run adina job
 +
adina8.5 -R 3000MB -t 4 cyl2
 +
</pre>
  
<pre>ADFSubmit</pre>
+
Once your Grid Engine script for Adina (let’s call it '''adina_par.sh''') is ready you can submit is through to Grid Engine:
  
and answer the questions. The script expects a ADF input file with "file extension" .adf to be present and will do everything else automatically. This is meant for simple ADF job submissions. More complex job submissions are better done manually.
+
: '''$ qsub adina_par.sh'''
|}
+
  
 +
|}
 
{|  style="border-spacing: 8px;"
 
{|  style="border-spacing: 8px;"
| valign="top" width="50%" style="padding:1em; border:1px solid #aaaaaa; background-color:#e1eaf1; border-radius:7px" |
+
| valign="top" width="50%" style="padding:1em; border:1px solid #aaaaaa; background-color:#f7f7f7; border-radius:7px" |
== Licensing ==
+
== Help and Documentation ==
 +
 
 +
A lot of ADINA specific documentation and examples can be found at [http://www.adina.com/support http://www.adina.com/support]
 +
 
 +
The set of ADINA system online manuals documentation (in PDF) is under the directory '''$ADINAHOME/doc'''.
  
ADF is a licensed program. The license held by the Centre for Advanced Computing is limited to our computers at our main site. That means that any of our users can use the program on our machines (but nowhere else), whether they are located at Queen's or not.
+
HPCVL users will find the follwoing documents:
  
We require users of ADF to [http://www.hpcvl.org/sites/default/files/adf-statement.pdf sign a statement] in which they state that they are informed about the [http://www.hpcvl.org/sites/default/files/adf-licence.pdf terms of the license] to be included in the Gaussian user group named "adf". Please fax the completed statement to (613) 533-2015 or scan/email to [mailto:cac.admin@queensu.ca cac.admin@queensu.ca].
+
'''
 +
* '''ADINA User Interface Command Reference Manual:'''
 +
** '''Volume I: Solids and Structures'''
 +
** '''Volume II: Heat Transfer'''
 +
** '''Volume III: CFD and FSI'''
 +
** '''Volume IV: Display Processing'''
 +
* '''ADINA Theory and Modeling Guides:'''
 +
** '''Volume I: Solids and Structures'''
 +
** '''Volume II: Heat Transfer'''
 +
** '''Volume III: CFD and FSI'''
 +
* '''ADINA User Interface Primer Guide'''
 +
* '''ADINA verification Manual'''
 +
* '''ADINA Nastran Interface'''
 +
* Under the '''$ADINAHOME/samples''' directory you will find the set of problems accompagning the training and also the introductory courses.
 +
* Under the '''$ADINAHOME/docs''' directory you will find the '''Adina User’s Guide'''.
  
== Help ==
+
You can also access the '''HELP''' menu from the ADINA GUI, from where you get the list of all '''PRODUCT DOCUMENTATION''' and also a possibility to run '''DEMONSTRATION''' problems.
  
* To learn the basics about Gaussian input and output, refer to the [https://www.scm.com/documentation/ADF/index/ ADF 2016 Manual].
+
HPCVL also offers user support; for questions about this FAQ and usage of ADINA software on HPCVL machines, [[Contacts:UserSupport|contact us]] or send an email to : '''help@hpcvl.org'''
* For templates, and to get many examples, check out [https://www.scm.com/documentation/ADF/Examples/Examples/ https://www.scm.com/documentation/ADF/Examples/Examples/].
+
* The [http://www.gaussian.com Gaussian web page] contains a lot of information.
+
* '''Send [mailto:cac.help@queensu.ca|email to cac.help@queensu.ca]'''. We're happy to help.
+
 
|}
 
|}

Latest revision as of 18:19, 29 August 2017

Adina

Note : Adina software is slated to be de-continued by March 2017.

This is a short introduction about the usage of ADINA on our machines. It is intended to help users to get started with the ADINA system, showing how to setup environment variables to use ADINA for preprocessing, processing, and postprocessing data. Finally, we explain how to submit large jobs to the scheduler. You will find also pointers to the documentation available on our systems and on the ADINA web site.

General Overview

ADINA(Automatic Dynamic Incremental Non-linear Analysis) is a general-purpose finite element program for advanced engineering analysis in the fields of Structural Mechanics, Fluid Mechanics, Fluid-Structure Interactions, Heat Transfer, and Themomechanical Coupling.

The ADINA system consists of various programs that come with different tools and utilities that can be used independently or at once. In particular:

  • 0ADINA (adina8.5) for processing and analysis
  • ADINA User Interface (aui8.5) for pre-processing and post-processing (including geometry, mesh generation and analysis).

The present version of ADINA program is 8.5.2

ADINA system

ADINA can run indiferently from the command line in interactive or batch mode, or through the AUI graphic interface.

Adina program has a large number of features and also Parallel Processing capabilities; as showed in this list of most important features:

Problems Solved

  • Linear and Nonlinear structural analysis
  • Dynamic analysis
  • Thermal analysis of structures
  • Buckling of structure
  • Frequency analysis of structures
  • Structural materials
  • Heat Transfer
  • Coupled Problems
  • Multiphysics
  • CFD including CFD Boundary conditions, and CFD Material models.

For more details check the information provided at the end of this document.

Solvers

  • Frequency
    • Sparse solver
  • Large Models
    • Iterative conjugate-gradient procedure with preconditioning
    • GMRES with preconditioning
  • Fluid Flows
    • Iterative conjugate-gradient procedure
    • Iterative procedures
    • Bi-conjugate-gradient technique
  • Multigrid
  • Direct Skyline
  • Explicit
    • For ADINA-F only

For more details check the information provided at the end of this document.

Parallel Processing

ADINA also allows Parallel Processing (at the solver level only for SUN)

  • Parallelization for:
    • Calculation
    • Assemblage of the element matrices
    • Solution of the equations
    • Calculation of the elements results
  • NO pre-and post-processing with SUN Sparc architectures
  • DDM is performed automatically
  • Parallelization for:
    • ADINA-F does not have paralellized assembly.
    • ADINA and ADINA-T have paralellized assembly.
    • 64-bit Equation solver(for problems demanding large size memory)
    • 32-bit Porthole file.

For more details check the information provided at the end of this document.

Available tools

Moreover the adina and aui binaries, the ADINA system provides a set of shell scripts and utilities that allow the user to handle all aspects of running ADINA applications (located under $ADINAHOME/tools)

The most important ones are:

  • adina8.5 Shell script program that controls most of ADINA programs.
  • aui8.5 Run the GUI and all demo examples.

And, the list of applications (programs) is:

  • ADINA Structural Analysis $ADINAHOME/bin/adinat8.5
  • ADINA-F Incompressible and fully compressible flows $ADINAHOME/bin/adina8.5
  • ADINA-T Heat Transfer and field problems $ADINAHOME/adinat8.5
  • ADINA-FSI Fluid flows with structural interactions $ADINAHOME/adfsi8.5
  • ADINA-TMC Thermomechanical Coupling $ADINAHOME/adtmc8.5
  • ADINA-M ADINA User interface with solid Modeling $ADINAHOME/aui8.5
  • AUI ADINA User interface $ADINAHOME/aui8.5

Getting started using ADINA

Before starting you have to add the path to Adina binaries, scripts and libraries (namely PATH and LD_LIBRARY_PATH), to your environment variables. For instance one must add the following line into his setup file (.profile, .bashrc, .cshrc, ...)

$ use adina

Which takes care of all the ADINA setup, in particular the following directories:

$ADINAHOME/bin ADINA home directorie
$ADINAHOME/tools Shell scripts to run and maintain Adina programs
$ADINAHOME/adina8.5 Executable and shared libraries for general problems
$ADINAHOME/adfsi8.5 Executable and shared libraries for fluid-structure Interaction problems
$ADINAHOME/adinat8.5 Executable and shared libraries for heat transfer problems
$ADINAHOME/adtmc8.5 Executable and shared libraries for thermo-mechanical coupling problems
$ADINAHOME/aui8.5 Executable and shared libraries for Adina UI problems

The shared libraries are under $ADINAHOME/{ aui8.5, adfsi8.5, adina8.5, adinaf8.5, adinat8.5, adinatmc8.5, aui8.5, plugins, image, format }

Once done, ADINA system can be started either with the GUI aui8.5 for interactive session, or with the adina program to run jobs from the command line.

Running ADINA

Local Usage of Adina

On our systems, a user can only access Adina after they have filled in a Adina User statement (please fax to (613) 533-2015 or scan/email to cac.admin@queensu.ca. The statement is to the effect that the user will abide by the licensing terms, namely by using the software for academic research purposes only.

Interactive session with ADINA

To enter the ADINA Graphical environment you must be logged in to a terminal or workstation that is running X-Windows and be sure that your DISPLAY environment variable is set for the terminal from which you are running X-windows.

If you log in from a UNIX machine using ssh then type:

$ ssh -X -l hpcxxxx sfnode0.hpcvl.queensu.ca

followed by

$ ssh -X swlogin1

and then:

$ use adina

To start the Graphic User Interface 'AUI' type:

$ aui

which gives you the ADINA graphical window consisting of three major areas:

  • Graphics Window
  • Command Window
  • Message Window

A HELP button is present at the top right of the GUI from where you can see a list of available documents and also information about demo examples.

To see all aui8.5 input options type:

$ aui8.5 -help

The most important ones are:

  • -mm MMAX maximum memory for entire analysis
  • -ms MSPARSE maximum memory for sparse solver
  • -m MSTORE memory for matrix/element storage
  • -t threads number of CPUs to use
  • -ulimit remove limitation on all resources for this process

Users interested in using frequently ADINA should consult the specific chapters in the ADINA User’s Guide located under directory $ADINAHOME/docs

ADINA jobs from the command line

ADINA programs are controlled by a shell script named adina stored in the directory $ADINAHOME/tools

The shell script will submit and run your adina job, it has many input options. The minimun necessary to run a job is :

$ adina job_name

Where job_name is the name of the job which must end with a .dat suffix.

Other options of interest to our users are:

-u user use ser defined subroutine. The default is yes
-t num Where 'num' is the number of threads. The default is one
-nthread num Where 'num' is the number of threads for parallel matrix solver. The default is one
-lib directory_name Where directory_name is the name of the directory where the job data I/O operations are done. The default is the current working directory.
-m MTOT Amount of memory for use by program. For example, to specify 20 megabytes, use -m 20mb
-in[fep] start in pre-processor mode

fep can be one of the following letters:

A Pre-processing for ADINA Structures
F Pre-processing for ADINA CFD
T Pre-processing for ADINA Thermal

-plot start in post-processor mode -cmd run in command mode -s filename command file -tools dir Directory for script to run ADINA solutions. Default is $ADINAHOME/tools -tmp dir Directory for temporary files. Default is /hpcxxxx/scratch -ma Maxsize Parameter, overrides value given in include file. The default NORMAL number is 20 Mbyte, and the maximum amount of memory MAXSIZE to allocate is 4Gbyte.


Note. ADINA manages the memory dynamically, so in most cases you will not have to use this option.

Batch ADINA jobs

As indicated above the adina utility script allow the user to run adina jobs in batch mode, which can be used without any other option in the process of developing and debugging your ADINA applications.

By default adina will run the job in background and in order to avoid input verification before starting the job add the '-v no' option. For example, if the name of adina job is 'cyl2.dat' (look at the examples in one of these directories $ADINAHOME/examples or $ADINAHOME one may type:

$ adina -j cyl2

or also, if you are using your own user defined subroutine user.f with ADINA, you can type:

$ adina -j cyl2 -u user

Note. Once your job is ready for production, you should use instead the Grid Engine job management system to run and manage your ADINA jobs, (see next section).

ADINA jobs with Grid Engine

Submitting sequential ADINA jobs through Grid Engine

Before starting we refer users to our Grid Engine FAQ for more details about the usage of Grid Engine on our machines.

Submitting a sequential adina job to Grid Engine queues is the same as submitting any sequential job. But users must make sure that there is no interaction between the program and them, and also note that you can not run the adina GUI program through Grid Engine.

Here is some basic steps you should follow in order to submit your job:

  • All the data required to run the job must be collected in the command file job_name.in (created by AUI).
  • If submitting a batch job use adina or adina -cmd
  • You may also need to give the full pathname of adina shell script if your environment variables are not exported.

After this, the executable line in your Grid Engine batch script should look like this:

$ adina job_name

and then you can add other Grid Engine general options like mail notification or name of the job, etc ...

A full example of Adina sequential job with Grid Engine can be found here:

#!/bin/sh
# This is a simple example of a GE batch script for adina
# request Bourne again shell as shell for job
#$ -S /bin/bash
# name of the job
#$ -N baseline 
# export environment variables
#$ -V
# Joining standard output and error into a specified file
#$ -j y
#$ -cwd
# run adina job
adina8.5 -R 3000MB cyl2

Once your Grid Engine script for ADINA (let’s call it adina_seq.sh) is ready you can submit it to Grid Engine:

$ qsub adina_seq.sh

Submitting parallel adina jobs through Grid Engine

ADINA system has parallel processing capabilities based on domain decomposition techniques. It’s available on shared and distributed machines using multithreading for communications between the processes, while the parallel performance of the solver is done using multithreading.

Note that most features of ADINA are also available within the parallel framework (to see if your adina application can run in parallel take a look at ADINA Release notes or contact HPCVL support team.

For a parallel job, moreover the conditions discussed in the previous section concerning sequential adina job with Grid Engine, you need to specify the number of processors to be used. This is done with two options of the adina script

  1. adina -t num where 'num' is the number of processors, usually it’s the same as the number of subdomains, and the 'adina' program will split the hole domain to 'num' subdomains. Note that you can use 'aui8.5' to view the results in the hole domain or in any of the subdomaines.
  2. adina -thread num, where 'num' is the number of threads for parallel matrix solver only. (Note. This is used automatically in the case of parallel DDM jobs).

The command line in your Grid Engine batch script should look like this:

adina -j job_name

If you are interested in parallelizing the matrix solver only you can use this line:

adina -t num -j job_name

A full example of Adina parallel job with Grid Engine can be found here:

#!/bin/sh
# This is a simple example of a GE batch script for adina
# request Bourne again shell as shell for job
#$ -S /bin/bash
# name of the job
#$ -N baseline 
# export environment variables
#$ -V
# Joining standard output and error into a specified file
#$ -j y
#$ -cwd
# Request of the multithreading parallel environment
#$ -pe shm.pe 4 
#$ -v PARALLEL=4
#$ -v OMP_NUM_THREADS=4
# make sure <number_of_processors> is the same as above
# run adina job
adina8.5 -R 3000MB -t 4 cyl2

Once your Grid Engine script for Adina (let’s call it adina_par.sh) is ready you can submit is through to Grid Engine:

$ qsub adina_par.sh

Help and Documentation

A lot of ADINA specific documentation and examples can be found at http://www.adina.com/support

The set of ADINA system online manuals documentation (in PDF) is under the directory $ADINAHOME/doc.

HPCVL users will find the follwoing documents:

  • ADINA User Interface Command Reference Manual:
    • Volume I: Solids and Structures
    • Volume II: Heat Transfer
    • Volume III: CFD and FSI
    • Volume IV: Display Processing
  • ADINA Theory and Modeling Guides:
    • Volume I: Solids and Structures
    • Volume II: Heat Transfer
    • Volume III: CFD and FSI
  • ADINA User Interface Primer Guide
  • ADINA verification Manual
  • ADINA Nastran Interface
  • Under the $ADINAHOME/samples directory you will find the set of problems accompagning the training and also the introductory courses.
  • Under the $ADINAHOME/docs directory you will find the Adina User’s Guide.

You can also access the HELP menu from the ADINA GUI, from where you get the list of all PRODUCT DOCUMENTATION and also a possibility to run DEMONSTRATION problems.

HPCVL also offers user support; for questions about this FAQ and usage of ADINA software on HPCVL machines, contact us or send an email to : help@hpcvl.org