<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://fluid.colorado.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Moam3950</id>
		<title>PHASTA Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://fluid.colorado.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Moam3950"/>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php/Special:Contributions/Moam3950"/>
		<updated>2026-04-30T08:00:49Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2201</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2201"/>
				<updated>2026-04-26T05:45:29Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 6) Set environment variables for HONEE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/honee_stack/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g -march=native' \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g -march=native'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $CEED_DIR&lt;br /&gt;
echo $PETSC_DIR&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2200</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2200"/>
				<updated>2026-04-21T05:03:24Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Missing PETSc or libCEED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/honee_stack/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g -march=native' \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g -march=native'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $CEED_DIR&lt;br /&gt;
echo $PETSC_DIR&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=The_On_Ramp&amp;diff=2199</id>
		<title>The On Ramp</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=The_On_Ramp&amp;diff=2199"/>
				<updated>2026-04-15T19:18:42Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Level 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the '''PHASTA On Ramp'''! This page is meant to organize information for getting up to speed with the overall PHASTA workflow, as well as help you up your game as a PHASTA developer.&lt;br /&gt;
&lt;br /&gt;
== Level 0 ==&lt;br /&gt;
Ready to get your feet wet? Maybe you need to brush up on some fundamental skills. Level 0 provides tutorials and information on basic developer skills you will need to work with PHASTA.&lt;br /&gt;
* [[PHASTA_Group_Machines|Logging in]]&lt;br /&gt;
* [[VNC|Setting up your VNC]]&lt;br /&gt;
* [[UNIX|Getting started with Linux]]&lt;br /&gt;
* [[Git | Getting Git]]&lt;br /&gt;
* [[Vim|Getting comfortable with Vim]]&lt;br /&gt;
* [[Fortran|New to Fortran?]]&lt;br /&gt;
* [[Making A New Wiki | Editing this Wiki]]&lt;br /&gt;
&lt;br /&gt;
== Level 1 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Picture5.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So you think you know how to &amp;lt;code&amp;gt;grep&amp;lt;/code&amp;gt; for keywords and &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt; some folders? Now you're probably ready to jump into PHASTA. &lt;br /&gt;
&lt;br /&gt;
* [[Level 1 Model/Mesh| Model/Mesh Workflow]]&lt;br /&gt;
* [[Level 1 Partition| Partition Workflow]]&lt;br /&gt;
* [[Level 1 Solve| Solve Workflow]]&lt;br /&gt;
* [[Level 1 Post-Process| Post-Process Workflow]]&lt;br /&gt;
&lt;br /&gt;
See the [[The_On_Ramp/Level_1|Level 1 base page]] as well.&lt;br /&gt;
&lt;br /&gt;
== Level 2 ==&lt;br /&gt;
Now that you've plotted some &amp;quot;Colorful Fluid Dynamics&amp;quot; (CFD) you're probably interested in digging into the guts of PHASTA, and getting it running on some more interesting hardware.&lt;br /&gt;
* [https://github.com/PHASTA/phasta Building PHASTA from scratch] (Follow the README at the bottom of the page)&lt;br /&gt;
* [https://fluid.colorado.edu/wiki/index.php/Building_PHASTA_on_Cluster Building PHASTA on Cluster]&lt;br /&gt;
* [https://github.com/SCOREC/core/wiki/General-Build-instructions#Manual_Install Building Chef and other SCOREC core tools]&lt;br /&gt;
* [[Building ParaView 5.8.1 and Shoreline Plug-ins on viz003 | Building ParaView with Shoreline Plug-ins]]&lt;br /&gt;
* [https://fluid.colorado.edu/wiki/index.php/Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode Building PETSc and libCEED to run HONEE Fluid solver on Viznode]&lt;br /&gt;
* [https://fluid.colorado.edu/wiki/index.php/Build_HONEE_on_Summit Building HONEE on Summit nodes]&lt;br /&gt;
&lt;br /&gt;
== Level 3 ==&lt;br /&gt;
ParaView isn't cutting it for your research? Now its time to start writing your own analysis code. How to do custom pre and post processing is described here, along with more complex ways of using PHASTA for interesting CFD simulations&lt;br /&gt;
* [[Synthetic Turbulence Inflow Generator | Synthetic Turbulence Generator]]&lt;br /&gt;
* [[VTKpytools| Python + VTK using vtkpytools]]&lt;br /&gt;
&lt;br /&gt;
== Level 4 ==&lt;br /&gt;
You're probably close to defending at this point, so before you go get that sweet industry job, you should drop some of your lofty knowledge here!&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=The_On_Ramp&amp;diff=2198</id>
		<title>The On Ramp</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=The_On_Ramp&amp;diff=2198"/>
				<updated>2026-04-15T19:18:08Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Level 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the '''PHASTA On Ramp'''! This page is meant to organize information for getting up to speed with the overall PHASTA workflow, as well as help you up your game as a PHASTA developer.&lt;br /&gt;
&lt;br /&gt;
== Level 0 ==&lt;br /&gt;
Ready to get your feet wet? Maybe you need to brush up on some fundamental skills. Level 0 provides tutorials and information on basic developer skills you will need to work with PHASTA.&lt;br /&gt;
* [[PHASTA_Group_Machines|Logging in]]&lt;br /&gt;
* [[VNC|Setting up your VNC]]&lt;br /&gt;
* [[UNIX|Getting started with Linux]]&lt;br /&gt;
* [[Git | Getting Git]]&lt;br /&gt;
* [[Vim|Getting comfortable with Vim]]&lt;br /&gt;
* [[Fortran|New to Fortran?]]&lt;br /&gt;
* [[Making A New Wiki | Editing this Wiki]]&lt;br /&gt;
&lt;br /&gt;
== Level 1 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Picture5.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So you think you know how to &amp;lt;code&amp;gt;grep&amp;lt;/code&amp;gt; for keywords and &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt; some folders? Now you're probably ready to jump into PHASTA. &lt;br /&gt;
&lt;br /&gt;
* [[Level 1 Model/Mesh| Model/Mesh Workflow]]&lt;br /&gt;
* [[Level 1 Partition| Partition Workflow]]&lt;br /&gt;
* [[Level 1 Solve| Solve Workflow]]&lt;br /&gt;
* [[Level 1 Post-Process| Post-Process Workflow]]&lt;br /&gt;
&lt;br /&gt;
See the [[The_On_Ramp/Level_1|Level 1 base page]] as well.&lt;br /&gt;
&lt;br /&gt;
== Level 2 ==&lt;br /&gt;
Now that you've plotted some &amp;quot;Colorful Fluid Dynamics&amp;quot; (CFD) you're probably interested in digging into the guts of PHASTA, and getting it running on some more interesting hardware.&lt;br /&gt;
* [https://github.com/PHASTA/phasta Building PHASTA from scratch] (Follow the README at the bottom of the page)&lt;br /&gt;
* [https://fluid.colorado.edu/wiki/index.php/Building_PHASTA_on_Cluster]&lt;br /&gt;
* [https://github.com/SCOREC/core/wiki/General-Build-instructions#Manual_Install Building Chef and other SCOREC core tools]&lt;br /&gt;
* [[Building ParaView 5.8.1 and Shoreline Plug-ins on viz003 | Building ParaView with Shoreline Plug-ins]]&lt;br /&gt;
* [https://fluid.colorado.edu/wiki/index.php/Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode Building PETSc and libCEED to run HONEE Fluid solver on Viznode]&lt;br /&gt;
* [https://fluid.colorado.edu/wiki/index.php/Build_HONEE_on_Summit Building HONEE on Summit nodes]&lt;br /&gt;
&lt;br /&gt;
== Level 3 ==&lt;br /&gt;
ParaView isn't cutting it for your research? Now its time to start writing your own analysis code. How to do custom pre and post processing is described here, along with more complex ways of using PHASTA for interesting CFD simulations&lt;br /&gt;
* [[Synthetic Turbulence Inflow Generator | Synthetic Turbulence Generator]]&lt;br /&gt;
* [[VTKpytools| Python + VTK using vtkpytools]]&lt;br /&gt;
&lt;br /&gt;
== Level 4 ==&lt;br /&gt;
You're probably close to defending at this point, so before you go get that sweet industry job, you should drop some of your lofty knowledge here!&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2197</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2197"/>
				<updated>2026-04-15T00:06:02Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Reconfigure PHASTA with LAPACK enabled */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example PBS batch script for running PHASTA ==&lt;br /&gt;
&lt;br /&gt;
The script below is a generic example for running PHASTA through PBS.&lt;br /&gt;
&lt;br /&gt;
Before using it, replace the placeholder values such as:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;JOB_NAME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;WALLTIME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;NODES&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;RANKS_PER_NODE&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;TOTAL_MPI_RANKS&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;CASE_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;PHASTA_BUILD_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that PBS directives are read by the scheduler before the shell executes the script, so values in the &amp;lt;code&amp;gt;#PBS&amp;lt;/code&amp;gt; lines must be edited directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -l&lt;br /&gt;
&lt;br /&gt;
#PBS -S /bin/bash&lt;br /&gt;
#PBS -N &amp;lt;JOB_NAME&amp;gt;&lt;br /&gt;
#PBS -l walltime=&amp;lt;WALLTIME&amp;gt;&lt;br /&gt;
#PBS -l select=&amp;lt;NODES&amp;gt;:ncpus=&amp;lt;RANKS_PER_NODE&amp;gt;:mpiprocs=&amp;lt;RANKS_PER_NODE&amp;gt;&lt;br /&gt;
#PBS -l place=scatter:exclhost&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -k n&lt;br /&gt;
&lt;br /&gt;
# Move to the case directory&lt;br /&gt;
cd &amp;lt;CASE_DIR&amp;gt; || exit 1&lt;br /&gt;
&lt;br /&gt;
# Extract numeric portion of PBS job ID&lt;br /&gt;
jid=$(echo &amp;quot;$PBS_JOBID&amp;quot; | awk -F &amp;quot;.&amp;quot; '{print $1}')&lt;br /&gt;
&lt;br /&gt;
# Total MPI ranks = number of nodes × ranks per node&lt;br /&gt;
nprocs=&amp;lt;TOTAL_MPI_RANKS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Path to the PHASTA build/config directory&lt;br /&gt;
export PHASTA_CONFIG=&amp;lt;PHASTA_BUILD_DIR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Remove old doubl* files if present&lt;br /&gt;
rm -f ${nprocs}-procs_case/doubl*&lt;br /&gt;
&lt;br /&gt;
# Launch PHASTA&lt;br /&gt;
mpirun -np $nprocs --hostfile $PBS_NODEFILE \&lt;br /&gt;
       --mca btl tcp,self,vader \&lt;br /&gt;
       --bind-to core --map-by ppr:&amp;lt;RANKS_PER_NODE&amp;gt;:node \&lt;br /&gt;
       -x PHASTA_CONFIG \&lt;br /&gt;
       &amp;quot;$PHASTA_CONFIG/bin/phastaC.exe&amp;quot; 2&amp;gt;&amp;amp;1 | tee -a &amp;quot;${jid}.log&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: https://github.com/PHASTA/phasta&lt;br /&gt;
* Reference LAPACK repository: https://github.com/Reference-LAPACK/lapack&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2196</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2196"/>
				<updated>2026-04-15T00:04:50Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Example PBS batch script for running PHASTA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example PBS batch script for running PHASTA ==&lt;br /&gt;
&lt;br /&gt;
The script below is a generic example for running PHASTA through PBS.&lt;br /&gt;
&lt;br /&gt;
Before using it, replace the placeholder values such as:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;JOB_NAME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;WALLTIME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;NODES&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;RANKS_PER_NODE&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;TOTAL_MPI_RANKS&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;CASE_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;PHASTA_BUILD_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that PBS directives are read by the scheduler before the shell executes the script, so values in the &amp;lt;code&amp;gt;#PBS&amp;lt;/code&amp;gt; lines must be edited directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -l&lt;br /&gt;
&lt;br /&gt;
#PBS -S /bin/bash&lt;br /&gt;
#PBS -N &amp;lt;JOB_NAME&amp;gt;&lt;br /&gt;
#PBS -l walltime=&amp;lt;WALLTIME&amp;gt;&lt;br /&gt;
#PBS -l select=&amp;lt;NODES&amp;gt;:ncpus=&amp;lt;RANKS_PER_NODE&amp;gt;:mpiprocs=&amp;lt;RANKS_PER_NODE&amp;gt;&lt;br /&gt;
#PBS -l place=scatter:exclhost&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -k n&lt;br /&gt;
&lt;br /&gt;
# Move to the case directory&lt;br /&gt;
cd &amp;lt;CASE_DIR&amp;gt; || exit 1&lt;br /&gt;
&lt;br /&gt;
# Extract numeric portion of PBS job ID&lt;br /&gt;
jid=$(echo &amp;quot;$PBS_JOBID&amp;quot; | awk -F &amp;quot;.&amp;quot; '{print $1}')&lt;br /&gt;
&lt;br /&gt;
# Total MPI ranks = number of nodes × ranks per node&lt;br /&gt;
nprocs=&amp;lt;TOTAL_MPI_RANKS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Path to the PHASTA build/config directory&lt;br /&gt;
export PHASTA_CONFIG=&amp;lt;PHASTA_BUILD_DIR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Remove old doubl* files if present&lt;br /&gt;
rm -f ${nprocs}-procs_case/doubl*&lt;br /&gt;
&lt;br /&gt;
# Launch PHASTA&lt;br /&gt;
mpirun -np $nprocs --hostfile $PBS_NODEFILE \&lt;br /&gt;
       --mca btl tcp,self,vader \&lt;br /&gt;
       --bind-to core --map-by ppr:&amp;lt;RANKS_PER_NODE&amp;gt;:node \&lt;br /&gt;
       -x PHASTA_CONFIG \&lt;br /&gt;
       &amp;quot;$PHASTA_CONFIG/bin/phastaC.exe&amp;quot; 2&amp;gt;&amp;amp;1 | tee -a &amp;quot;${jid}.log&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: https://github.com/PHASTA/phasta&lt;br /&gt;
* Reference LAPACK repository: https://github.com/Reference-LAPACK/lapack&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2195</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2195"/>
				<updated>2026-04-15T00:03:40Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example PBS batch script for running PHASTA ==&lt;br /&gt;
&lt;br /&gt;
The script below is a generic example for running PHASTA through PBS.&lt;br /&gt;
&lt;br /&gt;
Before using it, replace the placeholder values such as:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;JOB_NAME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;WALLTIME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;NODES&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;RANKS_PER_NODE&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;CASE_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;PHASTA_BUILD_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that PBS directives are read by the scheduler before the shell executes the script, so values in the &amp;lt;code&amp;gt;#PBS&amp;lt;/code&amp;gt; lines must be edited directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -l&lt;br /&gt;
&lt;br /&gt;
#PBS -S /bin/bash&lt;br /&gt;
#PBS -N &amp;lt;JOB_NAME&amp;gt;&lt;br /&gt;
#PBS -l walltime=&amp;lt;WALLTIME&amp;gt;&lt;br /&gt;
#PBS -l select=&amp;lt;NODES&amp;gt;:ncpus=&amp;lt;RANKS_PER_NODE&amp;gt;:mpiprocs=&amp;lt;RANKS_PER_NODE&amp;gt;&lt;br /&gt;
#PBS -l place=scatter:exclhost&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -k n&lt;br /&gt;
&lt;br /&gt;
# Move to the case directory&lt;br /&gt;
cd &amp;lt;CASE_DIR&amp;gt; || exit 1&lt;br /&gt;
&lt;br /&gt;
# Extract numeric portion of PBS job ID&lt;br /&gt;
jid=$(echo &amp;quot;$PBS_JOBID&amp;quot; | awk -F &amp;quot;.&amp;quot; '{print $1}')&lt;br /&gt;
&lt;br /&gt;
# Total MPI ranks = number of nodes × ranks per node&lt;br /&gt;
nprocs=&amp;lt;TOTAL_MPI_RANKS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Path to the PHASTA build/config directory&lt;br /&gt;
export PHASTA_CONFIG=&amp;lt;PHASTA_BUILD_DIR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Remove old doubl* files if present&lt;br /&gt;
rm -f ${nprocs}-procs_case/doubl*&lt;br /&gt;
&lt;br /&gt;
# Launch PHASTA&lt;br /&gt;
mpirun -np $nprocs --hostfile $PBS_NODEFILE \&lt;br /&gt;
       --mca btl tcp,self,vader \&lt;br /&gt;
       --bind-to core --map-by ppr:&amp;lt;RANKS_PER_NODE&amp;gt;:node \&lt;br /&gt;
       -x PHASTA_CONFIG \&lt;br /&gt;
       &amp;quot;$PHASTA_CONFIG/bin/phastaC.exe&amp;quot; 2&amp;gt;&amp;amp;1 | tee -a &amp;quot;${jid}.log&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: https://github.com/PHASTA/phasta&lt;br /&gt;
* Reference LAPACK repository: https://github.com/Reference-LAPACK/lapack&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2194</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2194"/>
				<updated>2026-04-14T20:07:10Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Reconfigure PHASTA with LAPACK enabled */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example PBS batch script for running PHASTA ==&lt;br /&gt;
&lt;br /&gt;
The script below is a generic example for running PHASTA through PBS.&lt;br /&gt;
&lt;br /&gt;
Before using it, replace the placeholder values such as:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;JOB_NAME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;WALLTIME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;NODES&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;RANKS_PER_NODE&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;CASE_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;PHASTA_BUILD_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that PBS directives are read by the scheduler before the shell executes the script, so values in the &amp;lt;code&amp;gt;#PBS&amp;lt;/code&amp;gt; lines must be edited directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -l&lt;br /&gt;
&lt;br /&gt;
#PBS -S /bin/bash&lt;br /&gt;
#PBS -N &amp;lt;JOB_NAME&amp;gt;&lt;br /&gt;
#PBS -l walltime=&amp;lt;WALLTIME&amp;gt;&lt;br /&gt;
#PBS -l select=&amp;lt;NODES&amp;gt;:ncpus=&amp;lt;RANKS_PER_NODE&amp;gt;:mpiprocs=&amp;lt;RANKS_PER_NODE&amp;gt;&lt;br /&gt;
#PBS -l place=scatter:exclhost&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -k n&lt;br /&gt;
&lt;br /&gt;
# Move to the case directory&lt;br /&gt;
cd &amp;lt;CASE_DIR&amp;gt; || exit 1&lt;br /&gt;
&lt;br /&gt;
# Extract numeric portion of PBS job ID&lt;br /&gt;
jid=$(echo &amp;quot;$PBS_JOBID&amp;quot; | awk -F &amp;quot;.&amp;quot; '{print $1}')&lt;br /&gt;
&lt;br /&gt;
# Total MPI ranks = number of nodes × ranks per node&lt;br /&gt;
nprocs=&amp;lt;TOTAL_MPI_RANKS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Path to the PHASTA build/config directory&lt;br /&gt;
export PHASTA_CONFIG=&amp;lt;PHASTA_BUILD_DIR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Remove old doubl* files if present&lt;br /&gt;
rm -f ${nprocs}-procs_case/doubl*&lt;br /&gt;
&lt;br /&gt;
# Launch PHASTA&lt;br /&gt;
mpirun -np $nprocs --hostfile $PBS_NODEFILE \&lt;br /&gt;
       --mca btl tcp,self,vader \&lt;br /&gt;
       --bind-to core --map-by ppr:&amp;lt;RANKS_PER_NODE&amp;gt;:node \&lt;br /&gt;
       -x PHASTA_CONFIG \&lt;br /&gt;
       &amp;quot;$PHASTA_CONFIG/bin/phastaC.exe&amp;quot; 2&amp;gt;&amp;amp;1 | tee -a &amp;quot;${jid}.log&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2193</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2193"/>
				<updated>2026-04-14T20:06:55Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Build LAPACK locally */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example PBS batch script for running PHASTA ==&lt;br /&gt;
&lt;br /&gt;
The script below is a generic example for running PHASTA through PBS.&lt;br /&gt;
&lt;br /&gt;
Before using it, replace the placeholder values such as:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;JOB_NAME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;WALLTIME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;NODES&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;RANKS_PER_NODE&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;CASE_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;PHASTA_BUILD_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that PBS directives are read by the scheduler before the shell executes the script, so values in the &amp;lt;code&amp;gt;#PBS&amp;lt;/code&amp;gt; lines must be edited directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -l&lt;br /&gt;
&lt;br /&gt;
#PBS -S /bin/bash&lt;br /&gt;
#PBS -N &amp;lt;JOB_NAME&amp;gt;&lt;br /&gt;
#PBS -l walltime=&amp;lt;WALLTIME&amp;gt;&lt;br /&gt;
#PBS -l select=&amp;lt;NODES&amp;gt;:ncpus=&amp;lt;RANKS_PER_NODE&amp;gt;:mpiprocs=&amp;lt;RANKS_PER_NODE&amp;gt;&lt;br /&gt;
#PBS -l place=scatter:exclhost&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -k n&lt;br /&gt;
&lt;br /&gt;
# Move to the case directory&lt;br /&gt;
cd &amp;lt;CASE_DIR&amp;gt; || exit 1&lt;br /&gt;
&lt;br /&gt;
# Extract numeric portion of PBS job ID&lt;br /&gt;
jid=$(echo &amp;quot;$PBS_JOBID&amp;quot; | awk -F &amp;quot;.&amp;quot; '{print $1}')&lt;br /&gt;
&lt;br /&gt;
# Total MPI ranks = number of nodes × ranks per node&lt;br /&gt;
nprocs=&amp;lt;TOTAL_MPI_RANKS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Path to the PHASTA build/config directory&lt;br /&gt;
export PHASTA_CONFIG=&amp;lt;PHASTA_BUILD_DIR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Remove old doubl* files if present&lt;br /&gt;
rm -f ${nprocs}-procs_case/doubl*&lt;br /&gt;
&lt;br /&gt;
# Launch PHASTA&lt;br /&gt;
mpirun -np $nprocs --hostfile $PBS_NODEFILE \&lt;br /&gt;
       --mca btl tcp,self,vader \&lt;br /&gt;
       --bind-to core --map-by ppr:&amp;lt;RANKS_PER_NODE&amp;gt;:node \&lt;br /&gt;
       -x PHASTA_CONFIG \&lt;br /&gt;
       &amp;quot;$PHASTA_CONFIG/bin/phastaC.exe&amp;quot; 2&amp;gt;&amp;amp;1 | tee -a &amp;quot;${jid}.log&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2192</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2192"/>
				<updated>2026-04-14T20:06:47Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Optional: Build with LAPACK */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example PBS batch script for running PHASTA ==&lt;br /&gt;
&lt;br /&gt;
The script below is a generic example for running PHASTA through PBS.&lt;br /&gt;
&lt;br /&gt;
Before using it, replace the placeholder values such as:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;JOB_NAME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;WALLTIME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;NODES&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;RANKS_PER_NODE&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;CASE_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;PHASTA_BUILD_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that PBS directives are read by the scheduler before the shell executes the script, so values in the &amp;lt;code&amp;gt;#PBS&amp;lt;/code&amp;gt; lines must be edited directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -l&lt;br /&gt;
&lt;br /&gt;
#PBS -S /bin/bash&lt;br /&gt;
#PBS -N &amp;lt;JOB_NAME&amp;gt;&lt;br /&gt;
#PBS -l walltime=&amp;lt;WALLTIME&amp;gt;&lt;br /&gt;
#PBS -l select=&amp;lt;NODES&amp;gt;:ncpus=&amp;lt;RANKS_PER_NODE&amp;gt;:mpiprocs=&amp;lt;RANKS_PER_NODE&amp;gt;&lt;br /&gt;
#PBS -l place=scatter:exclhost&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -k n&lt;br /&gt;
&lt;br /&gt;
# Move to the case directory&lt;br /&gt;
cd &amp;lt;CASE_DIR&amp;gt; || exit 1&lt;br /&gt;
&lt;br /&gt;
# Extract numeric portion of PBS job ID&lt;br /&gt;
jid=$(echo &amp;quot;$PBS_JOBID&amp;quot; | awk -F &amp;quot;.&amp;quot; '{print $1}')&lt;br /&gt;
&lt;br /&gt;
# Total MPI ranks = number of nodes × ranks per node&lt;br /&gt;
nprocs=&amp;lt;TOTAL_MPI_RANKS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Path to the PHASTA build/config directory&lt;br /&gt;
export PHASTA_CONFIG=&amp;lt;PHASTA_BUILD_DIR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Remove old doubl* files if present&lt;br /&gt;
rm -f ${nprocs}-procs_case/doubl*&lt;br /&gt;
&lt;br /&gt;
# Launch PHASTA&lt;br /&gt;
mpirun -np $nprocs --hostfile $PBS_NODEFILE \&lt;br /&gt;
       --mca btl tcp,self,vader \&lt;br /&gt;
       --bind-to core --map-by ppr:&amp;lt;RANKS_PER_NODE&amp;gt;:node \&lt;br /&gt;
       -x PHASTA_CONFIG \&lt;br /&gt;
       &amp;quot;$PHASTA_CONFIG/bin/phastaC.exe&amp;quot; 2&amp;gt;&amp;amp;1 | tee -a &amp;quot;${jid}.log&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2191</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2191"/>
				<updated>2026-04-14T20:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 5) Configure PHASTA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example PBS batch script for running PHASTA ==&lt;br /&gt;
&lt;br /&gt;
The script below is a generic example for running PHASTA through PBS.&lt;br /&gt;
&lt;br /&gt;
Before using it, replace the placeholder values such as:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;JOB_NAME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;WALLTIME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;NODES&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;RANKS_PER_NODE&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;CASE_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;PHASTA_BUILD_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that PBS directives are read by the scheduler before the shell executes the script, so values in the &amp;lt;code&amp;gt;#PBS&amp;lt;/code&amp;gt; lines must be edited directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -l&lt;br /&gt;
&lt;br /&gt;
#PBS -S /bin/bash&lt;br /&gt;
#PBS -N &amp;lt;JOB_NAME&amp;gt;&lt;br /&gt;
#PBS -l walltime=&amp;lt;WALLTIME&amp;gt;&lt;br /&gt;
#PBS -l select=&amp;lt;NODES&amp;gt;:ncpus=&amp;lt;RANKS_PER_NODE&amp;gt;:mpiprocs=&amp;lt;RANKS_PER_NODE&amp;gt;&lt;br /&gt;
#PBS -l place=scatter:exclhost&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -k n&lt;br /&gt;
&lt;br /&gt;
# Move to the case directory&lt;br /&gt;
cd &amp;lt;CASE_DIR&amp;gt; || exit 1&lt;br /&gt;
&lt;br /&gt;
# Extract numeric portion of PBS job ID&lt;br /&gt;
jid=$(echo &amp;quot;$PBS_JOBID&amp;quot; | awk -F &amp;quot;.&amp;quot; '{print $1}')&lt;br /&gt;
&lt;br /&gt;
# Total MPI ranks = number of nodes × ranks per node&lt;br /&gt;
nprocs=&amp;lt;TOTAL_MPI_RANKS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Path to the PHASTA build/config directory&lt;br /&gt;
export PHASTA_CONFIG=&amp;lt;PHASTA_BUILD_DIR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Remove old doubl* files if present&lt;br /&gt;
rm -f ${nprocs}-procs_case/doubl*&lt;br /&gt;
&lt;br /&gt;
# Launch PHASTA&lt;br /&gt;
mpirun -np $nprocs --hostfile $PBS_NODEFILE \&lt;br /&gt;
       --mca btl tcp,self,vader \&lt;br /&gt;
       --bind-to core --map-by ppr:&amp;lt;RANKS_PER_NODE&amp;gt;:node \&lt;br /&gt;
       -x PHASTA_CONFIG \&lt;br /&gt;
       &amp;quot;$PHASTA_CONFIG/bin/phastaC.exe&amp;quot; 2&amp;gt;&amp;amp;1 | tee -a &amp;quot;${jid}.log&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2190</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2190"/>
				<updated>2026-04-14T19:59:29Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Example configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/honee_stack/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g -march=native' \&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g -march=native'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2189</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2189"/>
				<updated>2026-04-14T19:58:52Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 2) Create a single workspace for all repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/honee_stack/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g -march=native' \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g -march=native'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2188</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2188"/>
				<updated>2026-04-14T19:58:42Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 2) Create a single workspace for all repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/honee_stack/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g -march=native' \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g -march=native'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2187</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2187"/>
				<updated>2026-04-14T19:58:28Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Missing PETSc or libCEED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/honee_stack/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g -march=native' \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g -march=native'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2186</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2186"/>
				<updated>2026-04-14T19:58:15Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 6) Set environment variables for HONEE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/honee_stack/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g -march=native' \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g -march=native'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2185</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2185"/>
				<updated>2026-04-14T19:58:00Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Example configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/honee_stack/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g -march=native' \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g -march=native'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2184</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2184"/>
				<updated>2026-04-14T19:55:56Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Example PBS batch script for running PHASTA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example PBS batch script for running PHASTA ==&lt;br /&gt;
&lt;br /&gt;
The script below is a generic example for running PHASTA through PBS.&lt;br /&gt;
&lt;br /&gt;
Before using it, replace the placeholder values such as:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;JOB_NAME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;WALLTIME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;NODES&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;RANKS_PER_NODE&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;CASE_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;PHASTA_BUILD_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that PBS directives are read by the scheduler before the shell executes the script, so values in the &amp;lt;code&amp;gt;#PBS&amp;lt;/code&amp;gt; lines must be edited directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -l&lt;br /&gt;
&lt;br /&gt;
#PBS -S /bin/bash&lt;br /&gt;
#PBS -N &amp;lt;JOB_NAME&amp;gt;&lt;br /&gt;
#PBS -l walltime=&amp;lt;WALLTIME&amp;gt;&lt;br /&gt;
#PBS -l select=&amp;lt;NODES&amp;gt;:ncpus=&amp;lt;RANKS_PER_NODE&amp;gt;:mpiprocs=&amp;lt;RANKS_PER_NODE&amp;gt;&lt;br /&gt;
#PBS -l place=scatter:exclhost&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -k n&lt;br /&gt;
&lt;br /&gt;
# Move to the case directory&lt;br /&gt;
cd &amp;lt;CASE_DIR&amp;gt; || exit 1&lt;br /&gt;
&lt;br /&gt;
# Extract numeric portion of PBS job ID&lt;br /&gt;
jid=$(echo &amp;quot;$PBS_JOBID&amp;quot; | awk -F &amp;quot;.&amp;quot; '{print $1}')&lt;br /&gt;
&lt;br /&gt;
# Total MPI ranks = number of nodes × ranks per node&lt;br /&gt;
nprocs=&amp;lt;TOTAL_MPI_RANKS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Path to the PHASTA build/config directory&lt;br /&gt;
export PHASTA_CONFIG=&amp;lt;PHASTA_BUILD_DIR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Remove old doubl* files if present&lt;br /&gt;
rm -f ${nprocs}-procs_case/doubl*&lt;br /&gt;
&lt;br /&gt;
# Launch PHASTA&lt;br /&gt;
mpirun -np $nprocs --hostfile $PBS_NODEFILE \&lt;br /&gt;
       --mca btl tcp,self,vader \&lt;br /&gt;
       --bind-to core --map-by ppr:&amp;lt;RANKS_PER_NODE&amp;gt;:node \&lt;br /&gt;
       -x PHASTA_CONFIG \&lt;br /&gt;
       &amp;quot;$PHASTA_CONFIG/bin/phastaC.exe&amp;quot; 2&amp;gt;&amp;amp;1 | tee -a &amp;quot;${jid}.log&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2183</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2183"/>
				<updated>2026-04-14T19:55:43Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Example PBS batch script for running PHASTA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example PBS batch script for running PHASTA ==&lt;br /&gt;
&lt;br /&gt;
The script below is a generic example for running phasta through PBS.&lt;br /&gt;
&lt;br /&gt;
Before using it, replace the placeholder values such as:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;JOB_NAME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;WALLTIME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;NODES&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;RANKS_PER_NODE&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;CASE_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;PHASTA_BUILD_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that PBS directives are read by the scheduler before the shell executes the script, so values in the &amp;lt;code&amp;gt;#PBS&amp;lt;/code&amp;gt; lines must be edited directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -l&lt;br /&gt;
&lt;br /&gt;
#PBS -S /bin/bash&lt;br /&gt;
#PBS -N &amp;lt;JOB_NAME&amp;gt;&lt;br /&gt;
#PBS -l walltime=&amp;lt;WALLTIME&amp;gt;&lt;br /&gt;
#PBS -l select=&amp;lt;NODES&amp;gt;:ncpus=&amp;lt;RANKS_PER_NODE&amp;gt;:mpiprocs=&amp;lt;RANKS_PER_NODE&amp;gt;&lt;br /&gt;
#PBS -l place=scatter:exclhost&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -k n&lt;br /&gt;
&lt;br /&gt;
# Move to the case directory&lt;br /&gt;
cd &amp;lt;CASE_DIR&amp;gt; || exit 1&lt;br /&gt;
&lt;br /&gt;
# Extract numeric portion of PBS job ID&lt;br /&gt;
jid=$(echo &amp;quot;$PBS_JOBID&amp;quot; | awk -F &amp;quot;.&amp;quot; '{print $1}')&lt;br /&gt;
&lt;br /&gt;
# Total MPI ranks = number of nodes × ranks per node&lt;br /&gt;
nprocs=&amp;lt;TOTAL_MPI_RANKS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Path to the PHASTA build/config directory&lt;br /&gt;
export PHASTA_CONFIG=&amp;lt;PHASTA_BUILD_DIR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Remove old doubl* files if present&lt;br /&gt;
rm -f ${nprocs}-procs_case/doubl*&lt;br /&gt;
&lt;br /&gt;
# Launch PHASTA&lt;br /&gt;
mpirun -np $nprocs --hostfile $PBS_NODEFILE \&lt;br /&gt;
       --mca btl tcp,self,vader \&lt;br /&gt;
       --bind-to core --map-by ppr:&amp;lt;RANKS_PER_NODE&amp;gt;:node \&lt;br /&gt;
       -x PHASTA_CONFIG \&lt;br /&gt;
       &amp;quot;$PHASTA_CONFIG/bin/phastaC.exe&amp;quot; 2&amp;gt;&amp;amp;1 | tee -a &amp;quot;${jid}.log&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2182</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2182"/>
				<updated>2026-04-14T19:55:03Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example PBS batch script for running PHASTA ==&lt;br /&gt;
&lt;br /&gt;
The script below is a generic example for running &amp;lt;code&amp;gt;phastaC.exe&amp;lt;/code&amp;gt; through PBS.&lt;br /&gt;
&lt;br /&gt;
Before using it, replace the placeholder values such as:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;JOB_NAME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;WALLTIME&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;NODES&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;RANKS_PER_NODE&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;CASE_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;PHASTA_BUILD_DIR&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that PBS directives are read by the scheduler before the shell executes the script, so values in the &amp;lt;code&amp;gt;#PBS&amp;lt;/code&amp;gt; lines must be edited directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash -l&lt;br /&gt;
&lt;br /&gt;
#PBS -S /bin/bash&lt;br /&gt;
#PBS -N &amp;lt;JOB_NAME&amp;gt;&lt;br /&gt;
#PBS -l walltime=&amp;lt;WALLTIME&amp;gt;&lt;br /&gt;
#PBS -l select=&amp;lt;NODES&amp;gt;:ncpus=&amp;lt;RANKS_PER_NODE&amp;gt;:mpiprocs=&amp;lt;RANKS_PER_NODE&amp;gt;&lt;br /&gt;
#PBS -l place=scatter:exclhost&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -k n&lt;br /&gt;
&lt;br /&gt;
# Move to the case directory&lt;br /&gt;
cd &amp;lt;CASE_DIR&amp;gt; || exit 1&lt;br /&gt;
&lt;br /&gt;
# Extract numeric portion of PBS job ID&lt;br /&gt;
jid=$(echo &amp;quot;$PBS_JOBID&amp;quot; | awk -F &amp;quot;.&amp;quot; '{print $1}')&lt;br /&gt;
&lt;br /&gt;
# Total MPI ranks = number of nodes × ranks per node&lt;br /&gt;
nprocs=&amp;lt;TOTAL_MPI_RANKS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Path to the PHASTA build/config directory&lt;br /&gt;
export PHASTA_CONFIG=&amp;lt;PHASTA_BUILD_DIR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Remove old doubl* files if present&lt;br /&gt;
rm -f ${nprocs}-procs_case/doubl*&lt;br /&gt;
&lt;br /&gt;
# Launch PHASTA&lt;br /&gt;
mpirun -np $nprocs --hostfile $PBS_NODEFILE \&lt;br /&gt;
       --mca btl tcp,self,vader \&lt;br /&gt;
       --bind-to core --map-by ppr:&amp;lt;RANKS_PER_NODE&amp;gt;:node \&lt;br /&gt;
       -x PHASTA_CONFIG \&lt;br /&gt;
       &amp;quot;$PHASTA_CONFIG/bin/phastaC.exe&amp;quot; 2&amp;gt;&amp;amp;1 | tee -a &amp;quot;${jid}.log&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2181</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2181"/>
				<updated>2026-04-14T19:51:15Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Reconfigure PHASTA with LAPACK enabled */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2180</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2180"/>
				<updated>2026-04-14T19:49:57Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 3) Clone the repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code&amp;gt; and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2179</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2179"/>
				<updated>2026-04-14T19:49:45Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 3) Clone the repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;phasta_stack&amp;lt;/code and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2178</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2178"/>
				<updated>2026-04-14T19:49:30Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 3) Clone the repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
Navigate into &amp;lt;codephasta_stack&amp;lt;/code and clone&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_PHASTA_on_Cluster&amp;diff=2177</id>
		<title>Build PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_PHASTA_on_Cluster&amp;diff=2177"/>
				<updated>2026-04-14T19:46:08Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: Undo revision 2176 by Moam3950 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Building PHASTA on Cluster]]&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_PHASTA_on_Cluster&amp;diff=2176</id>
		<title>Build PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_PHASTA_on_Cluster&amp;diff=2176"/>
				<updated>2026-04-14T19:45:55Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_PHASTA_on_Cluster&amp;diff=2175</id>
		<title>Build PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_PHASTA_on_Cluster&amp;diff=2175"/>
				<updated>2026-04-14T19:45:21Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: Moam3950 moved page Build PHASTA on Cluster to Building PHASTA on Cluster&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Building PHASTA on Cluster]]&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2174</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2174"/>
				<updated>2026-04-14T19:45:20Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: Moam3950 moved page Build PHASTA on Cluster to Building PHASTA on Cluster&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2173</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2173"/>
				<updated>2026-04-14T19:44:56Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2172</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2172"/>
				<updated>2026-04-14T19:41:01Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Build LAPACK locally */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
Assuming you have cloned the LAPACK repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2171</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2171"/>
				<updated>2026-04-14T19:40:18Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Optional: Build with LAPACK */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2170</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2170"/>
				<updated>2026-04-14T19:39:10Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 5) Configure PHASTA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes the configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2169</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2169"/>
				<updated>2026-04-14T19:38:13Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK/BLAS. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2168</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2168"/>
				<updated>2026-04-14T19:38:07Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACKbuild for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK/BLAS. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2167</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2167"/>
				<updated>2026-04-14T19:37:32Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Reference LAPACK (optional) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK/BLAS build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK/BLAS. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2166</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2166"/>
				<updated>2026-04-14T19:35:29Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Optional: Build with LAPACK */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK/BLAS build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK/BLAS. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=g++ \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2165</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2165"/>
				<updated>2026-04-14T19:33:53Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Build LAPACK locally */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK/BLAS build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK/BLAS. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2164</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2164"/>
				<updated>2026-04-14T18:57:12Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 5) Configure PHASTA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK/BLAS build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This is the default PHASTA configure path and assumes that the branch or feature being built does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require LAPACK/BLAS. If the branch you are building explicitly depends on LAPACK, skip this default configure block and use the optional LAPACK section below instead.&lt;br /&gt;
&lt;br /&gt;
This section uses a compressible-only PHASTA configuration. That is intentional: turning on incompressible mode without enabling an incompressible solver causes configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  -DCBLAS=ON \&lt;br /&gt;
  -DLAPACKE=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2163</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2163"/>
				<updated>2026-04-14T18:51:28Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
* The node request step is cluster-specific,&lt;br /&gt;
* the compiler / MPI / CMake / PHASTA build steps are shared,&lt;br /&gt;
* LAPACK is '''optional''' and is only needed for PHASTA branches or features that explicitly require it.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (&amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gfortran&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpicxx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mpif90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* optionally, a local LAPACK/BLAS build for PHASTA branches that require it&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as &amp;lt;code&amp;gt;dell0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir phasta_stack&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK (optional) ===&lt;br /&gt;
&lt;br /&gt;
Only do this if the PHASTA branch or feature you are building explicitly requires LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This page uses a compressible-only PHASTA configuration.&lt;br /&gt;
&lt;br /&gt;
That is intentional: turning on incompressible mode without enabling an incompressible solver causes configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build PHASTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: Build with LAPACK ==&lt;br /&gt;
&lt;br /&gt;
Only use this path for PHASTA branches or features that explicitly require LAPACK/BLAS.&lt;br /&gt;
&lt;br /&gt;
=== Build LAPACK locally ===&lt;br /&gt;
&lt;br /&gt;
A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important''': build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
mkdir lapack_build&lt;br /&gt;
cd lapack_build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  -DCBLAS=ON \&lt;br /&gt;
  -DLAPACKE=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as &amp;lt;code&amp;gt;liblapack.so.X.Y.Z&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libblas.so.X.Y.Z&amp;lt;/code&amp;gt;, use those exact filenames if needed.&lt;br /&gt;
&lt;br /&gt;
=== Reconfigure PHASTA with LAPACK enabled ===&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $HOME/phasta_stack/phasta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;liblapack.so&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;libblas.so&amp;lt;/code&amp;gt; do not exist as symlinks, replace them with the exact versioned filenames you found in &amp;lt;code&amp;gt;~/phasta_stack/lapack_build/lib/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK is optional ===&lt;br /&gt;
&lt;br /&gt;
For most PHASTA branches, LAPACK is not needed. Do not build or enable LAPACK unless the branch or feature you are using explicitly requires it.&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via &amp;lt;code&amp;gt;PHASTA_USE_SVLS&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;PHASTA_USE_LESLIB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: &amp;lt;code&amp;gt;https://github.com/PHASTA/phasta&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reference LAPACK repository: &amp;lt;code&amp;gt;https://github.com/Reference-LAPACK/lapack&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2162</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2162"/>
				<updated>2026-04-14T18:13:00Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 6) Configure PHASTA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
The main idea is:&lt;br /&gt;
&lt;br /&gt;
* the '''node request''' step is cluster-specific,&lt;br /&gt;
* the '''compiler / MPI / CMake / LAPACK / PHASTA''' build steps are shared.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on CU PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (`gcc`, `g++`, `gfortran`, `mpicc`, `mpicxx`, `mpif90`, `cmake`).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* a local LAPACK/BLAS build used by PHASTA&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From `jumpgate`, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as `dell0`.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
mkdir phasta_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Build LAPACK locally ==&lt;br /&gt;
&lt;br /&gt;
PHASTA needs BLAS/LAPACK. A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack&amp;lt;br&amp;gt;&lt;br /&gt;
mkdir lapack_build&amp;lt;br&amp;gt;&lt;br /&gt;
cd lapack_build&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as `liblapack.so.X.Y.Z` and `libblas.so.X.Y.Z`.&lt;br /&gt;
&lt;br /&gt;
== 6) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This page uses a '''compressible-only''' PHASTA configuration.&lt;br /&gt;
&lt;br /&gt;
That is intentional: turning on incompressible mode without enabling an incompressible solver causes configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If `liblapack.so` or `libblas.so` do not exist as symlinks, replace them with the exact versioned filenames you found in `~/phasta_stack/lapack_build/lib/`.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via `PHASTA_USE_SVLS` and/or `PHASTA_USE_LESLIB`.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: https://github.com/PHASTA/phasta&lt;br /&gt;
* Reference LAPACK repository: https://github.com/Reference-LAPACK/lapack&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2161</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2161"/>
				<updated>2026-04-14T05:27:25Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
The main idea is:&lt;br /&gt;
&lt;br /&gt;
* the '''node request''' step is cluster-specific,&lt;br /&gt;
* the '''compiler / MPI / CMake / LAPACK / PHASTA''' build steps are shared.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on CU PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (`gcc`, `g++`, `gfortran`, `mpicc`, `mpicxx`, `mpif90`, `cmake`).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* a local LAPACK/BLAS build used by PHASTA&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From `jumpgate`, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as `dell0`.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
mkdir phasta_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Build LAPACK locally ==&lt;br /&gt;
&lt;br /&gt;
PHASTA needs BLAS/LAPACK. A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack&amp;lt;br&amp;gt;&lt;br /&gt;
mkdir lapack_build&amp;lt;br&amp;gt;&lt;br /&gt;
cd lapack_build&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as `liblapack.so.X.Y.Z` and `libblas.so.X.Y.Z`.&lt;br /&gt;
&lt;br /&gt;
== 6) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This page uses a '''compressible-only''' PHASTA configuration.&lt;br /&gt;
&lt;br /&gt;
That is intentional: turning on incompressible mode without enabling an incompressible solver causes configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Debug \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If `liblapack.so` or `libblas.so` do not exist as symlinks, replace them with the exact versioned filenames you found in `~/phasta_stack/lapack_build/lib/`.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via `PHASTA_USE_SVLS` and/or `PHASTA_USE_LESLIB`.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: https://github.com/PHASTA/phasta&lt;br /&gt;
* Reference LAPACK repository: https://github.com/Reference-LAPACK/lapack&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2160</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2160"/>
				<updated>2026-04-14T05:26:40Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
The main idea is:&lt;br /&gt;
&lt;br /&gt;
* the '''node request''' step is cluster-specific,&lt;br /&gt;
* the '''compiler / MPI / CMake / LAPACK / PHASTA''' build steps are shared.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on CU PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (`gcc`, `g++`, `gfortran`, `mpicc`, `mpicxx`, `mpif90`, `cmake`).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* a local LAPACK/BLAS build used by PHASTA&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From `jumpgate`, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as `dell0`.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
mkdir phasta_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Build LAPACK locally ==&lt;br /&gt;
&lt;br /&gt;
PHASTA needs BLAS/LAPACK. A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack&amp;lt;br&amp;gt;&lt;br /&gt;
mkdir lapack_build&amp;lt;br&amp;gt;&lt;br /&gt;
cd lapack_build&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as `liblapack.so.X.Y.Z` and `libblas.so.X.Y.Z`.&lt;br /&gt;
&lt;br /&gt;
== 6) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This page uses a '''compressible-only''' PHASTA configuration.&lt;br /&gt;
&lt;br /&gt;
That is intentional: turning on incompressible mode without enabling an incompressible solver causes configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Debug \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If `liblapack.so` or `libblas.so` do not exist as symlinks, replace them with the exact versioned filenames you found in `~/phasta_stack/lapack_build/lib/`.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via `PHASTA_USE_SVLS` and/or `PHASTA_USE_LESLIB`.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: `https://github.com/PHASTA/phasta`&lt;br /&gt;
* Reference LAPACK repository: `https://github.com/Reference-LAPACK/lapack`&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2159</id>
		<title>Building PHASTA on Cluster</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Building_PHASTA_on_Cluster&amp;diff=2159"/>
				<updated>2026-04-14T05:25:22Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: Created page with &amp;quot;= Build PHASTA on Summit or Dell nodes =  This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.  The main idea is:  * the '''node request''' s...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Build PHASTA on Summit or Dell nodes =&lt;br /&gt;
&lt;br /&gt;
This page describes a workflow to build PHASTA on either Summit or Dell compute nodes.&lt;br /&gt;
&lt;br /&gt;
The main idea is:&lt;br /&gt;
&lt;br /&gt;
* the '''node request''' step is cluster-specific,&lt;br /&gt;
* the '''compiler / MPI / CMake / LAPACK / PHASTA''' build steps are shared.&lt;br /&gt;
&lt;br /&gt;
This guide is based on builds performed on CU PHASTA cluster nodes where both Dell and Summit nodes exposed the same basic GNU + MPI toolchain (`gcc`, `g++`, `gfortran`, `mpicc`, `mpicxx`, `mpif90`, `cmake`).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This workflow builds:&lt;br /&gt;
&lt;br /&gt;
* the PHASTA repository&lt;br /&gt;
* a local LAPACK/BLAS build used by PHASTA&lt;br /&gt;
&lt;br /&gt;
== 1) Start an interactive compute node ==&lt;br /&gt;
&lt;br /&gt;
=== Summit nodes ===&lt;br /&gt;
&lt;br /&gt;
From `jumpgate`, request a Summit node with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
=== Dell nodes ===&lt;br /&gt;
&lt;br /&gt;
An interactive request that lands on a Dell is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=32:mpiprocs=32 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then land on a Dell node such as `dell0`.&lt;br /&gt;
&lt;br /&gt;
== 2) Create a workspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
mkdir phasta_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3) Clone the repositories ==&lt;br /&gt;
&lt;br /&gt;
=== PHASTA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/PHASTA/phasta.git&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reference LAPACK ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/Reference-LAPACK/lapack.git&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4) Check the available toolchain ==&lt;br /&gt;
&lt;br /&gt;
On either Summit or Dell nodes, verify the compiler and MPI wrappers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
which gcc g++ gfortran&lt;br /&gt;
gcc --version&lt;br /&gt;
gfortran --version&lt;br /&gt;
&lt;br /&gt;
which mpicc mpicxx mpif90&lt;br /&gt;
which cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected tools are the system GNU compilers and MPI wrappers.&lt;br /&gt;
&lt;br /&gt;
== 5) Build LAPACK locally ==&lt;br /&gt;
&lt;br /&gt;
PHASTA needs BLAS/LAPACK. A simple approach is to build Reference-LAPACK locally.&lt;br /&gt;
&lt;br /&gt;
'''Important:''' build LAPACK in a separate build directory. Do '''not''' configure it inside the source tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack&amp;lt;br&amp;gt;&lt;br /&gt;
mkdir lapack_build&amp;lt;br&amp;gt;&lt;br /&gt;
cd lapack_build&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=gcc \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=gfortran \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
  -DBUILD_SHARED_LIBS=ON \&lt;br /&gt;
  ../lapack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the build, inspect the generated libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ls lib/liblapack.so*&lt;br /&gt;
ls lib/libblas.so*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your LAPACK build produced versioned shared libraries such as `liblapack.so.X.Y.Z` and `libblas.so.X.Y.Z`.&lt;br /&gt;
&lt;br /&gt;
== 6) Configure PHASTA ==&lt;br /&gt;
&lt;br /&gt;
This page uses a '''compressible-only''' PHASTA configuration.&lt;br /&gt;
&lt;br /&gt;
That is intentional: turning on incompressible mode without enabling an incompressible solver causes configuration to fail.&lt;br /&gt;
&lt;br /&gt;
From the PHASTA source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd phasta_stack/phasta&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then configure: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake \&lt;br /&gt;
  -DCMAKE_C_COMPILER=mpicc \&lt;br /&gt;
  -DCMAKE_CXX_COMPILER=mpicxx \&lt;br /&gt;
  -DCMAKE_Fortran_COMPILER=mpif90 \&lt;br /&gt;
  -DCMAKE_BUILD_TYPE=Debug \&lt;br /&gt;
  -DCMAKE_Fortran_FLAGS=&amp;quot;-fallow-argument-mismatch&amp;quot; \&lt;br /&gt;
  -DPHASTA_INCOMPRESSIBLE=OFF \&lt;br /&gt;
  -DPHASTA_COMPRESSIBLE=ON \&lt;br /&gt;
  -DPHASTA_USE_LAPACK=ON \&lt;br /&gt;
  -DPHASTA_TESTING=OFF \&lt;br /&gt;
  -DLAPACK_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/liblapack.so \&lt;br /&gt;
  -DBLAS_LIBRARIES=$HOME/phasta_stack/lapack_build/lib/libblas.so \&lt;br /&gt;
  .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If `liblapack.so` or `libblas.so` do not exist as symlinks, replace them with the exact versioned filenames you found in `~/phasta_stack/lapack_build/lib/`.&lt;br /&gt;
&lt;br /&gt;
Build PHASTA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j32&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Summit, you may prefer to use 24 way parallelism instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7) Verify the build ==&lt;br /&gt;
&lt;br /&gt;
A minimal verification step is simply to confirm that the PHASTA executable was produced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ls bin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
phastaC.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also inspect the executable linkage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ldd ./bin/phastaC.exe | grep mpi&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== LAPACK refuses to configure in the source directory ===&lt;br /&gt;
&lt;br /&gt;
Reference-LAPACK must be configured out-of-source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHASTA incompressible configuration error ===&lt;br /&gt;
&lt;br /&gt;
If you configure with incompressible mode enabled, you may see an error saying that at least one incompressible solver must be enabled via `PHASTA_USE_SVLS` and/or `PHASTA_USE_LESLIB`.&lt;br /&gt;
&lt;br /&gt;
If you only need the compressible build path, keep:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
-DPHASTA_INCOMPRESSIBLE=OFF&lt;br /&gt;
-DPHASTA_COMPRESSIBLE=ON&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* PHASTA repository: `https://github.com/PHASTA/phasta.git`&lt;br /&gt;
* Reference LAPACK repository: `https://github.com/Reference-LAPACK/lapack.git`&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2157</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2157"/>
				<updated>2026-02-20T06:46:09Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/honee_stack/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./configure \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g -march=native' \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g -march=native'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2156</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2156"/>
				<updated>2026-02-20T02:45:39Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Example configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/honee_stack/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./configure \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g -march=native' \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g -march=native'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=The_On_Ramp&amp;diff=2140</id>
		<title>The On Ramp</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=The_On_Ramp&amp;diff=2140"/>
				<updated>2026-02-17T18:50:45Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Level 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the '''PHASTA On Ramp'''! This page is meant to organize information for getting up to speed with the overall PHASTA workflow, as well as help you up your game as a PHASTA developer.&lt;br /&gt;
&lt;br /&gt;
== Level 0 ==&lt;br /&gt;
Ready to get your feet wet? Maybe you need to brush up on some fundamental skills. Level 0 provides tutorials and information on basic developer skills you will need to work with PHASTA.&lt;br /&gt;
* [[PHASTA_Group_Machines|Logging in]]&lt;br /&gt;
* [[VNC|Setting up your VNC]]&lt;br /&gt;
* [[UNIX|Getting started with Linux]]&lt;br /&gt;
* [[Git | Getting Git]]&lt;br /&gt;
* [[Vim|Getting comfortable with Vim]]&lt;br /&gt;
* [[Fortran|New to Fortran?]]&lt;br /&gt;
* [[Making A New Wiki | Editing this Wiki]]&lt;br /&gt;
&lt;br /&gt;
== Level 1 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Picture5.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So you think you know how to &amp;lt;code&amp;gt;grep&amp;lt;/code&amp;gt; for keywords and &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt; some folders? Now you're probably ready to jump into PHASTA. &lt;br /&gt;
&lt;br /&gt;
* [[Level 1 Model/Mesh| Model/Mesh Workflow]]&lt;br /&gt;
* [[Level 1 Partition| Partition Workflow]]&lt;br /&gt;
* [[Level 1 Solve| Solve Workflow]]&lt;br /&gt;
* [[Level 1 Post-Process| Post-Process Workflow]]&lt;br /&gt;
&lt;br /&gt;
See the [[The_On_Ramp/Level_1|Level 1 base page]] as well.&lt;br /&gt;
&lt;br /&gt;
== Level 2 ==&lt;br /&gt;
Now that you've plotted some &amp;quot;Colorful Fluid Dynamics&amp;quot; (CFD) you're probably interested in digging into the guts of PHASTA, and getting it running on some more interesting hardware.&lt;br /&gt;
* [https://github.com/PHASTA/phasta Building PHASTA from scratch] (Follow the README at the bottom of the page)&lt;br /&gt;
* [https://github.com/SCOREC/core/wiki/General-Build-instructions#Manual_Install Building Chef and other SCOREC core tools]&lt;br /&gt;
* [[ Building ParaView 5.8.1 and Shoreline Plug-ins on viz003 | Building ParaView with Shoreline Plug-ins ]]&lt;br /&gt;
* [https://fluid.colorado.edu/wiki/index.php/Building_PETSc_and_libCEED_to_run_HONEE_Fluid_solver_on_Viznode Building PETSc and libCEED to run HONEE Fluid solver on Viznode]&lt;br /&gt;
* [https://fluid.colorado.edu/wiki/index.php/Build_HONEE_on_Summit Building HONEE on Summit nodes]&lt;br /&gt;
&lt;br /&gt;
== Level 3 ==&lt;br /&gt;
ParaView isn't cutting it for your research? Now its time to start writing your own analysis code. How to do custom pre and post processing is described here, along with more complex ways of using PHASTA for interesting CFD simulations&lt;br /&gt;
* [[Synthetic Turbulence Inflow Generator | Synthetic Turbulence Generator]]&lt;br /&gt;
* [[VTKpytools| Python + VTK using vtkpytools]]&lt;br /&gt;
&lt;br /&gt;
== Level 4 ==&lt;br /&gt;
You're probably close to defending at this point, so before you go get that sweet industry job, you should drop some of your lofty knowledge here!&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2139</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2139"/>
				<updated>2026-02-17T18:44:40Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Example configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/honee_stack/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./configure \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--march=native \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g' \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2138</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2138"/>
				<updated>2026-02-17T18:43:20Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 5) Build PETSc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/honee_stack/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./configure \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g' \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2137</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2137"/>
				<updated>2026-02-17T18:41:19Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/honee_stack/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./configure \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g' \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j8 all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;br /&gt;
&lt;br /&gt;
Official PETSc configuration documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://petsc.org/main/install/&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2136</id>
		<title>Build HONEE on Summit</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Build_HONEE_on_Summit&amp;diff=2136"/>
				<updated>2026-02-17T18:40:06Z</updated>
		
		<summary type="html">&lt;p&gt;Moam3950: /* 9) Test the installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Building HONEE on Summit nodes=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This page describes a Summit-specific workflow to build and test '''HONEE''' (main branch) on Summit compute nodes. HONEE depends on '''libCEED''' and '''PETSc'''.&lt;br /&gt;
&lt;br /&gt;
* HONEE repo: https://gitlab.com/phypid/honee&lt;br /&gt;
* libCEED repo: https://github.com/CEED/libCEED&lt;br /&gt;
* PETSc repo: https://gitlab.com/petsc/petsc&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This guide assumes you build inside an interactive PBS job on a Summit compute node.&lt;br /&gt;
&lt;br /&gt;
==1) Start an interactive Summit node==&lt;br /&gt;
From &amp;lt;code&amp;gt;jumpgate&amp;lt;/code&amp;gt;, request a node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
qsub -I -l select=1:ncpus=24:mpiprocs=24 -l walltime=72:00:00 -l place=scatter:exclhost -q workq&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should land on a Summit node.&lt;br /&gt;
&lt;br /&gt;
==2) Create a single workspace for all repositories==&lt;br /&gt;
Create a folder to hold all three code bases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir honee_stack&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd honee_stack&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/honee_stack/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;libCEED/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;petsc/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;honee/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3) Clone the repositories==&lt;br /&gt;
Navigate into &amp;lt;code&amp;gt;honee_stack&amp;lt;/code&amp;gt; and clone the 3 repos.&lt;br /&gt;
&lt;br /&gt;
===libCEED===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://github.com/CEED/libCEED&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PETSc (main branch)===&lt;br /&gt;
'''Important:''' Use PETSc &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, not the release branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/petsc/petsc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HONEE (main branch)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/phypid/honee&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==4) Build libCEED==&lt;br /&gt;
Navigate into the libceed directory &amp;lt;code&amp;gt;cd ~/honee_stack/libCEED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces &amp;lt;code&amp;gt;libCEED&amp;lt;/code&amp;gt; libraries needed by HONEE.&lt;br /&gt;
&lt;br /&gt;
==5) Build PETSc ==&lt;br /&gt;
Navigate into the PETSc directory &amp;lt;code&amp;gt;cd ~/honee_stack/PETSc &amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Example configuration===&lt;br /&gt;
Below is a good baseline: MPI enabled, optimized build, and CGNS/HDF5 support via downloads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./configure \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cc=mpicc \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-cxx=mpicxx \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-fc=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpi=1 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-mpiexec=mpirun \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-f2cblaslapack \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-hdf5 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--download-cgns \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;--with-debugging=0 \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;COPTFLAGS='-O3 -g' \&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;CXXOPTFLAGS='-O3 -g'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
make -j8 all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes on the example PETSc settings===&lt;br /&gt;
* &amp;lt;code&amp;gt;--with-debugging=0&amp;lt;/code&amp;gt; is recommended for performance runs.&lt;br /&gt;
* &amp;lt;code&amp;gt;-O3&amp;lt;/code&amp;gt; is appropriate for speed; keeping &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; helps debugging without major runtime cost.&lt;br /&gt;
* Downloading &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;cgns&amp;lt;/code&amp;gt; is recommended for CGNS output support.&lt;br /&gt;
&lt;br /&gt;
==6) Set environment variables for HONEE==&lt;br /&gt;
HONEE requires &amp;lt;code&amp;gt;CEED_DIR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PETSC_DIR&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;PETSC_ARCH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example setup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export CEED_DIR=$HOME/honee_stack/libCEED&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_DIR=$HOME/honee_stack/petsc&amp;lt;br&amp;gt;&lt;br /&gt;
export PETSC_ARCH=arch-linux-c-opt&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important runtime note (recommended while using the example PETSc config):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==7) Build HONEE==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==8) Run a sample problem==&lt;br /&gt;
Run the Gaussian wave example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
build/navierstokes -options_file examples/gaussianwave.yaml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==9) Test the installation==&lt;br /&gt;
Run the test suite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/honee_stack/honee&amp;lt;br&amp;gt;&lt;br /&gt;
make test -j&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Missing PETSc or libCEED===&lt;br /&gt;
Verify environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
echo $CEED_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_DIR&amp;lt;br&amp;gt;&lt;br /&gt;
echo $PETSC_ARCH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime linker errors (libpetsc.so not found)===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGNS/HDF5 issues===&lt;br /&gt;
Reconfigure PETSc with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
--download-hdf5 --download-cgns&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
Official HONEE installation documentation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://gitlab.com/phypid/honee&lt;/div&gt;</summary>
		<author><name>Moam3950</name></author>	</entry>

	</feed>