su2code / su2 Goto Github PK
View Code? Open in Web Editor NEWSU2: An Open-Source Suite for Multiphysics Simulation and Design
Home Page: https://su2code.github.io
License: Other
SU2: An Open-Source Suite for Multiphysics Simulation and Design
Home Page: https://su2code.github.io
License: Other
Right now if you include an EnumListOption with no values, for example,
% Type of mesh motion
% Type: EnumListOption Default: GridMovement_Map
GRID_MOVEMENT_KIND= ( )
SU2 gives an error of
Error inT okenizeString(): option GRID_MOVEMENT_KIND in configuration file with no value assigned.
I think this is not good behavior. It means that you cannot easily switch from a config file that uses grid movement to one that does not, and it means your can't write a valid config file that has all of the config options in it.
An extra null pointer check is not needed in functions like the following.
I tried to compile SU2 with:
git clone https://github.com/su2code/SU2
cd SU2
./configure
make -j$(nproc)
Configure
ran without any issues, but make
failed because it was looking for automake-1.14
and aclocal-1.14
. On my system I have version 1.11
installed. So I created two symlinks:
sudo ln -s /usr/bin/automake /usr/local/bin/automake-1.14
sudo ln -s /usr/bin/aclocal /usr/local/bin/aclocal-1.14
Ran make again, et voila, everything worked out fine. No issues.
I would like to suggest to change the source of SU2 to not specifically require version 1.14 of automake
and aclocal
.
Sometimes, the code effectively diverges, but does not actually nan. In this case, the code continues to run. There should be some sort of check that halts execution when this occurs.
For example, here the code has a residual increase of 25 orders of magnitude and then continues for a long time afterward.
514 0.858170 -3.810382 -0.818090 0.534918 0.011557
515 0.858110 -3.806673 1.276861 0.535673 0.011433
516 0.858248 -3.523170 2.017555 0.533807 0.010890
517 0.858833 -3.146589 2.453353 0.529337 0.009891
518 0.859031 -2.980286 3.070260 0.523952 0.009211
519 0.859039 -2.637185 3.740419 0.455339 -0.003290
The solution contains 100 non-physical points.
Maximum residual: -0.0373748, located at point 4582.
Iter Time(s) Res[Rho] Res[nu] CLift(Total) CDrag(Total)
520 0.859013 -1.437953 4.373667 -0.099686 -0.094575
The solution contains 127 non-physical points.
521 0.859003 -1.111074 5.056160 -4.065337 -0.780464
The solution contains 284 non-physical points.
522 0.858853 -0.693782 5.183287 -15.761187 -2.268335
The solution contains 514 non-physical points.
523 0.858725 -0.072830 5.147720 -60.615908 -9.156773
The solution contains 691 non-physical points.
524 0.858711 0.730028 4.462988 -358.683565 -69.148449
The solution contains 1434 non-physical points.
525 0.858921 1.373102 4.241595 -914.744092 -187.067270
The solution contains 2138 non-physical points.
526 0.859282 1.713954 3.814762 -1000.000000 -358.772646
The solution contains 1918 non-physical points.
527 0.859916 2.236290 4.340435 -1000.000000 -1000.000000
The solution contains 3154 non-physical points.
528 0.860132 2.291044 4.470125 -1000.000000 -1000.000000
The solution contains 2146 non-physical points.
529 0.860356 2.371124 3.845344 -1000.000000 -1000.000000
The solution contains 1962 non-physical points.
530 0.860386 2.282541 4.230209 -1000.000000 -1000.000000
The solution contains 2372 non-physical points.
531 0.860488 2.346939 4.654921 -1000.000000 -1000.000000
The solution contains 2496 non-physical points.
532 0.860713 2.307424 4.858399 -1000.000000 -1000.000000
The solution contains 2843 non-physical points.
533 0.860842 2.326434 4.965822 -1000.000000 -1000.000000
The solution contains 1398 non-physical points.
534 0.861230 2.506742 4.619859 -1000.000000 -1000.000000
The solution contains 1103 non-physical points.
535 0.861346 3.076538 5.037658 -1000.000000 -1000.000000
The solution contains 1505 non-physical points.
536 0.861831 3.178817 5.692809 1000.000000 -1000.000000
The solution contains 2716 non-physical points.
537 0.861933 3.475146 6.055387 1000.000000 -1000.000000
The solution contains 1071 non-physical points.
538 0.861955 3.352903 5.809910 1000.000000 1000.000000
The solution contains 869 non-physical points.
539 0.861970 10.502005 5.406599 1000.000000 1000.000000
The solution contains 484 non-physical points.
Maximum residual: 12.2995, located at point 9122.
Iter Time(s) Res[Rho] Res[nu] CLift(Total) CDrag(Total)
540 0.862010 10.482742 5.527612 1000.000000 1000.000000
The solution contains 311 non-physical points.
541 0.862336 10.173994 5.795970 1000.000000 1000.000000
The solution contains 351 non-physical points.
542 0.862604 10.888136 5.892078 1000.000000 1000.000000
The solution contains 740 non-physical points.
543 0.862822 11.004870 5.926460 1000.000000 1000.000000
The solution contains 794 non-physical points.
544 0.863036 10.896925 5.946274 1000.000000 1000.000000
The solution contains 1043 non-physical points.
545 0.863305 10.780974 6.014822 1000.000000 -1000.000000
The solution contains 52 non-physical points.
546 0.863434 11.006074 6.193320 1000.000000 -1000.000000
The solution contains 100 non-physical points.
547 0.863491 16.405862 6.268311 -1000.000000 1000.000000
548 0.863551 21.156949 6.187249 -1000.000000 1000.000000
549 0.863572 20.713874 6.055920 -1000.000000 -1000.000000
550 0.863532 20.780220 6.044304 -1000.000000 -1000.000000
551 0.863474 20.816135 6.048407 -1000.000000 -1000.000000
The solution contains 21 non-physical points.
552 0.863471 20.672119 6.034922 -1000.000000 -1000.000000
many iterations later
The solution contains 1914 non-physical points.
977 0.893147 64.219218 11.800077 -1000.000000 1000.000000
The solution contains 1823 non-physical points.
978 0.893113 64.232616 11.770575 -1000.000000 1000.000000
The solution contains 2178 non-physical points.
979 0.893083 64.159323 11.882706 -1000.000000 -1000.000000
The solution contains 1788 non-physical points.
Maximum residual: 65.7206, located at point 5028.
Iter Time(s) Res[Rho] Res[nu] CLift(Total) CDrag(Total)
980 0.893109 64.114631 11.897500 -1000.000000 -1000.000000
981 0.893082 64.243047 12.598995 -1000.000000 1000.000000
982 0.892990 71.853036 12.042708 -1000.000000 1000.000000
983 0.892886 71.308281 11.863795 -1000.000000 1000.000000
984 0.892820 71.180385 11.838073 -1000.000000 1000.000000
985 0.892757 71.070490 11.785052 -1000.000000 1000.000000
The NACA 0012 test case (TestCases/rans/naca0012) does not converge with the provided config file if RESTART_SOL=NO, and the number of iterations is increased beyond 25. The test case should be updated to have a config file which converges "out of the box"
Right now, the solution file (where SU2 writes the solution upon a successful conclusion) and the restart load file (where SU2 loads the solution) are the same file. It would be nice to at least have the option to make these two different files. Take, for example, my case or Alejandro's case where we load from a converged solution to run our turbulence models. If I run for 100 iterations as a test, for example, my restart file (the SU2 solution file) is overwritten. So instead, I have to make a copy of the restart file, and upon completion rename the output solution file to something else, and rename my copied solution file (really the restart file) back to the SU2 solution file name.
I saw in 8 places of the code that non-constant expression have been used which are illegal in standard C/C++.
Since by default the Gcc enables new extensions you can not see these errors but actually you don't need those extension and at this moment they weaken potability of your code.
To see these errors you can add -pedantic-errors switch to gcc or compile it by Microsoft Visual Studio.
I list them in the following (version 2.0.8). I changed them to pointer and the code can be compiled in microsoft visual studio without any change.
1- geometry_structure.cpp -> Line 11597 ->NewSort[nPoint]
2- config_structure.cpp -> Line 1459 -> periods[N_MOTION_TYPES]
3-solver_structure.cpp -> Line 1354 -> Solution[nVar]
4- -> Line 1566 -> Solution[nVar]
5-solver_direct_tne2.cpp -> Line 4469 -> FluxTensor[nVar][nDim]
6-solver_direct_mean.cpp -> Line 41244132 -> FanFace_MassFlow_local[nMarker ...]4150 -> Exhaust_MassFlow_local[nMarker ...]
7-solver_direct_mean.cpp -> Line 4146
8-numerics_direct_transition.cpp ->Line 152,153 -> Density_Grid_i[nDim],...
i tried a low reynold's number flow simulation for tutorial mesh and it worked, but it does not work with my mesh generated in gmsh.
test issue
Not sure if you are aware, but the C++ MPI bindings have been deprecated since MPI-2.2:
http://www.mpi-forum.org/docs/mpi-2.2/mpi22-report/node328.htm
As MPI-3 becomes more prevalent, using the deprecate C++ MPI interface is dangerous for portability.
The SU2 mesh format states that the elements must have IDs "The final value is the element index given to each interior element in the mesh.". However, these values are completely ignored by SU2 (see geometry_structure.cpp in the code section starting with '/--- Read the information about inner elements ---/' around line 2981). Given that SU2 doesn't use them, we may as well remove them from the specification. They just make mesh files larger.
Currently, the mesh file documentation (http://adl-public.stanford.edu/docs/display/SUSQUARED/Mesh+files) says
"Each line gives the coordinates for a single node followed by its index number. The node index numbers are the indices used for specifying the connectivity information for elements."
and are specified by
0.00000000000000 0.00000000000000 0
0.50000000000000 0.00000000000000 1
1.00000000000000 0.00000000000000 2
0.00000000000000 0.50000000000000 3
0.50000000000000 0.50000000000000 4
1.00000000000000 0.50000000000000 5
0.00000000000000 1.00000000000000 6
0.50000000000000 1.00000000000000 7
1.00000000000000 1.00000000000000 8
These two facts imply that the number at the end specifies the node number of the location. A consequence of that assumption would be that the nodes could be specified in an arbitrary order, for example as,
1.00000000000000 0.00000000000000 2
0.00000000000000 0.00000000000000 0
0.50000000000000 0.00000000000000 1
1.00000000000000 1.00000000000000 8
1.00000000000000 0.50000000000000 5
0.00000000000000 0.50000000000000 3
0.50000000000000 0.50000000000000 4
0.00000000000000 1.00000000000000 6
0.50000000000000 1.00000000000000 7
This, however, is not true. Looking at CPhysicalGeometry::Read_SU2_Format, the node number is not even used in serial; the nodes are assumed to be given in order, and in the .su2 file the node number can be anything or nothing. The number appears to matter if it is MPI with more than one CPU, but here two different index values are needed (the local and the global). This fact is not mentioned at all in the documentation. The documentation should be changed to match the implementation, or the implementation should be changed to match the documentation.
There is a tab printed after the last number in the restart, but not after the last heading. This breaks csv readers because fields are allowed to be blank, and so it looks like there are an unequal number of rows and headings. This should be fixed so that the last number in the file is followed by a newline rather than a tab.
Right now, there is no error checking whatsoever for the solution restart file. You can give it a tecplot file (for instance) and it will read in without any warning. When we fix that, we should also be adding to the header file (this was run for X solver, etc.) to check that the variables mean the same thing.
Currently, the variable name headings are comma delimited and the values are tab delimited. It would be nice if this were consistent.
Check shape_optimization.py and http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.optimize.fmin_slsqp.html
SU2 right now is inconsistent with how it does file names in the config file. For example, the restart file needs to be specified with a ".dat" suffix, but in the case of the surface files, the ".csv" is added automatically. SU2 should be consistent across all filenames. Preferably, this will be fixed by having the user specify all suffixes. This is a tiny amount of additional work for the user, but it makes writing scripts that use the config file much easier. When the suffix is in the config file, it's easy to have python say "open this file". If the config file just has the base name of the file (no extension) then the knowledge of what suffix SU2 uses must be hard-coded into the follow-on script (which can then break later if SU2 changes).
The enum options (for example in the config file) should be of their type, not just as unsigned short.
The SU2 mesh file format states that elements must have node numbers ("The final value is the element index given to each interior element in the mesh"). The NACA 0012 mesh does not have them, and thus doesn't follow the specification. See issue 52 for possible alternative resolution.
The name FullMG is confusing compared with the other MG settings.
Hi,
I have tried to download the .su2 files for the tutorials from
http://su2.stanford.edu/download/v3.1.0/TestCases_3.1.0.tar.gz
but I found that the file seems unexistent .
Currently if you have more column headings than data values in the row SU2_SOL will print garbage into the remaining spots. There should be some check on this.
Hi,
I have been running a simulation with CGNS mesh format from the provided test cases using the last version, SU2 - 3.2.0. The test case was Euler flow simulation over a wedge using the HLLC scheme. The point is that everything going well with the native mesh format, su2, in both parallel and serial, but with the cgns mesh format only in serial the simulation starts. In parallel, the bad termination error comes up exactly after Solution Postprocessing. I checked out with 2.0.10 and had no problem. The details are provided in the following.
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 1
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
Traceback (most recent call last):
File "parallel_computation.py", line 117, in <module>
main()
File "parallel_computation.py", line 62, in main
options.divide_grid )
File "parallel_computation.py", line 103, in parallel_computation
info = SU2.run.merge(config)
File "/~/SU2/code/320/release/SU2_PY/SU2/run/merge.py", line 70, in merge
merge_solution(konfig)
File "/~/SU2/code/320/release/SU2_PY/SU2/run/merge.py", line 96, in merge_solution
SU2_SOL( config )
File "~/SU2/code/320/release/SU2_PY/SU2/run/interface.py", line 240, in SOL
run_command( the_Command )
File "/~/SU2/code/320/release/SU2_PY/SU2/run/interface.py", line 277, in run_command
raise Exception , message
Exception: Path = /~/SU2/code/320/release/SU2_PY/,
Command = mpirun -n 4 /usr/local/bin/SU2_SOL config_SOL.cfg
SU2 process returned error '1'
Checked out the traceback error in the merge and interface python files, but couldn't figure it out. Is there any problem with the SU2_SOL.cpp?
I appreciate your help for finding the source.
Bests,
PDP
Dear,
I have recently installed SU2 v3.0 64bit (pre-compiled from SU2 download) on a Windows 7 x64 single_threded and installed python2.7.6 (winPython_amd64) also tried python3.3.
I have installed SU2 as c:\SU2 (no spaces as in program files installation).
When I tried to run the test case of turb_RAE2822 at command prompt:
Code:
python "c:\su2\shape_optimization.py" -f turb_rae2822.cfg
Follwing error displayed:
Traceback (most recent call last):
File "shape_optimization.py", line 26, in
import_su2
File "init.py", line 13, in
if 'libedit' in readline.doc
Type Error: argument of type 'nonetype' is not iterable
How can it be solved?
What is the appropriate version of python?
One more thing that I have found that SU2 is slower than Fluent, i tried naca0012 test case, how can it be sppedy?
Best Regards
Ali
When I try to build with Metis 5 I get the following error :
../src/geometry_structure.cpp:4994:101: error: cannot convert 'int_' to 'idx_t_ {aka long int_}' for argument '1' to 'int METIS_PartMeshNodal(idx_t_, idx_t_, idx_t_, idx_t_, idx_t_, idx_t_, idx_t_, real_t_, idx_t_, idx_t_, idx_t_, idx_t*)'
METIS_PartMeshNodal(&ne, &nn, eptr, elmnts, NULL, NULL, &nparts, NULL, NULL, &edgecut, epart, npart);
the other problem is that you are using metis static (libmetis.a ) instead of libmetis.so (shared)
that' s a problem when you try to package SU^2 for a Linux distribution like Mageia or Fedora or Debian
Just for information , here the patch I made :
Index: SU2-2.0.8/configure
===================================================================
--- SU2-2.0.8/configure
+++ SU2-2.0.8/configure 2013-12-08 13:56:04.120804942 +0100
@@ -1369,7 +1369,7 @@
--with-Tecio-lib=ARG Tecio library directory, ARG = path to libtecio.a
--with-Tecio-include=ARG
Tecio include directory, ARG = path to TECIO.h
- --with-Metis-lib=ARG Metis library directory, ARG = path to libmetis.a
+ --with-Metis-lib=ARG Metis library directory, ARG = path to libmetis.so
--with-Metis-include=ARG
Metis include directory, ARG = path to metis.h
--with-Metis-version=ARG
@@ -2619,7 +2619,7 @@
###########################
# check for lib
-METISlib=libmetis.a
+METISlib=libmetis.so
METISheader=metis.h
METISversion=
have_METIS="no"
Index: SU2-2.0.8/configure.ac
===================================================================
--- SU2-2.0.8/configure.ac
+++ SU2-2.0.8/configure.ac 2013-12-08 13:56:33.410426071 +0100
@@ -32,7 +32,7 @@
AS_HELP_STRING([--with-Tecio-include[=ARG]], [Tecio include directory, ARG = path to TECIO.h]),
[with_Tecio_include=$withval], [with_Tecio_include="no"])
AC_ARG_WITH(Metis-lib,
- AS_HELP_STRING([--with-Metis-lib[=ARG]], [Metis library directory, ARG = path to libmetis.a]),
+ AS_HELP_STRING([--with-Metis-lib[=ARG]], [Metis library directory, ARG = path to libmetis.so]),
[with_Metis_lib=$withval], [with_Metis_lib="no"])
AC_ARG_WITH(Metis-include,
AS_HELP_STRING([--with-Metis-include[=ARG]], [Metis include directory, ARG = path to metis.h]),
@@ -121,7 +121,7 @@
###########################
# check for lib
-METISlib=libmetis.a
+METISlib=libmetis.so
METISheader=metis.h
METISversion=
have_METIS="no"
Index: SU2-2.0.8/Common/src/geometry_structure.cpp
===================================================================
--- SU2-2.0.8/Common/src/geometry_structure.cpp
+++ SU2-2.0.8/Common/src/geometry_structure.cpp 2013-12-08 15:09:06.224673053 +0100
@@ -4847,7 +4847,7 @@
unsigned long iPoint, iElem, iElem_Triangle, iElem_Tetrahedron, nElem_Triangle,
nElem_Tetrahedron, kPoint, jPoint, iVertex;
unsigned short iMarker, iMaxColor = 0, iColor, MaxColor = 0, iNode, jNode;
- int ne = 0, nn, *elmnts = NULL, etype, *epart = NULL, *npart = NULL, numflag, nparts, edgecut, *eptr;
+ long int ne = 0, nn, *elmnts = NULL, etype, *epart = NULL, *npart = NULL, numflag, nparts, edgecut, *eptr;
int rank = MPI::COMM_WORLD.Get_rank();
int size = MPI::COMM_WORLD.Get_size();
@@ -4867,21 +4867,21 @@
if (GetnDim() == 2) {
ne = nElem_Triangle;
- elmnts = new int [ne*3];
+ elmnts = new long int [ne*3];
etype = 1;
}
if (GetnDim() == 3) {
ne = nElem_Tetrahedron;
- elmnts = new int [ne*4];
+ elmnts = new long int [ne*4];
etype = 2;
}
nn = nPoint;
numflag = 0;
nparts = nDomain;
- epart = new int [ne];
- npart = new int [nn];
- eptr = new int[ne+1];
+ epart = new long int [ne];
+ npart = new long int [nn];
+ eptr = new long int[ne+1];
if (nparts < 2) {
cout << "The number of domains must be greater than 1!" << endl;
cout << "Press any key to exit..." << endl;
@@ -4990,7 +4990,7 @@
#ifdef METIS_5
/*--- Calling METIS 5.0.2 ---*/
- int options[METIS_NOPTIONS];
+ long int options[METIS_NOPTIONS];
METIS_SetDefaultOptions(options);
options[METIS_OPTION_OBJTYPE] = METIS_OBJTYPE_CUT;
METIS_PartMeshNodal(&ne, &nn, eptr, elmnts, NULL, NULL, &nparts, NULL, NULL, &edgecut, epart, npart);
Currently the error is:
COptionRef::SetValue(const vector&): number of input values does not match size of option array.
There is now a SpalartAllmaras function that is used by the ML code to compute teh SA source term. This should be used by SA as well. Before this change can happen we need to look at the public intermediate values computed by SA and see if any of them are needed.
while running SU2_CFD inv_NACA0012.cfg
I get "MG_CFL_REDUCTION: invalid option name"
int the file inv_NACA0012.cfg:
% Reduction factor of the CFL coefficient on the coarse levels
MG_CFL_REDUCTION= 0.9
I used SU2-3.0.0 'eagle'
My metis version is 5.1.0. But when I compile Metis 64bit (set IDXTYPEWIDTH to 64) .There are some compile errors occured below:
......
......
../src/geometry_structure.cpp(5371): error: argument of type "int *" is incompatible with parameter of type "idx_t={int64_t={l ong}} *"
METIS_SetDefaultOptions(options);
^
../src/geometry_structure.cpp(5373): error: argument of type "int *" is incompatible with parameter of type "idx_t={int64_t={l ong}} *"
METIS_PartMeshNodal(&ne, &nn, eptr, elmnts, NULL, NULL, &nparts, NULL, NULL, &edgecut, epart, npart);
......
......
Same to metis, when I compile cgns with hdf5. There are also some errors. The library link may be had some mistake.
But the most important error is that -- when I change --with-mpi=mpicxx to --with-mpi=mpiicpc .
Build Configuration Summary:
Source code location: /parastor/users/isc01/zy/temp/SU2-master-back
Install location:
Version: 3.0.0 "eagle"
Compiler: mpiicpc
Preprocessor flags: -O3
Compiler flags: -O3
Linker flags:
CGNS support: no
MPI support: yes
Metis support: yes
TecIO support: no
Mutation++ support: no
Jsoncpp support: no
Build SU2_CFD: yes
Build SU2_DDC: yes
Build SU2_GPC: yes
Build SU2_MAC: yes
Build SU2_MDC: yes
Build SU2_PBC: yes
Build SU2_SOL: yes
Build SU2_GDC: yes
Build SU2_UMC: yes
There are some errors below:
Making all in Common/lib
make[1]: Entering directory /parastor/users/isc01/zy/temp/SU2-master-back/Common/lib' mpiicpc -DPACKAGE_NAME=\"SU\^2\" -DPACKAGE_TARNAME=\"SU\^2\" -DPACKAGE_VERSION=\"3.0.0\ \"eagle\"\" -DPACKAGE_STRING=\"SU\^2\ 3.0.0\ \"eagle\"\" -DPACKAGE_BUGREPORT=\"[email protected]\" -DPACKAGE_URL=\"http://su2.stanford.edu\" -DPACKAGE=\"SU\^2\" -DVERSION=\"3.0.0\ \"eagle\"\" -I. -O3 -DNO_CGNS -I/parastor/users/isc01/zy/metis-64/include -DMETIS_5 -DNO_TECIO -DNO_MUTATIONPP -O3 -MT ../src/libSU2_a-config_structure.o -MD -MP -MF ../src/.deps/libSU2_a-config_structure.Tpo -c -o ../src/libSU2_a-config_structure.o
test -f '../src/config_structure.cpp' || echo './'../src/config_structure.cpp mv -f ../src/.deps/libSU2_a-config_structure.Tpo ../src/.deps/libSU2_a-config_structure.Po mpiicpc -DPACKAGE_NAME=\"SU\^2\" -DPACKAGE_TARNAME=\"SU\^2\" -DPACKAGE_VERSION=\"3.0.0\ \"eagle\"\" -DPACKAGE_STRING=\"SU\^2\ 3.0.0\ \"eagle\"\" -DPACKAGE_BUGREPORT=\"[email protected]\" -DPACKAGE_URL=\"http://su2.stanford.edu\" -DPACKAGE=\"SU\^2\" -DVERSION=\"3.0.0\ \"eagle\"\" -I. -O3 -DNO_CGNS -I/parastor/users/isc01/zy/metis-64/include -DMETIS_5 -DNO_TECIO -DNO_MUTATIONPP -O3 -MT ../src/libSU2_a-dual_grid_structure.o -MD -MP -MF ../src/.deps/libSU2_a-dual_grid_structure.Tpo -c -o ../src/libSU2_a-dual_grid_structure.o
test -f '../src/dual_grid_structure.cpp' || echo './'`../src/dual_grid_structure.cpp
/public/soft/intel/impi/3.2.2.006/include64/mpicxx.h(45): catastrophic error: #error directive: "SEEK_SET is #defined but must not be for the C++ binding of MPI. Include mpi.h before stdio.h"
#error "SEEK_SET is #defined but must not be for the C++ binding of MPI. Include mpi.h before stdio.h"
^
compilation aborted for ../src/dual_grid_structure.cpp (code 4)
make[1]: *** [../src/libSU2_a-dual_grid_structure.o] Error 4
make[1]: Leaving directory `/parastor/users/isc01/zy/temp/SU2-master-back/Common/lib'
make: *** [all-recursive] Error 1
The NACA 0012 Mesh (mesh_NACA0012_turb_897x257.su2) does not match the input file format. It is listed as a 2-dimensional mesh, but there are three floating point numbers and then a node number.
The NACA 0012 Mesh (mesh_NACA0012_turb_897x257.su2) has 3 floating point numbers and then one integer number, but is listed as a 2-dimensional mesh. CPhysicalGeometry::Read_SU2_Format is fine with the mesh file. Worse, it seems to use the z coordinate as the local index under certain conditions (see line 3430). In serial, the node number is ignored, so we are okay, but this is clearly undesirable behavior.
In iteration_structure, there are currently several places that say things along the lines of
for (iZone = 0; iZone < nZone; iZone++) {
if (config_container[ZONE_0]->GetWind_Gust())
SetWind_GustField(config_container[iZone],geometry_container[iZone],solver_container[iZone]);
}
}
The iteration loop is on the outside with the if statement inside rather than the opposite. This is less legible (you have to read the loop rather than seeing you aren't using a wind gust) and slower (you have to evaluate the if statement every time). These occurrences should be changed
I just (08/23/2013 @ ~12:30p.m. PDT) pulled over the latest changes via git. After re-compiling, and launching a parallel job (OM6 Turbulent Wing Test Case) with the parallel_computation.py script, SU2 seems to launch 4 serial, duplicate jobs rather than 1 parallel job on 4 cores.
SU2 should be consistent if the node numbers are represented by unsigned long, long, long long, unsigned int or int
There is a lot of repeated code in COutput::SetRestart (output_tecplot.cpp) and AssembleVariableNames (output_tecplot.cpp). These two functions should be combined (maybe to return a string that is all of the headings?)
We could do a better job of explaining how the CFL number and ramp operate which would help improve clarity.
The default values for the marker options do not parse. It would be nice to add a "NONE" flag that can be parsed as not having any of that boundary type.
in config:
% Dirichlet boundary marker(s)
% Type: MarkerOption Default: Marker_Dirichlet
MARKER_DIRICHLET= Marker_Dirichlet
error is:
Error in CMarkerDirichletRef::SetValue(): incorrect number of MARKER_DIRICHLET_ELEC parameters in the configuration file.
Boundary Markers on wall MARKER_NS computes laminar or turbulent flow on the basis of the marker KIND_TURB_MODEL.
Could it be possible to split the key MARKER_NS in LAM and TURB? In this way it could be possible to compute a fixed transition point simulation.
Currently, the source term assumes that the axisymmetric behavior is about the x-axis in a 2D problem (uses the y-coordinate in the implementation). For clarity, we should add a disclaimer in the config file description/comment or print this information during preprocessing.
Ubuntu 12.04.3
OpenMPI 1.4.3 (repo)
OpenMPI runs well on my system with other applications, but fails 100% of the time with SU2 compiled for mpi. Specific example:
shape_optimization.py -f inv_ONERAM6.cfg -p 4
Error:
------------------------- Solver Preprocessing --------------------------
Area projection in the z-plane = 0.758602.
Traceback (most recent call last):
File "../SU2_PY/shape_optimization.py", line 124, in
main()
File "../SU2_PY/shape_optimization.py", line 69, in main
options.step )
File "../SU2_PY/shape_optimization.py", line 107, in shape_optimization
SU2.opt.SLSQP(project,x0,xb,its)
File "/media/1tb/SU2/SU2_PY/SU2/opt/scipy_tools.py", line 102, in scipy_slsqp
epsilon = 1.0e-06 )
File "/usr/lib/python2.7/dist-packages/scipy/optimize/slsqp.py", line 236, in fmin_slsqp
mieq = len(f_ieqcons(x))
File "/usr/lib/python2.7/dist-packages/scipy/optimize/optimize.py", line 176, in function_wrapper
return function(x, _args)
File "/media/1tb/SU2/SU2_PY/SU2/opt/scipy_tools.py", line 187, in con_cieq
cons = project.con_cieq(x)
File "/media/1tb/SU2/SU2_PY/SU2/opt/project.py", line 223, in con_cieq
return self._eval(konfig, func,dvs)
File "/media/1tb/SU2/SU2_PY/SU2/opt/project.py", line 172, in _eval
vals = design._eval(func,_args)
File "/media/1tb/SU2/SU2_PY/SU2/eval/design.py", line 132, in _eval
vals = eval_func(inputs)
File "/media/1tb/SU2/SU2_PY/SU2/eval/design.py", line 422, in con_cieq
func = su2func(this_con,config,state)
File "/media/1tb/SU2/SU2_PY/SU2/eval/functions.py", line 75, in function
aerodynamics( config, state )
File "/media/1tb/SU2/SU2_PY/SU2/eval/functions.py", line 200, in aerodynamics
info = su2run.direct(config)
File "/media/1tb/SU2/SU2_PY/SU2/run/direct.py", line 75, in direct
SU2_CFD(konfig)
File "/media/1tb/SU2/SU2_PY/SU2/run/interface.py", line 93, in CFD
run_command( the_Command )
File "/media/1tb/SU2/SU2_PY/SU2/run/interface.py", line 279, in run_command
raise Exception , message
Exception: Path = /media/1tb/SU2/onera6/DESIGNS/DSN_001/DIRECT/,
Command = mpirun -np 4 /usr/local/bin/SU2_CFD config_CFD.cfg
SU2 process returned error '134'
CSysVector::CSysVector(unsigned int,unsigned int,double): invalid input: numBlk, numVar = 0CSysVector::CSysVector(unsigned int,unsigned int,double): CSysVector::CSysVector(unsigned int,unsigned int,double): invalid input: numBlk, numVar = 0,5
,5
invalid input: numBlk, numVar = 0terminate called after throwing an instance of 'terminate called after throwing an instance of 'int'
,5
[ system:14029] ** Process received signal ***
int[ system:14029] Signal: Aborted (6)
[ system:14029] Signal code: (-6)
terminate called after throwing an instance of 'int'
'
[ system:14030] *** Process received signal ***
[ system:14031] *** Process received signal ***
[ system:14030] Signal: Aborted (6)
[ system:14030] Signal code: (-6)
[ system:14031] Signal: Aborted (6)
[ system:14031] Signal code: (-6)
[ system:14029] [ 0] /lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0) [0x7f7495f2acb0]
[ system:14029] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f7495b91425]
[ system:14029] [ 2] /lib/x86_64-linux-gnu/libc.so.6(abort+0x17b) [0x7f7495b94b8b]
[ system:14030] [ 0] /lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0) [0x7f13a80aecb0]
[ system:14030] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f13a7d15425]
[ system:14030] [ 2] /lib/x86_64-linux-gnu/libc.so.6(abort+0x17b) [0x7f13a7d18b8b]
[ system:14030] [ 3] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x11d) [0x7f13a888569d]
[ system:14030] [ 4] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5846) [0x7f13a8883846]
[ system:14030] [ 5] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5873) [0x7f13a8883873]
[ system:14030] [ 6] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb596e) [0x7f13a888396e]
[ system:14030] [ 7] /usr/local/bin/SU2_CFD() [0x848d97]
[ system:14030] [ 8] /usr/local/bin/SU2_CFD(_ZN12CEulerSolverC1EP9CGeometryP7CConfigt+0x895) [0x64d055]
[ system:14030] [ 9] /usr/local/bin/SU2_CFD(_Z20Solver_PreprocessingPPP7CSolverPP9CGeometryP7CConfigt+0x1e9) [0x45a299]
[ system:14030] [10] /usr/local/bin/SU2_CFD(main+0x638) [0x6d7db8]
[ system:14030] [11] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f13a7d0076d]
[ system:14030] [12] /usr/local/bin/SU2_CFD() [0x459049]
[ system:14030] *** End of error message ***
[ system:14031] [ 0] /lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0) [0x7fa4e9ecccb0]
[ system:14031] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7fa4e9b33425]
[ system:14031] [ 2] /lib/x86_64-linux-gnu/libc.so.6(abort+0x17b) [0x7fa4e9b36b8b]
[ system:14031] [ 3] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x11d) [0x7fa4ea6a369d]
[ system:14031] [ 4] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5846) [0x7fa4ea6a1846]
[ system:14031] [ 5] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5873) [0x7fa4ea6a1873]
[ system:14031] [ 6] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb596e) [0x7fa4ea6a196e]
[ system:14031] [ 7] /usr/local/bin/SU2_CFD() [0x848d97]
[ system:14031] [ 8] /usr/local/bin/SU2_CFD(_ZN12CEulerSolverC1EP9CGeometryP7CConfigt+0x895) [0x64d055]
[ system:14031] [ 9] /usr/local/bin/SU2_CFD(_Z20Solver_PreprocessingPPP7CSolverPP9CGeometryP7CConfigt+0x1e9) [0x45a299]
[ system:14031] [10] /usr/local/bin/SU2_CFD(main+0x638) [0x6d7db8]
[ system:14031] [11] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7fa4e9b1e76d]
[ system:14031] [12] /usr/local/bin/SU2_CFD() [0x459049]
[ system:14031] *** End of error message ***
[ system:14029] [ 3] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x11d) [0x7f749670169d]
[ system:14029] [ 4] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5846) [0x7f74966ff846]
[ system:14029] [ 5] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5873) [0x7f74966ff873]
[ system:14029] [ 6] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb596e) [0x7f74966ff96e]
[ system:14029] [ 7] /usr/local/bin/SU2_CFD() [0x848d97]
[ system:14029] [ 8] /usr/local/bin/SU2_CFD(_ZN12CEulerSolverC1EP9CGeometryP7CConfigt+0x895) [0x64d055]
[ system:14029] [ 9] /usr/local/bin/SU2_CFD(_Z20Solver_PreprocessingPPP7CSolverPP9CGeometryP7CConfigt+0x1e9) [0x45a299]
[ system:14029] [10] /usr/local/bin/SU2_CFD(main+0x638) [0x6d7db8]
[ system:14029] [11] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f7495b7c76d]
[ system:14029] [12] /usr/local/bin/SU2_CFD() [0x459049]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.