0% found this document useful (0 votes)
160 views

Introduction To The SU2 Code Structure

The document provides an introduction to the object-oriented structure of the SU2 code. It describes how SU2 is organized into modules like SU2_CFD, SU2_DDC, and SU2_MAC that can leverage common capabilities. It outlines the classes used in the SU2_CFD module to read input, solve equations, write output, store flow variables, perform discretization, and solve linear systems. Key classes include CConfig, CGeometry, CSolution, CVariable, CNumerics, and CSparseMatrix.

Uploaded by

Satadru Bera
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
160 views

Introduction To The SU2 Code Structure

The document provides an introduction to the object-oriented structure of the SU2 code. It describes how SU2 is organized into modules like SU2_CFD, SU2_DDC, and SU2_MAC that can leverage common capabilities. It outlines the classes used in the SU2_CFD module to read input, solve equations, write output, store flow variables, perform discretization, and solve linear systems. Key classes include CConfig, CGeometry, CSolution, CVariable, CNumerics, and CSparseMatrix.

Uploaded by

Satadru Bera
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Introduction to SU2 Code Structure

SU2 Release Version 2.0 Workshop


Stanford University
Tuesday, January 15th, 2013

Amrita K. Lonkar
Department of Aeronautics & Astronautics
Stanford University
SU2-­‐  Object  Oriented  Structure  

•  Why  Object  Oriented?  


–  Easy  to  add  new  capabili9es  

–  Easy  to  leverage  a  lot  of  


exis9ng  capabili9es.    

Jan  15th,  2013   SU2  Release  Version  2.0  Workshop   2  


SU2  Modules  

•  SU2_CFD  –  The  main  PDE  solu7on  module  

•  SU2_DDC  –  The  Domain  Decomposi9on  Code  


 

•  SU2_MAC  –  The  Mesh  Adapta9on  Code  

•  SU2_MDC-­‐  The  Mesh  Deforma9on  Code  

•  SU2_PBC  –  The  Periodic  Boundary  Condi9on  Code  

•  SU2_SMC  –  The  Sliding  Mesh  Code  

Jan  15th,  2013   SU2  Release  Version  2.0  Workshop   3  


SU2_CFD  Module        

 1a)  Read  Input   2)  Solve  Equa7ons   3)  Write  Output  


Class:  CConfig      
•  Read  the  config  file   Pick  Solver   Class:  COutput  
  •  Print  on  screen  
 Class:  CSolu9on  
 1b)  Read  Mesh   •  Euler  Equa9ons:              CEulerSolu9on   •  Write  solu9on  file  
Class:  CGeometry   •  Plasma  Equa9ons:        CPlasmaSolu9on   •  Write  restart  file  
•  Read  the  mesh  file   •  Adjoint  Equa9ons:      CEulerAdjSolu9on   •  Write  history  file  
•  Set  up  mul9grid  meshes   •  And  others…   trunk/Common/  
trunk/Common/    

Store  Flow  Variables   Discre7za7on   Solve  Linear  System  


     
Class:  CVariable   Class:  CNumerics   Class:  CSparseMatrix  
•  Stores  variables  at  every  mesh  node.   Spa9al  Discre9za9on   •  BiCSTAB  
•  Convec9ve  Flux,  Jacobian  
•  Declare  &  store  all  flow  variables   §  CNumerics::  Roe/JST/etc.   •  GMRES  
§  CEulerVariable:  Density,   •  Viscous  Flux,  Jacobian  
energy  etc.   §  CNumerics::  Avg_Grad/etc.   •  LU-­‐SGS  
§  CNSVariable:  +  Viscosity   •  Source  Terms,  Jacobian  
§  CAdjVariable:  Adjoint  variables   §  CNumerics::  PieceWiseConst.   •  Precondi9oners  
§  And  others…   §  Linelet  
Temporal  Discre9za9on   §  Jacobi  
•  Explicit  Euler/  Runge-­‐Kuda    
•  Implicit  Time  Integra9on   •  Update  solu9on  vector  

Jan  15th,  2013   SU2  Release  Version  2.0  Workshop`        MN  YGHHF   4  
 CGeometry  Class    

CGeometry

CPhysicalGeometry
CMultiGridGeometry

CPrimalGrid
CDualGrid

Children Classes
Children Classes

Parent Class: CDualGrid


Parent Class: CPrimalGrid

Files  in  Common/include:   CEdge


CHexahedron

•  geometry_structure.hpp   CLine

CPoint

•  geometry_structure.inl  
In  Common/src   CVertex
CPyramid

•  geometry_structure.cpp  
CRectangle

CTetrahedron

5  
Jan  15th,  2013   SU2  Release  Version  2.0  Workshop  
 CSolu9on  Class    
Parent Class: CSolution

CSolution

CEulerSolution
CNSSolution

CTurbSolution
CTurbSASolution

CSolu9on  
CEulerSolution

CPlasmaSolution
CTurbSSTSolution

CWaveSolution
New Turbulence Model

CVariable
CNumerics
CSparseMatrix

CVariable   CNumerics   CSparseMatrix   CFEASolution

CHeatSolution

CEulerVariable
CRoe_Flow

CLevelSetSolution

CAdjEulerSolution
CAdjNSSolution

Files  in  SU2_CFD/include:  
•  solu9on_structure.hpp   CAdjTurbSolution



•  solu9on_structure.inl   CAdjPlasmaSolution

In  SU2_CFD/src  
•  solu9on_direct_mean.cpp   CAdjLevelSetSolution

•  solu9on_adjoint_mean.cpp  
CLinEulerSolution

•  solu9on_direct_plasma.cpp  
•  solu9on_direct_template.cpp   CTemplateSolution

•  etc.   6  
Jan  15th,  2013   SU2  Release  Version  2.0  Workshop  
 CVariable  Class    
Parent Class: CVariable

CEulerVariable
CNSVariable

Stores  variables  for  a  par9cular  
CSolu9on   solu9on   class,  at  EVERY  grid  
CTurbVariable
node.  
CTurbSAVariable

CPlasmaVariable
CTurbSSTVariable

CWaveVariable
New Turbulence Model

CVariable   CNumerics   CSparseMatrix   CFEAVariable


CHeatVariable

CLevelSetVariable

CAdjEulerVariable
CAdjNSVariable

Files  in  SU2_CFD/include  
CAdjTurbVariable

•  variable_structure.hpp  
•  variable_structure.inl   CAdjPlasmaVariable

SU2_CFD/src  
•  variable_direct.cpp   CAdjLevelSetVariable

•  variable_adjoint.cpp   CLinEulerVariable

•  variable_template.cpp  
•  etc.   CTemplateVariable

7  
Jan  15th,  2013   SU2  Release  Version  2.0  Workshop  
 CNumerics  Class    
Parent Class: CNumerics

Roe’s Scheme
Average Gradient
Piecewise Constant Source

Child  Classes  for:    
JST Scheme
Galerkin

CSolu9on   Plasma Source

•  Convec9ve  Flux  Discre9za9on  +  Jacobian  
AUSM Scheme
Average Gradient Corrected

Gravity Source

•  Viscous  Flux  Discre9za9on              +  Jacobian  
HLLC Scheme
Template Viscous Terms

CVariable   CNumerics   CSparseMatrix   Electrical Source

Steger-Warming Scheme
•  Source  Terms  Discre9za9on          +  Jacobian  
Turbulence Source

Roe-Turkel for low Mach

Transition Source

Lax-Friedrich Scheme

Files  in  SU2_CFD/include  
Axisymmetric Source

•  numerics_structure.hpp  
Upwinding for Turb Scalar

•  numerics_structure.inl  
Template Convective Terms
Rotational Frame Source

In  SU2_CFD/src:  
•  numerics_structure.cpp   Free Surface Source

•  numerics_convec9ve.cpp  
•  numerics_viscous.cpp   Template Source Terms

•  numerics_source.cpp  
8  
Jan  15th,  2013   SU2  Release  Version  2.0  Workshop  
More  here…  

•  SU2  Paper:    
Stanford  University  Unstructured  (SU2):  An  open-­‐source  
integrated  computa9onal  environment  for  mul9physics  
simula9on  and  design.    AIAA  2013-­‐0287  

•  Developers  contact:    
susquared-­‐[email protected]  

Thank you

Jan  15th,  2013   SU2  Release  Version  2.0  Workshop   9  

You might also like