Hello,
In fact, i use my Saturn Codes to validate my model of turbulence, and i have successfully completed the INVARIANT implementation of this model, and i have good results.
Now the 2nd part of my job is to calculate the constant in my INVARIANT model by the DYNAMIC method and here i have a problem with the soubroutine "CFILTR.
In fact, i programmed my constant INVARIANT model (called a ficheir CONINVARIANTDYN.F as attached above) as in the DYNAMIC Model excatly as in the file “visdyn.F”, when i compile there are no errors, but my calculations are not running because of soubroutine “CFILTR” (after several tests).
Please can you tell me where is the problem ?
Attached file:
coninvariantdyn.F -------> constant calculation vissmaminvariant.F ------> calculating the eddy viscosity model INVARIANT sortie.lod ------> error
Thank you in advance.
Nazir AL SAYED.
coninvariantdyn.F (27.8 KB)
Hello,
It seems you only posted one of the 3 attachments, and “sortie.lod” and possibly your calculation and/or error logs (listing and error*) are certainly needed to try to understand the problem.
Regards,
hello,
Sorry, the attached files vissmaminvariant.F and sortie.lod
vissmaminvariant.F (20.1 KB)
Attached file: sortie.lod
sortie.log (3.1 KB)
Hello,
Please find attached file above the invariant model and the scheme of
calculations.
Regards.
Nazir Al Sayed.
modele_invariant.pdf (35.5 KB)
Hello,
The “listing” and “error” files may contain stack traces which should be more useful than simply “sortie.log”.
In any case, rank 3 is probably the one that caused the problem (others receiving signal 9 are simply killed because another rank failed), but this does not tell us why it failed (listing and error.0004 should help).
Regards,
Indeed, “listing” and/or “error” files would be more useful to help us debugging your code.
Nonetheless, I quickly had a look at what you wrote and something could be a problem… You define as “static” arrays the arrays W11 to W19. This can be an issue because, depending on the compiler and on the size of the arrays (namely NCELET), you can “segmentation-fault” i.e. have a memory problem. What you should do instead is either use the RDEVEL macro array (see the user documentation for more information) or add temporary arrays management at the beginning of the VISSMAMINVARIANT subroutine (see the usproj.F subroutine for an example concerning gradient calculation).
Hope this helps!
Hello, I tried to do as you say, but it not work, i think the problem is in the ‘CFILTR’ because when i delete all these functions in the ‘CONINVARIANTDYN.F’ it works! Even i tried to used this function (CFILTR) in another program that does not work! Thank you in advance
Nazir Al Sayed
Hi Nazir,
Do your code works on single CPU? Do you try your code in debug mode in order to have a useful traceback (in error files)?
Perhaps it will be more easy to help you with additional informations: all your sources, listing and error files…
Indeed,
Could you run your calculation in serial mode (on 1 processor) and check if it still doesn’t work? To better help you, we would need at least the listing and error* files; and if we still don’t see why it fails, perhaps your complete calculation setup.
You can have more information (in parallel run, as your calculation seems to abort on rank 3) like this: - go to the Prepare batch calculation page - click on the Advanced options button - select to listing_n
for the Redirection for processes from rank 1 to p of parallel job (–logp) item Likewise, you can set the option ARG_CS_OUTPUT to “–logp 1” in the runcase script.
On a side note, I read again the sortie.log file you attached and it seems you have some installation issues: - unable to locate a module file for MPI/MKL/… - program compiled against libxml 207, using 206 I think you ought to fix these error messages, or at least ask you system admin whether they are important or not.
David
Another interesting feature – if your case is not too big ! (ncells < 10000) – would be to run valgrind on 1 time-step. You can tell the code where to find the valgrind executable (if present) in the same Advanced options button I wrote about in previous post. This will tell you whether you have some memory corruption in the code.
Hello
I run my calculations on a single processor, and i reserve 12GB of the memory as follows: # PBS-l select = 1: ncpus = 1: mpiprocs = 1: mem = 12GB: Saturn = 1
Also the size of my mesh is (30,30,11), what bothered is that the “CFILTER” works well for the model Smagorinsky-dynamic !
Please find attached files: listing, erreur, error, sortie, and compil.log
Thank you very much for your help.
Nazir Al Sayed
listing.txt (42.9 KB)
Attached file:erreur
erreur.txt (644 Bytes)
Attached file sortie
sortie.log (9.96 KB)
Hello,
Could you send me a “tar” of your setup (xml file from the graphical interface, all the Fortran sources, lance script) without the mesh of course ![]()
I assume I can launch a test-case on a simple channel flow with your model, can’t I ?
I’ll try to have look [disclaimer: when I have time :-(] and see if I can understand your problem.
David
And here are some comments, after a quick look at your listing file.
It seems you changed the default settings for LES simulations. The default are the following and are strongly advised, but perhaps did you change them on purpose ![]()
- second-order in time for all variables - 10 sweeps on the RHS reconstruction for the pressure, 5 for the velocity
Also, be careful as it seems you are doing a restart simulation from a first simulation with different turbulent models. This isn’t forbidden at all, but be aware that what you are doing could cause weird behavior.
Thank you for your advice and your jokes
…
Nothing bad intended here
sorry about my “jokes”… The fact is LES simulations can be quite sensitive ![]()