HowTo:adina

From CAC Wiki
Revision as of 18:55, 30 May 2016 by Hasch (Talk | contribs) (Where can I get more help and documentation?)

Jump to: navigation, search

Adina

This is a short introduction about the usage of ADINA on HPCVL machines. It is intended to help HPCVL users getting started with the ADINA system, showing how to setup environment variables to use ADINA for preprocessing, processing, and postprocessing data. And how to submit large sequential and/or parallel jobs through Grid Engine. You will find also pointers to the documentation available on HPCVL machines and on 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 in HPCVL machines is: ADINA 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 admin@hpcvl.org. 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; which should be the cas if you are connecting through the portal.

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 HPCVL 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 HPCVL Grid Engine FAQ for more details about the usage of Grid Engine on HPCVL 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