Conversation
|
@oleburghardt @talbring This PR fixes the multicore heat-flux-sensitivitiy issues. Tested with the tutorial made by ole. Good job I added a commit that fixes the error-message if you want to have tecplot-binary output but compiled using the --disable-tecio flag. It caused a compile time error ... it is behind a preprocessor statement #ifndef HAVE_TECIO, so this thing is only seen when using the --disable-tecio flag. |
| * \note Aligned dynamic allocation is disabled for compilation on MAC. | ||
| */ | ||
| #define REAL_ALLOCATOR(EXTRA) \ | ||
| #ifndef __APPLE__ |
There was a problem hiding this comment.
This now build on Mac, but I now see issues with the assert() calls on the first access of one of these containers at the start of the solver
There was a problem hiding this comment.
@economon I need more details, I do not have a Mac to go test this myself.
There was a problem hiding this comment.
Do note that asserts are disabled when building with ninja unless buildtype=debug.
You may want to define NDEBUG for your optimized builds in Xcode as the cost of those checks is not negligible.
There was a problem hiding this comment.
Noted. I typically only build in serial debug mode in Xcode and keep a separate build at the command line in release mode w/ MPI, but I can add flags for this.
Btw, I also noticed that the new C2DContainer class has the assignment operator overloaded to perform a deep copy. Is it possible to do a shallow copy, i.e., just set the pointer of an existing initialized container to an existing one without allocating memory?
There was a problem hiding this comment.
With what is implemented it is not possible. If the objective is avoiding the double allocation of gradients, I would suggest using a VectorOfMatrix& that is set to primitive gradient when no allocation is needed, otherwise a different VectorOfMatrix object is resized and the the reference is set to that instead. This way there are no ownership problems (who frees the pointer and so on). References need an initializer but that can be either of the other containers.
If it's for a different purpose I can think of something.
There was a problem hiding this comment.
Aok, let me give that a try (yes it is for the gradients). #790 is looking good after merging everything, will be pushing the cleaned version shortly
There was a problem hiding this comment.
Looks like the choice of initializer does affect the solution, btw. Looks like the reconstruction gradient vector should use the auxiliary vector's initializer for correctness...
| ILU_matrix = new ScalarType [nnz_ilu*nVar*nEqn]; | ||
| for (iVar = 0; iVar < nnz_ilu*nVar*nEqn; iVar++) ILU_matrix[iVar] = 0.0; | ||
|
|
||
| invM = new ScalarType [nPointDomain*nVar*nEqn]; |
| cur_sha_commit = status[1:].split(' ')[0] | ||
| if (cur_sha_commit != sha_commit): | ||
| print('SHA-1 tag stored in index does not match SHA tag stored in this script.') | ||
| sys.exit(1) |
There was a problem hiding this comment.
Has the index been updated to have these new SHA tags for meson and ninja? I am still debugging #790 upon merging #753 #777 and this #798, and now when I try to build with meson, I get this error. Could be that my local copy still has some issues due to improper merge, or could be that this isn't updated yet
There was a problem hiding this comment.
Previously the tags in git and in the init.py script where not matching and the error was not thrown because the indentation was wrong ... try git submodule update or deleting meson, ninja, codi, medi in the externals folder.
There was a problem hiding this comment.
I continued to have this issue, so I simply reset the stored SHA in the index to the one that you have in init.py. Should be all good. Will be adjusted in #790
There was a problem hiding this comment.
It seems like you changed the version of ninja and meson in your branch. Maybe just make sure to use the newest ones if they work without any problem.
|
I tried to solve the problem where sometimes the regression tests stall ... it seems to be a problem of openmpi. Changed it to mpich, but then mpi4py has problems. I reverted it for now. We have to live with that problem for a while unfortunately. |
…Nonmatching Set* and Add* name.
| /* DESCRIPTION: Number of nonlinear deformation iterations (surface deformation increments) */ | ||
| addUnsignedLongOption("DEFORM_NONLINEAR_ITER", GridDef_Nonlinear_Iter, 1); | ||
| /* DESCRIPTION: Number of smoothing iterations for FEA mesh deformation */ | ||
| addUnsignedLongOption("DEFORM_LINEAR_ITER", GridDef_Linear_Iter, 1000); |
There was a problem hiding this comment.
I got rid of this option in favor of the equivalent and more descriptive DEFORM_LINEAR_SOLVER_ITER
…ete adjoint (they are more instructional now). Reducing code lines for variable registration by (default) function arguments.
|
@pcarruscag |
TobiKattmann
left a comment
There was a problem hiding this comment.
Hey all, is this still WIP? One could merge this and reopen another various_fixes branch. I find myself and also e.g. #790 tracking this branch rather than develop as it includes fixes I need (which unnecessarily increases diff size to develop for said PR790).
Tests pass and (in serial) are no additional warnings, so from my standpoint this would be good to go
I will address the 2 little points below
| if (dist == 0.0) break; | ||
| } | ||
|
|
||
There was a problem hiding this comment.
trailing whitespace Edit: deleted
| @@ -1379,13 +1383,13 @@ void CMirror::Set_TransferCoeff(CConfig **config) { | |||
| Buffer_Send_FaceIndex = new unsigned long[MaxFace_Donor]; | |||
| Buffer_Send_FaceNodes = new unsigned long[MaxFaceNodes_Donor]; | |||
| //Buffer_Send_FaceProc = new unsigned long[MaxFaceNodes_Donor]; | |||
There was a problem hiding this comment.
Can this line be erased (and 5 lines below again)? Edit: I erased them
| if (Buffer_Receive_GlobalPoint[Global_Point_Donor] != -1){ | ||
|
|
||
| Coord_j = &Buffer_Receive_Coord[ Global_Point_Donor*nDim]; | ||
|
|
||
| dist = PointsDistance(Coord_i, Coord_j); | ||
|
|
||
| if (dist < mindist) { | ||
| mindist = dist; pProcessor = iProcessor; | ||
| pGlobalPoint = Buffer_Receive_GlobalPoint[Global_Point_Donor]; | ||
| } |
|
Yep from my side we can merge this in |
|
@TobiKattmann Good idea to eventually just open up another one. |
|
And... we broke travis again. |

Proposed Changes
This PR fixes a couple of bugs I found recently. I also adapted the config preprocessing output to reflect the new output and convergence criteria options.
Furthermore it fixes the artifacts mentioned by @TobiKattmann in #774 regarding the Heatflux sensitivity.
Feel free to add any other fixes that you might came across.
Related Work
PR Checklist
Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.