Difference between revisions of "PhParAdapt/SCOREC"

From PHASTA Wiki
Jump to: navigation, search
(Download and compile (viz nodes))
m (Jrwrigh moved page PhParAdapt-SCOREC to PhParAdapt/SCOREC: Move to a subpage organization)
 
(No difference)

Latest revision as of 11:20, 18 September 2022


Download and compile (viz nodes)

This sections is inspired from <http://redmine.scorec.rpi.edu/projects/pumi/wiki/Build_Instructions>. Please read it first before continuing, as some information on this wiki page is not repeated. The SCOREC tools now build against CMake. Only Parma, the PHASTA utilities and phParAdapt still build against Autotools. From a terminal, run the following commands:

 soft add +cmake
 soft add +git
 cd ~
 mkdir SCOREC.develop
 cd SCOREC.develop
 git clone ssh://your_username@jumpgate-phasta.colorado.edu/users/mrasquin/SCOREC.develop/compilation 

The git command will download these instructions, along with a checkout and compile script for Parma and phParAdapt. The next commands to compile the whole stack with the GNU compiler on the viz nodes are:

 soft add +gcc-4.8.1
 soft add +openmpi-gnu
 mkdir install-gcc-O2 //all the libraries and executable will go there
 mkdir build-gcc-O2 // this is where you will run the cmake commands
 cd build-gcc-O2  // Go to the your build directory to execute the next cmake command
 cmake ../CMake.SCOREC -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/users/mrasquin/SCOREC.develop/install-gcc-O2 -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx 

The last cmake command creates the Makefiles. Do not forget to update the path to PREFIX according to your install directory. There are additional parameters and options that you can set up but this should allow you to get started on the viz nodes. If you want to see all the parameters, you can replace cmake by ccmake (note the 2 consecutive "c") in the command above. By default, it generates the Makefile with meshmodel. See the redmine link above about how to compile with parasolid or other geometric model instead of meshmodel. The cmake command also downloads the parmetis package inside the build-gcc-O2 directory. If you want to use 64 bit integer in parmetis in order to avoid integer overflow while partitioning a mesh with more than 100M elements par part (typically for the initial partitioning from 1 to n), edit

 ./parmetis-4.0.2/metis/include/metis.h

and set

 #define IDXTYPEWIDTH 64

Now, compile the SCOREC tools (in serial only for now - do not try make -j 8 for instance):

 make 2>&1 | tee log_cmake_make.dat #The output is saved in log_cmake_make.dat
 make install 2>&1 | tee log_cmake_install.dat #The output is saved in log_cmake_install.dat
 cd .. #back to SCOREC.develop

Now you should have the pumi tools installed in SCOREC.develop/install-gcc-O2. It is time to download and compile the Parma library. From SCOREC.develop,

 mkdir Autotools.SCOREC
 cd Autotools.SCOREC
 cp ../compilation/parma_install.sh .

Edit and update the script parma_install.sh. In particular, edit PREFIX to the same path used in the cmake command above. Other parameters you need to update are the compilation options (DEBUG), the svn username if you have one, etc. Then:

 ./parma_install.sh checkout_all 2>&1 | tee log_autotools_parma_checkout.dat
 ./parma_install.sh setup_all 2>&1 | tee log_autotools_parma_setup.dat
 ./parma_install.sh intall_all 2>&1 | tee log_autotools_parma_install.dat

For phParAdapt (and PHASTA utilites), the procedure is similar:

 cp ../compilation/phParAdaptBuild.sh
 edit path to PREFIX in parma_install.sh + other parameters
 ./phParAdaptBuild.sh checkout_all 2>&1 | tee log_autotools_phparadapt_checkout.dat
 ./phParAdaptBuild.sh setup_all 2>&1 | tee log_autotools_phparadapt_setup.dat
 ./phParAdaptBuild.sh install_all 2>&1 | tee log_autotools_phparadapt_install.dat

Your phParAdapt executable should be in ~/SCOREC.develop/install-gcc-O2/bin/phParAdapt

Convert geom_ver63.sms to FMDB format

  • This can be done in same directory in which you created geom_ver63.sms. You first need to convert geom_ver63.sms to FMDB format. The executable that will do this is at /users/jema6380/runSimMesh2FMDB.sh
  • Make a link from the output file, geom_FMDB.sms, to geom.sms (ln -s geom_FMDB.sms geom.sms)

Create geom.spj

  • If you have not done so already, create geom.spj. This is not done with Simulation Maker as was done previously, but can simply be done with a vim editor. See the file /users/jema6380/Models/Boeing/BetaScale2CaltechTunnel/CT_Open32_B0_D30_U20/9-A0-24jets/geom.spj for some guidance. As a quick example, if your boundary condition is a velocity of 20 i_hat m/s (comp3) on the inlet face (which let's say has a face number of 1651), then you would enter:
  comp3: 1651 2 20 1 0 0

where the "2" designates that we are talking about a face, which has 2 dimensions; the "20" is the speed; and the "1 0 0" is the direction.

  • Michel created a script that will make this process faster, which is desirable if you have a large number of faces. If you want to use the script, then first use the executable at /users/jema6380/getFaceList.sh to create a list of faces. From the terminal type:
  ./getFaceList.sh "input_file"

where "input_file" is the file that contains the face numbers, which presumably does not already list them consecutively. This might be BLattr.inp, for exmple.

  • Now create a new directory called "FacesModelAttributes" and put all of the boundary conditions in .dat files. See the files in /users/jema6380/Models/Boeing/BetaScale2CaltechTunnel/CT_Open32_B0_D30_U20/Simplified_SPJ_file/FacesModelAttributes/ for guidance. Make sure all the .dat files have a name that begins with "attr_" .
  • copy /users/jema6380/buildSimplifiedAttrFile.sh to the Simplified_SPJ_file directory and do:
  ./buildSimplifiedAttrFile.sh
  • This should create a file called result.spj, which contains all of the boundary conditions. cd back to your working mesh directory and make a link from result.spj to geom.spj. Also make a link from result.spj to geomNOIC.spj

Partition geom_ver63.sms

  • Make sure you have geom.xmt_txt in your working directory.