# PHASTA

**Parallel Hierarchic Adaptive Stabilized Transient Analysis (PHASTA)** is a stabilized FEM fluid solver. It's code is publicly available on GitHub. It is pronounced *pasta*, as in the food.

See the Subpages section and PHASTA Category for related wiki articles.

## Contents

## PHASTA Theory Papers and Theses

Below is a list of the papers and thesis's published over time that deal with the theory of PHASTA and it's implementation.

### FEM Implementation

Papers/Theses related to the implementation of FEM theory:

- K. E. Jansen,
**“A stabilized finite element method for computing turbulence,”**Computer Methods in Applied Mechanics and Engineering, vol. 174, no. 3, pp. 299–317, May 1999, doi: 10/fk88ft. - J. Zdenek,
**“Data Parallel Finite Element Techniques for Large-scale Computational Fluid Dynamics,”**Ph.D. dissertation, Stanford University, 1992. - C. H. Whiting and K. E. Jansen,
**“A stabilized finite element method for the incompressible Navier–Stokes equations using a hierarchical basis,”**International Journal for Numerical Methods in Fluids, vol. 35, no. 1, pp. 93–116, 2001, doi: 10/bfrxzz. - F. Shakib,
**“Finite Element Analysis of the Compressible Euler and Naviers-Stokes Equations,”**Ph.D. dissertation, Stanford University, 1988. - C. H. Whiting,
**“Stabilized Finite Element Methods for Fluid Dynamics using a Hierarchical Basis,”**Ph.D. dissertation, Rennselear Polytechnic Institute, Troy, NY, 1999. Link

### Misc Numerical Implementation

- K. E. Jansen, C. H. Whiting, and G. M. Hulbert,
**“A generalized-α method for integrating the filtered Navier–Stokes equations with a stabilized finite element method,”**Computer Methods in Applied Mechanics and Engineering, vol. 190, no. 3–4, pp. 305–319, Oct. 2000, doi: 10/dd7jb2.

### Fluid Model Implementation

Papers/Theses related to the implementation of specific fluid models

- A. E. Tejada‐Martínez and K. E. Jansen,
**“Spatial test filters for dynamic model large-eddy simulation with finite elements,”**Communications in Numerical Methods in Engineering, vol. 19, no. 3, pp. 205–213, 2003, doi: 10/b6qb2t. - A. E. Tejada-Martı́nez and K. E. Jansen,
**“On the interaction between dynamic model dissipation and numerical dissipation due to streamline upwind/Petrov–Galerkin stabilization,”**Computer Methods in Applied Mechanics and Engineering, vol. 194, no. 9, pp. 1225–1248, Mar. 2005, doi: 10/cxrrc3. - A. E. Tejada-Martınez,
**“Dynamic Subgrid-Scale Modeling for Large-Eddy Simulation of Turbulent Flows with a Stabilized Finite Element Method,”**Ph.D. dissertation, Rensselaer Polytechnic Institute, Troy, NY, 2002. Link

## Misc Information

^{ When at all possible, please put relevant PHASTA information in a separate page or create your own page. This section is for general information that isn't large enough to put in a new page and doesn't belong as a new part of a different page.}

### PHASTA stdout

#### Iterations

stopjob,lstep,istep 6500 6498 898 1.938750000000030E-002 6499 9.515E+03 4.432E-07 ( 0) 2.818E-03 6.037E-04 < 16334- 7648| 22> [ 34 - 10] 6499 9.523E+03 1.485E-08 ( -14) 5.232E-05 5.121E-04 < 68- 7863| 30> [ 120 - 80] CFL Flow Step CFLfl_max dt 6499 8.846E-01 2.500E-06

`step number`

, `elapsed walltime`

, `non-linear residual`

, (`decible residual reduction`

), `(delta u)/u`

, `(delta p)/p`

, < `maxNodeRes`

- `part`

| `ratio`

> , [`# of CG iterations`

- `# of GMRES iterations`

]

#### Timings

At the end of a PHASTA run, timers are normally displayed, showing how long the code spent in certain areas. They are all displayed in the same format:

Elm. form. : min [0,1833.77005], max[1008,1912.99410] and avg[.,1884.10127] (rms=9.61549) Lin. alg. sol : min [1010,25904.35506], max[1001,25932.91754] and avg[.,25919.73341] (rms=3.81798) ... rblasphasta : min [164,1314.65255], max[114, 2143.41908 ] and avg[.,1870.08972] (rms=150.34270) iblasphasta : min [0,9845403], max[0,9845403] and avg[.,9845403] (rms=0)

`key`

: min [`min_part`

,`min_time`

], max [`max_part`

,`max_time`

], avg[.,`avg_time`

] (rms=`rms_time`

)

- The key shows what times are being displayed.
- If it has a
`r`

prefixed to it (ie. "real" number), it is the actual time in seconds. - If it has an
`i`

prefixed to it (ie. integer), it is the number of times that routine/function/operation was done.

- If it has a
- The first number in brackets (
`*_part`

) shows the partition (ie. part) number where the min/max occurred (note for average there is no corresponding part). - The second number in brackets (
`*_time`

) shows the min/max/average of timer- For
`i`

-prefixed keys, this is the number of calls to the routine/function/operation - For
`r`

-prefixed keys and all others, it is the time in seconds spent in the routine - Lastly, the
`rms`

is the*standard deviation*of the timer

- For
- Note the timers are for the
*entire PHASTA run*, and the statistics (average and standard deviation) are per part.