|
[Sponsors] |
April 21, 2015, 11:23 |
Question about SU2 optimization
|
#1 |
New Member
Daquan He
Join Date: Aug 2014
Posts: 7
Rep Power: 12 |
Hi everyone,
I am learning how to make an optimization on an airfoil, with Hicks-Henne geometric variables. I want to add AOA to be a design variable. So the design variables including Hicks-Henne airfoil variables and AOA. The optimization problem is derived slightly from tutorial 7 "Optimal Shape Design of a Rotating Airfoil", which is a common example in aircraft design: Minimize: drag coefficent at Ma = 0.75 subject to: CL=0.3, Max_THICKNESS > 0.12 design variables: Hicks-Henne parameters and AOA I have added AOA to the end of "DEFINITION_DV" in .cfg file. The same mesh file was used as tutorial 7. When I carried out the process, something was wrong. Can someone help me? (I am using version 3.2.2) Thanks! error displayed: New Design: DESIGNS/DSN_001 ./DESIGNS/DSN_001 Evalaute Equality Constraints Lift... DV_KIND: invalid option value HICKS_HENNE DV_PARAM: may not have ending semicolon DV_KIND: invalid option value HICKS_HENNE DV_PARAM: may not have ending semicolon DV_KIND: invalid option value HICKS_HENNE DV_PARAM: may not have ending semicolon DV_KIND: invalid option value HICKS_HENNE DV_PARAM: may not have ending semicolon ------------------------------------------------------- Primary job terminated normally, but 1 process returned a non-zero exit code.. Per user-direction, the job has been aborted. ------------------------------------------------------- -------------------------------------------------------------------------- mpirun detected that one or more processes exited with non-zero status, thus causing the job to be terminated. The first process to do so was: Process name: [[49933,1],1] Exit code: 1 -------------------------------------------------------------------------- Traceback (most recent call last): File "/data/hedaquanhe/SU2/bin/shape_optimization.py", line 130, in <module> main() File "/data/hedaquanhe/SU2/bin/shape_optimization.py", line 75, in main options.step ) #finite difference step default=1e-4 File "/data/hedaquanhe/SU2/bin/shape_optimization.py", line 113, in shape_optimization SU2.opt.SLSQP(project,x0,xb,its) # 'SU2.opt.__init__.py' from scipy_tools import scipy_slsqp as SLSQP(it is a function) File "/data/hedaquanhe/SU2/bin/SU2/opt/scipy_tools.py", line 102, in scipy_slsqp epsilon = 1.0e-06 )#control command File "/opt/apps/python-2.7/lib/python2.7/site-packages/scipy/optimize/slsqp.py", line 199, in fmin_slsqp constraints=cons, **opts) File "/opt/apps/python-2.7/lib/python2.7/site-packages/scipy/optimize/slsqp.py", line 300, in _minimize_slsqp meq = sum(map(len, [atleast_1d(c['fun'](x, *c['args'])) for c in cons['eq']])) File "/data/hedaquanhe/SU2/bin/SU2/opt/scipy_tools.py", line 152, in con_ceq cons = project.con_ceq(x) File "/data/hedaquanhe/SU2/bin/SU2/opt/project.py", line 213, in con_ceq return self._eval(konfig, func,dvs) File "/data/hedaquanhe/SU2/bin/SU2/opt/project.py", line 172, in _eval vals = design._eval(func,*args) File "/data/hedaquanhe/SU2/bin/SU2/eval/design.py", line 132, in _eval vals = eval_func(*inputs) File "/data/hedaquanhe/SU2/bin/SU2/eval/design.py", line 325, in con_ceq func = su2func(this_con,config,state) File "/data/hedaquanhe/SU2/bin/SU2/eval/functions.py", line 75, in function aerodynamics( config, state ) File "/data/hedaquanhe/SU2/bin/SU2/eval/functions.py", line 152, in aerodynamics info = update_mesh(config,state) File "/data/hedaquanhe/SU2/bin/SU2/eval/functions.py", line 541, in update_mesh info = su2run.decompose(config) File "/data/hedaquanhe/SU2/bin/SU2/run/decompose.py", line 66, in decompose SU2_PRT(konfig) File "/data/hedaquanhe/SU2/bin/SU2/run/interface.py", line 73, in PRT run_command( the_Command ) File "/data/hedaquanhe/SU2/bin/SU2/run/interface.py", line 277, in run_command raise Exception , message Exception: Path = /home/hedaquanhe/test2/DESIGNS/DSN_001/DECOMP/, Command = mpirun -n 4 /data/hedaquanhe/SU2/bin/SU2_PRT config_PRT.cfg SU2 process returned error '1' My .cfg file is: % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, % TNE2_EULER, TNE2_NAVIER_STOKES, % WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % % Mathematical problem (DIRECT, ADJOINT, LINEARIZED, ONE_SHOT_ADJOINT) MATH_PROBLEM= DIRECT % % Restart solution (NO, YES) RESTART_SOL= NO % ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------% % % Mach number (non-dimensional, based on the free-stream values) MACH_NUMBER= 0.75 % % Angle of attack (degrees) %AoA= 0 % % Side-slip angle (degrees) SIDESLIP_ANGLE= 0.0 % % Free-stream pressure (101325.0 N/m^2 by default, only Euler flows) FREESTREAM_PRESSURE= 101325.0 % % Free-stream temperature (288.15 K by default) FREESTREAM_TEMPERATURE= 288.15 % ---------------------- REFERENCE VALUE DEFINITION ---------------------------% % % Reference origin for moment computation REF_ORIGIN_MOMENT_X = 0.25 REF_ORIGIN_MOMENT_Y = 0.00 REF_ORIGIN_MOMENT_Z = 0.00 % % Reference length for pitching, rolling, and yawing non-dimensional moment REF_LENGTH_MOMENT= 1.0 % % Reference area for force coefficients (0 implies automatic calculation) REF_AREA= 1.0 % % Reference pressure (101325.0 N/m^2 by default) REF_PRESSURE= 1.0 % % Reference temperature (273.15 K by default) REF_TEMPERATURE= 1.0 % % Reference density (1.2886 Kg/m^3 (air), 998.2 Kg/m^3 (water)) REF_DENSITY= 1.0 % ----------------------- DYNAMIC MESH DEFINITION -----------------------------% % % Dynamic mesh simulation (NO, YES) %%GRID_MOVEMENT= YES % % Type of dynamic mesh (NONE, RIGID_MOTION, DEFORMING, ROTATING_FRAME, % MOVING_WALL, FLUID_STRUCTURE, AEROELASTIC, EXTERNAL) %%GRID_MOVEMENT_KIND= ROTATING_FRAME % % Motion mach number (non-dimensional). Used for intitializing a viscous flow % with the Reynolds number and for computing force coeffs. with dynamic meshes. %%MACH_MOTION= 0.79578199852934983 % % Coordinates of the motion origin %%MOTION_ORIGIN_X= 0.5 %%MOTION_ORIGIN_Y= -32.0 %%MOTION_ORIGIN_Z= 0.0 % % Angular velocity vector (rad/s) about the motion origin %%ROTATION_RATE_X = 0.0 %%ROTATION_RATE_Y = 0.0 %%ROTATION_RATE_Z = 8.25 % ----------------------- BOUNDARY CONDITION DEFINITION -----------------------% % % Marker of the Euler boundary (0 = no marker) MARKER_EULER= ( airfoil ) % % Marker of the far field (0 = no marker) MARKER_FAR= ( farfield ) % % Marker of the surface which is going to be plotted or designed MARKER_PLOTTING= ( airfoil ) % % Marker of the surface where the functional (Cd, Cl, etc.) will be evaluated MARKER_MONITORING= ( airfoil ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % % Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES % % Courant-Friedrichs-Lewy condition of the finest grid CFL_NUMBER= 6.0 % % CFL ramp (factor, number of iterations, CFL limit) CFL_RAMP= ( 1.0, 100, 0.1 ) % % Runge-Kutta alpha coefficients RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) % % Number of total iterations EXT_ITER= 300 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% % % Linear solver for implicit formulations (BCGSTAB, FGMRES) LINEAR_SOLVER= FGMRES % % Preconditioner of the Krylov linear solver (JACOBI, LINELET, LU_SGS) LINEAR_SOLVER_PREC= LU_SGS % % Minimum error of the linear solver for implicit formulations LINEAR_SOLVER_ERROR= 1E-6 % % Max number of iterations of the linear solver for the implicit formulation LINEAR_SOLVER_ITER= 5 % % Relaxation coefficient LINEAR_SOLVER_RELAX= 1.0 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % % Multi-Grid Levels (0 = no multi-grid) MGLEVEL= 3 % % Multi-Grid Cycle (0 = V cycle, 1 = W Cycle) MGCYCLE= 1 % % Maximum number of children in the agglomeration stage MAX_CHILDREN= 250 % % Maximum length of an agglomerated element (compared with the domain) MAX_DIMENSION= 0.2 % % Multi-Grid PreSmoothing Level MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) % % Multi-Grid PostSmoothing Level MG_POST_SMOOTH= ( 0, 0, 0, 0 ) % % Jacobi implicit smoothing of the correction MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) % % Damping factor for the residual restriction MG_DAMP_RESTRICTION= 0.95 % % Damping factor for the correction prolongation MG_DAMP_PROLONGATION= 0.95 % % Full Multigrid (NO, YES) FULLMG= NO % % Start up iterations using the fine grid START_UP_ITER= 0 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % % Convective numerical method (JST, LAX-FRIEDRICH, ROE, AUSM, HLLC) CONV_NUM_METHOD_FLOW= JST % % Slope limiter (VENKATAKRISHNAN) SLOPE_LIMITER_FLOW= VENKATAKRISHNAN % % Coefficient for the limiter LIMITER_COEFF= 0.3 % % 1st, 2nd and 4th order artificial dissipation coefficients AD_COEFF_FLOW= ( 0.15, 0.5, 0.02 ) % % Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) TIME_DISCRE_FLOW= EULER_IMPLICIT % ---------------- ADJOINT-FLOW NUMERICAL METHOD DEFINITION -------------------% % % Adjoint problem boundary condition (DRAG, LIFT, SIDEFORCE, MOMENT_X, % MOMENT_Y, MOMENT_Z, EFFICIENCY, % EQUIVALENT_AREA, NEARFIELD_PRESSURE, % FORCE_X, FORCE_Y, FORCE_Z, THRUST, % TORQUE, FREE_SURFACE) OBJECTIVE_FUNCTION= DRAG % % Convective numerical method (JST, LAX-FRIEDRICH, ROE) CONV_NUM_METHOD_ADJFLOW= JST % % Slope limiter (VENKATAKRISHNAN, SHARP_EDGES) SLOPE_LIMITER_ADJFLOW= SHARP_EDGES % % Coefficient for the sharp edges limiter SHARP_EDGES_COEFF= 3.0 % % 1st, 2nd, and 4th order artificial dissipation coefficients AD_COEFF_ADJFLOW= ( 0.15, 0.0, 0.02 ) % % Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT) TIME_DISCRE_ADJFLOW= EULER_IMPLICIT % % Reduction factor of the CFL coefficient in the adjoint problem CFL_REDUCTION_ADJFLOW= 0.8 % % Limit value for the adjoint variable LIMIT_ADJFLOW= 1E6 % % Remove sharp edges from the sensitivity evaluation (NO, YES) SENS_REMOVE_SHARP= NO % % Sensitivity smoothing (NONE, SOBOLEV, BIGRID) SENS_SMOOTHING= NONE % % Adjoint frozen viscosity (NO, YES) FROZEN_VISC= YES % --------------------------- PARTITIONING STRATEGY ---------------------------% % % Write a paraview file for each partition (NO, YES) VISUALIZE_PART= NO % ----------------------- GEOMETRY EVALUATION PARAMETERS ----------------------% % % Geometrical evaluation mode (FUNCTION, GRADIENT) GEO_MODE= FUNCTION % % Marker(s) of the surface where geometrical based func. will be evaluated GEO_MARKER= ( airfoil ) % ------------------------ GRID DEFORMATION PARAMETERS ------------------------% % Kind of deformation (FFD_SETTING, HICKS_HENNE, HICKS_HENNE_NORMAL, PARABOLIC, % HICKS_HENNE_SHOCK, NACA_4DIGITS, DISPLACEMENT, ROTATION, % FFD_CONTROL_POINT, FFD_DIHEDRAL_ANGLE, FFD_TWIST_ANGLE, % FFD_ROTATION) DV_KIND= HICKS_HENNE % % Marker of the surface in which we are going apply the shape deformation DV_MARKER= ( airfoil ) % % Parameters of the shape deformation % - HICKS_HENNE_FAMILY ( Lower(0)/Upper(1) side, x_Loc ) % - NACA_4DIGITS ( 1st digit, 2nd digit, 3rd and 4th digit ) % - PARABOLIC ( 1st digit, 2nd and 3rd digit ) % - DISPLACEMENT ( x_Disp, y_Disp, z_Disp ) % - ROTATION ( x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) DV_PARAM= ( 1, 0.5 ) % % Old value of the deformation for incremental deformations DV_VALUE= 0.05 % % Visualize the deformation (NO, YES) VISUALIZE_DEFORMATION= NO % --------------------------- CONVERGENCE PARAMETERS --------------------------% % Convergence criteria (CAUCHY, RESIDUAL) % CONV_CRITERIA= RESIDUAL % % Residual reduction (order of magnitude with respect to the initial value) RESIDUAL_REDUCTION= 8 % % Min value of the residual (log10 of the residual) RESIDUAL_MINVAL= -13 % % Start Cauchy criteria at iteration number STARTCONV_ITER= 10 % % Number of elements to apply the criteria CAUCHY_ELEMS= 100 % % Epsilon to control the series convergence CAUCHY_EPS= 1E-6 % % Function to apply the criteria (LIFT, DRAG, SENS_GEOMETRY, SENS_MACH, % DELTA_LIFT, DELTA_DRAG) CAUCHY_FUNC_FLOW= DRAG CAUCHY_FUNC_ADJFLOW= SENS_MACH % % Epsilon for full multigrid method evaluation FULLMG_CAUCHY_EPS= 1E-3 % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % Mesh input file MESH_FILENAME= mesh_NACA0012_rot.su2 % % Mesh input file format (SU2, CGNS, NETCDF_ASCII) MESH_FORMAT= SU2 % % Convert a CGNS mesh to SU2 format (YES, NO) CGNS_TO_SU2= NO % MESH_OUT_FILENAME= mesh_out.su2 % % Restart flow input file SOLUTION_FLOW_FILENAME= solution_flow.dat % % Restart adjoint input file SOLUTION_ADJ_FILENAME= solution_adj.dat % % Output file format (PARAVIEW, TECPLOT, STL) OUTPUT_FORMAT= TECPLOT % % Output file convergence history (w/o extension) CONV_FILENAME= history % % Output file restart flow RESTART_FLOW_FILENAME= restart_flow.dat % % Output file restart adjoint RESTART_ADJ_FILENAME= restart_adj.dat % % Output file linear flow RESTART_LIN_FILENAME= restart_lin.dat % % Output file flow (w/o extension) variables VOLUME_FLOW_FILENAME= flow % % Output file adjoint (w/o extension) variables VOLUME_ADJ_FILENAME= adjoint % % Output file linearized (w/o extension) variables VOLUME_LIN_FILENAME= linearized % % Output objective function gradient (using continuous adjoint) GRAD_OBJFUNC_FILENAME= of_grad.dat % % Output file surface flow coefficient (w/o extension) SURFACE_FLOW_FILENAME= surface_flow % % Output file surface adjoint coefficient (w/o extension) SURFACE_ADJ_FILENAME= surface_adjoint % % Output file surface linear coefficient (w/o extension) SURFACE_LIN_FILENAME= surface_linear % % Writing solution file frequency WRT_SOL_FREQ= 250 % % Writing convergence history frequency WRT_CON_FREQ= 1 % --------------------- OPTIMAL SHAPE DESIGN DEFINITION -----------------------% % Available Objective functions % DRAG, LIFT, SIDEFORCE, PRESSURE, FORCE_X, FORCE_Y, % FORCE_Z, MOMENT_X, MOMENT_Y, MOMENT_Z, EFFICIENCY, % EQUIVALENT_AREA, THRUST, TORQUE, FREE_SURFACE % Optimization objective function with optional scaling factor % ex= Objective * Scale OPT_OBJECTIVE= DRAG * 0.001 % Optimization constraint functions with scaling factors, separated by semicolons % ex= (Objective = Value ) * Scale, use '>','<','=' OPT_CONSTRAINT= (LIFT = 0.3)*0.001; ( MAX_THICKNESS > 0.12 ) * 0.001 % % List of design variables (Design variables are separated by semicolons) % From 1 to 99, Geometrycal design variables. % - HICKS_HENNE ( 1, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc ) % - NACA_4DIGITS ( 4, Scale | Mark. List | 1st digit, 2nd digit, 3rd and 4th digit ) % - ROTATION ( 6, Scale | Mark. List | x_Axis, y_Axis, z_Axis, x_Turn, y_Turn, z_Turn ) % From 100 to 199, Flow solver design variables. % - MACH_NUMBER ( 101, Scale | Markers List ) % - AOA ( 102, Scale | Markers List ) DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.961538461538 ); ( 1, 1.0 | airfoil | 0, 0.923076923077 ); ( 1, 1.0 | airfoil | 0, 0.884615384615 ); ( 1, 1.0 | airfoil | 0, 0.846153846154 ); ( 1, 1.0 | airfoil | 0, 0.807692307692 ); ( 1, 1.0 | airfoil | 0, 0.769230769231 ); ( 1, 1.0 | airfoil | 0, 0.730769230769 ); ( 1, 1.0 | airfoil | 0, 0.692307692308 ); ( 1, 1.0 | airfoil | 0, 0.653846153846 ); ( 1, 1.0 | airfoil | 0, 0.615384615385 ); ( 1, 1.0 | airfoil | 0, 0.576923076923 ); ( 1, 1.0 | airfoil | 0, 0.538461538462 ); ( 1, 1.0 | airfoil | 0, 0.5 ); ( 1, 1.0 | airfoil | 0, 0.461538461538 ); ( 1, 1.0 | airfoil | 0, 0.423076923077 ); ( 1, 1.0 | airfoil | 0, 0.384615384615 ); ( 1, 1.0 | airfoil | 0, 0.346153846154 ); ( 1, 1.0 | airfoil | 0, 0.307692307692 ); ( 1, 1.0 | airfoil | 0, 0.269230769231 ); ( 1, 1.0 | airfoil | 0, 0.230769230769 ); ( 1, 1.0 | airfoil | 0, 0.192307692308 ); ( 1, 1.0 | airfoil | 0, 0.153846153846 ); ( 1, 1.0 | airfoil | 0, 0.115384615385 ); ( 1, 1.0 | airfoil | 0, 0.0769230769231 ); ( 1, 1.0 | airfoil | 0, 0.0384615384615 ); ( 1, 1.0 | airfoil | 1, 0.0384615384615 ); ( 1, 1.0 | airfoil | 1, 0.0769230769231 ); ( 1, 1.0 | airfoil | 1, 0.115384615385 ); ( 1, 1.0 | airfoil | 1, 0.153846153846 ); ( 1, 1.0 | airfoil | 1, 0.192307692308 ); ( 1, 1.0 | airfoil | 1, 0.230769230769 ); ( 1, 1.0 | airfoil | 1, 0.269230769231 ); ( 1, 1.0 | airfoil | 1, 0.307692307692 ); ( 1, 1.0 | airfoil | 1, 0.346153846154 ); ( 1, 1.0 | airfoil | 1, 0.384615384615 ); ( 1, 1.0 | airfoil | 1, 0.423076923077 ); ( 1, 1.0 | airfoil | 1, 0.461538461538 ); ( 1, 1.0 | airfoil | 1, 0.5 ); ( 1, 1.0 | airfoil | 1, 0.538461538462 ); ( 1, 1.0 | airfoil | 1, 0.576923076923 ); ( 1, 1.0 | airfoil | 1, 0.615384615385 ); ( 1, 1.0 | airfoil | 1, 0.653846153846 ); ( 1, 1.0 | airfoil | 1, 0.692307692308 ); ( 1, 1.0 | airfoil | 1, 0.730769230769 ); ( 1, 1.0 | airfoil | 1, 0.769230769231 ); ( 1, 1.0 | airfoil | 1, 0.807692307692 ); ( 1, 1.0 | airfoil | 1, 0.846153846154 ); ( 1, 1.0 | airfoil | 1, 0.884615384615 ); ( 1, 1.0 | airfoil | 1, 0.923076923077 ); ( 1, 1.0 | airfoil | 1, 0.961538461538 ); ( 102, 1.0 | airfoil ) Last edited by YoniHe; April 22, 2015 at 06:45. |
|
April 22, 2015, 10:10 |
|
#2 |
New Member
Dario
Join Date: Apr 2015
Posts: 1
Rep Power: 0 |
Hello to everyone, I am new in this forum.
I can't even run the tutorial because I always get the same error, like YoniHe. ("SU2 process returned error '1'). I tried for three weeks and I am still in trouble! Does anyone know which is the solution, please? (The problem occurs only when trying to run a python script, the direct calculation works fine!) Dario |
|
April 29, 2015, 08:10 |
Can anyone help me?
|
#3 |
New Member
Daquan He
Join Date: Aug 2014
Posts: 7
Rep Power: 12 |
Can anyone help me with this problem?
|
|
January 15, 2016, 01:31 |
I have the same problem..
|
#4 |
New Member
Hwa-Young Jung
Join Date: Jan 2016
Posts: 1
Rep Power: 0 |
Hello,
I am a novice user of CFD as well as SU2. I installed the SU2v4.1.0-64 bit for Windows 7, Python 2.7.10-64 bit, scipy 0.16.1, and numpy 1.9.2. I set the environment variables as each variable name of "SU2_RUN" and "SU2_HOME" with the same variable value "C:\SU2" which containing SU2_XXX.exe, SU2_XXX source code files and SU2_PY. I could run the Quick Start tutorial successfully but still have a problem in the tutorial "Optimal Shape Design of a Transonic Airfoil" as the same problem like others.. (SU2 process returned error '1') I followed the tutorial but the 'history_project.dat' as a result file was like the attached file with just one evaluation number.. And there was a message in the log_Ajoint file created in C:\SU2\DESIGNS\DSN_001\ADJOINT_DRAG directory after 'Exit Success' message. ------------------------- Exit Success (SU2_CFD) ------------------------ MATH_PROBLEM: improper option value for type math problem OPT_BOUND_UPPER: invalid option name. Check current SU2 options in config_template.cfg. OPT_BOUND_LOWER: invalid option name. Check current SU2 options in config_template.cfg. Please help me to run and finish this tutorial. Thank you! |
|
Tags |
aoa, optimization, su2 |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Pointwise-SU2 joint webinar (April 29th) and SU2 v3.1.0 new release | fpalacios | SU2 News & Announcements | 1 | April 30, 2014 03:40 |
best setting for SU2 | mechy | SU2 | 3 | April 20, 2014 20:13 |
Incorrect calculation of forces/moments coefficients with older versions of SU2 | diwakaranant | SU2 | 2 | August 16, 2013 05:17 |
SU2 suite has moved to GitHub! | fpalacios | SU2 News & Announcements | 0 | August 12, 2013 03:07 |
Openfoam optimization question | atareen64 | OpenFOAM | 3 | June 1, 2011 09:36 |