OpenRadioss / OpenRadioss

OpenRadioss is a powerful, industry-proven finite element solver for dynamic event analysis
https://www.openradioss.org
GNU Affero General Public License v3.0
592 stars 273 forks source link

Include Implicit Solver #585

Closed senpaibernd closed 1 year ago

senpaibernd commented 2 years ago

I get different compiler errors on different systems when I follow the instructions in the cmake text file (version with AND without MPI). I am probably still doing something wrong when compiling the required packages lapack scalapack and mumps.

I think it would be a good idea to include the implicit solver in general. Traditionally, this is the other big solver world, which is always needed - even if the solver comes from the explicit world ;-)

senpaibernd commented 2 years ago

...or can anyone provide a step-by-step manual how to compile the engine with mumps so that it actually works?

elequiniou commented 2 years ago

Yes, this is the plan, provide an easier way to build implicit solvers, including MUMPS. We are working on it. Thanks for your patience.

senpaibernd commented 2 years ago

That sounds great! I am looking forward to a solution!

senpaibernd commented 1 year ago

I tried the additional arguments in the buildscript (I also noticed the changes in the file cmake_linux64_gf.txt): The dependent libraries (lapack, scalapack) compile without errors, but when compiling the engine I still get the same error.

senpaibernd commented 1 year ago

To get an idea what i did exactly, here is my step-by-step instruction:

Install WSL 2
Install Ubuntu 20 (22 with GCC 10 prodces a fortran compiler error which I cannot avoided at the moment)
Install packages:
   sudo apt-get update
   sudo apt-get upgrade
   sudo apt-get install build-essential gfortran cmake perl
   sudo apt-get install openmpi-bin libopenmpi-dev

wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.2.tar.gz
tar -xvzf openmpi-4.1.2.tar.gz
cd openmpi-4.1.2
sudo ./configure --prefix=/opt/openmpi
sudo make
sudo make install

Download ZIP RADIOSS from https://github.com/OpenRadioss/OpenRadioss and unzip (or git clone)

Now, build engine with MUMPS and OpenMPI:
Create and enter the directory OpenRadioss/extlib/mumps
Download packages:
wget https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v3.10.1.tar.gz
wget https://github.com/Reference-ScaLAPACK/scalapack/archive/refs/tags/v2.2.0.tar.gz
wget http://ftp.mcs.anl.gov/pub/petsc/externalpackages/MUMPS_5.5.1.tar.gz
Extract:
tar -xvzf (all packages)
Build:
lapack-dir:
make.inc.example --> make.inc
--> make
scalapack-dir:
SLmake.inc.example --> SLmake.inc
Modify:
BLASLIB       = /home/blind/OpenRadioss-main/extlib/mumps/lapack-3.10.1/librefblas.a
LAPACKLIB     = /home/blind/OpenRadioss-main/extlib/mumps/lapack-3.10.1/liblapack.a
--> make
mumps:
sudo apt-get install libmetis-dev libparmetis-dev libscotch-dev libptscotch-dev libatlas-base-dev openmpi-bin libopenmpi-dev liblapack-dev
Makefile.debian.PAR --> Makefile.inc
Modify:
LAPACK = /home/blind/OpenRadioss-main/extlib/mumps/lapack-3.10.1/liblapack.a
SCALAP  = /home/blind/OpenRadioss-main/extlib/mumps/scalapack-2.2.0/libscalapack.a /home/blind/OpenRadioss-main/extlib/mumps/lapack-3.10.1/librefblas.a
--> make

ENGINE:
Check before:
path_to_mumps/lib/libdmumps.a must exist
path_to_scalapack/libscalapack.a must exist
path_to_lapack/liblapack.a must exist
./build_script.sh -arch=linux64_gf -mpi=ompi –prec=dp –static-link -mumps_root=/home/blind/OpenRadioss-main/extlib/mumps/MUMPS_5.5.1 -scalapack_root=/home/blind/OpenRadioss-main/extlib/mumps/scalapack-2.2.0 -lapack_root=/home/blind/OpenRadioss-main/extlib/mumps/lapack-3.10.1
senpaibernd commented 1 year ago

Solved here: https://github.com/OpenRadioss/OpenRadioss/discussions/485