From nek5000-users at lists.mcs.anl.gov Fri Jun 1 03:15:01 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 10:15:01 +0200 (CEST) Subject: [Nek5000-users] Conversion from ICEM to NEK using exo2nek Message-ID: Hi neks, I see my problem clearly now. It is possible to convert the Sidesets using exo2nek by using QUAD9 elements (I mean 2D meshes) but the sides sets are not converting when itzs HEXA27 (3D meshes). So dyou think it is problem with ICEM or exo2nek? I dontget it. So if it is the problem with exonek. Could you please have a look? If it is the poblem with ICEM, is there any alterante solution for me to import 3D mesh in NEK? because my final objective is a 3D mesh. Thank you Sijo -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 1 06:07:24 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 13:07:24 +0200 Subject: [Nek5000-users] Conversion from ICEM to NEK using exo2nek In-Reply-To: References: Message-ID: How about HEX20? -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Friday 1st June 2018 10:15 > To: nek5000-users > Subject: [Nek5000-users] Conversion from ICEM to NEK using exo2nek > > Hi neks, > > ?I see my problem clearly now. It is possible to convert the Sidesets? using exo2nek by using QUAD9 elements (I mean 2D meshes) but the sides sets are not converting when itzs HEXA27 (3D meshes). > So dyou think it is problem with ICEM or exo2nek? > > I dontget it. So if it is the problem with exonek. Could you please have a look? > > If it is the poblem with ICEM, is there any alterante solution for me to import 3D mesh in NEK? because my final objective is a 3D mesh. > > Thank you > Sijo > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Fri Jun 1 08:13:45 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 15:13:45 +0200 (CEST) Subject: [Nek5000-users] Conversion from ICEM to NEK using exo2nek In-Reply-To: References: Message-ID: Could you please tell me how to convert from HEX 8 to 20? When I do it converts into 27. What i do is using mesh converter options from ICEM, I put a midpoint in between the nodes. Thank you ----- Mail original ----- De: "nek5000-users" ?: "nek5000-users" Envoy?: Vendredi 1 Juin 2018 13:07:24 Objet: Re: [Nek5000-users] Conversion from ICEM to NEK using exo2nek How about HEX20? -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Friday 1st June 2018 10:15 > To: nek5000-users > Subject: [Nek5000-users] Conversion from ICEM to NEK using exo2nek > > Hi neks, > > ?I see my problem clearly now. It is possible to convert the Sidesets? using exo2nek by using QUAD9 elements (I mean 2D meshes) but the sides sets are not converting when itzs HEXA27 (3D meshes). > So dyou think it is problem with ICEM or exo2nek? > > I dontget it. So if it is the problem with exonek. Could you please have a look? > > If it is the poblem with ICEM, is there any alterante solution for me to import 3D mesh in NEK? because my final objective is a 3D mesh. > > Thank you > Sijo > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Fri Jun 1 10:20:42 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 17:20:42 +0200 (CEST) Subject: [Nek5000-users] why I can`t change .rea with 2.1M elements to .re2 In-Reply-To: References: Message-ID: HI, goto reatore2.f file and change this line if(nel.ge.lelt) then set lelt is greater than 2.1M De: "nek5000-users" ?: "nek5000-users" Envoy?: Vendredi 1 Juin 2018 03:53:51 Objet: [Nek5000-users] why I can`t change .rea with 2.1M elements to .re2 ? [ https://drive.google.com/file/d/1shdsB_kjr-VXaJsu83JZ1emIB_EUZxCT/view?usp=drive_web | ?pipe.tar.gz ] hi,manager.I have a problam that I want to make a example with 2.1M elements but I can`t change .rea to .re2, and reatore2 will give me wrong answer as below: ------------------------------------------------------------------------------------------------------- Start converting ... read: **MESH DATA** 6 lines are X,Y,Z;X,Y,Z. Columns corners 1-4;5-8 Abort: number of elements too large 2100000 change MAXNEL and recompile ------------------------------------------------------------------------------------------------------- How to solve this problem? if I can`t change reatore2,when I run the example also have a wrong problem: ------------------------------------------------------------------------------------------------------- EXIT:Problem size requires .re2 ------------------------------------------------------------------------------------------------------- I have sent you my file..~!! _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 1 11:11:30 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 16:11:30 +0000 Subject: [Nek5000-users] why I can`t change .rea with 2.1M elements to .re2 In-Reply-To: References: , Message-ID: Change MAXNEL in /tools/maketools then rm reatore2/*.o maketools reatore2 Do you have periodic boundary conditions in your ascii .rea file? If so, I would be careful because it's not clear that the Nek Rea file will always properly represent the element-to-element connectivity for periodic bcs in ascii once nel > 100,000... Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Friday, June 1, 2018 10:20:42 AM To: nek5000-users Subject: Re: [Nek5000-users] why I can`t change .rea with 2.1M elements to .re2 HI, goto reatore2.f file and change this line if(nel.ge.lelt) then set lelt is greater than 2.1M ________________________________ De: "nek5000-users" ?: "nek5000-users" Envoy?: Vendredi 1 Juin 2018 03:53:51 Objet: [Nek5000-users] why I can`t change .rea with 2.1M elements to .re2 ? [https://ssl.gstatic.com/docs/doclist/images/icon_10_generic_list.png] pipe.tar.gz[X] hi,manager.I have a problam that I want to make a example with 2.1M elements but I can`t change .rea to .re2, and reatore2 will give me wrong answer as below: ------------------------------------------------------------------------------------------------------- Start converting ... read: **MESH DATA** 6 lines are X,Y,Z;X,Y,Z. Columns corners 1-4;5-8 Abort: number of elements too large 2100000 change MAXNEL and recompile ------------------------------------------------------------------------------------------------------- How to solve this problem? if I can`t change reatore2,when I run the example also have a wrong problem: ------------------------------------------------------------------------------------------------------- EXIT:Problem size requires .re2 ------------------------------------------------------------------------------------------------------- I have sent you my file..~!! _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 1 13:05:59 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 18:05:59 +0000 Subject: [Nek5000-users] Mesh with two blocks Message-ID: Hi, I would like to get some insights on how Nek5000 deals with meshes that contains more than one block. I generated a 2-D mesh with Cubit and was able to convert it to a re2 format with exo2nek but I do not know how to differentiate each block in the usr file to set boundary conditions for instance. I went through the examples and did not find anything relevant to my question. Does anybody have experience with multi-block mesh? What is the proper approach when dealing with multi-block meshes in Nek5000? Thanks, Marco From nek5000-users at lists.mcs.anl.gov Fri Jun 1 13:07:46 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 18:07:46 +0000 Subject: [Nek5000-users] Mesh with two blocks In-Reply-To: References: Message-ID: Marco, I typically set BCs based on their geometric position, because that is going to be independent of the number of elements, of the provenance of the mesh generation, etc. hth, Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Friday, June 1, 2018 1:05:59 PM To: nek5000-users at lists.mcs.anl.gov Subject: [Nek5000-users] Mesh with two blocks Hi, I would like to get some insights on how Nek5000 deals with meshes that contains more than one block. I generated a 2-D mesh with Cubit and was able to convert it to a re2 format with exo2nek but I do not know how to differentiate each block in the usr file to set boundary conditions for instance. I went through the examples and did not find anything relevant to my question. Does anybody have experience with multi-block mesh? What is the proper approach when dealing with multi-block meshes in Nek5000? Thanks, Marco _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 1 13:35:03 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 20:35:03 +0200 Subject: [Nek5000-users] Mesh with two blocks In-Reply-To: References: Message-ID: Why don't you use the sidesets to set your BC? -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Friday 1st June 2018 20:06 > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] Mesh with two blocks > > Hi, > > I would like to get some insights on how Nek5000 deals with meshes that contains more than one block. I generated a 2-D mesh with Cubit and was able to convert it to a re2 format with exo2nek but I do not know how to differentiate each block in the usr file to set boundary conditions for instance. > > I went through the examples and did not find anything relevant to my question. Does anybody have experience with multi-block mesh? What is the proper approach when dealing with multi-block meshes in Nek5000? > > Thanks, > > Marco > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > From nek5000-users at lists.mcs.anl.gov Fri Jun 1 13:53:03 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 18:53:03 +0000 Subject: [Nek5000-users] Mesh with two blocks In-Reply-To: References: Message-ID: Thank you for your replies. I am actually interested in generating a mesh for a conjugate gradient solve. In the conj_ht example, the solid block is differentiated from the liquid block by testing the element index, i.e., ieg > nelgt. Assuming that I generate a mesh with two blocks that represent the fluid and solid regions, respectively, how do I access these blocks in the usr file? Marco > On Jun 1, 2018, at 2:35 PM, nek5000-users at lists.mcs.anl.gov wrote: > > Why don't you use the sidesets to set your BC? > > -----Original message----- >> From:nek5000-users at lists.mcs.anl.gov >> Sent: Friday 1st June 2018 20:06 >> To: nek5000-users at lists.mcs.anl.gov >> Subject: [Nek5000-users] Mesh with two blocks >> >> Hi, >> >> I would like to get some insights on how Nek5000 deals with meshes that contains more than one block. I generated a 2-D mesh with Cubit and was able to convert it to a re2 format with exo2nek but I do not know how to differentiate each block in the usr file to set boundary conditions for instance. >> >> I went through the examples and did not find anything relevant to my question. Does anybody have experience with multi-block mesh? What is the proper approach when dealing with multi-block meshes in Nek5000? >> >> Thanks, >> >> Marco >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >> > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > From nek5000-users at lists.mcs.anl.gov Fri Jun 1 14:04:07 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 19:04:07 +0000 Subject: [Nek5000-users] Mesh with two blocks In-Reply-To: References: , Message-ID: Depends on which routine. Suppose userbc: if (ifield.eq.1) then ! fluid field else ! thermal field endif Or... if in userchk: integer e do e=1,nelt if (e.le.nelv) then ! fluid + temperature else ! solid==temperature only endif enddo Local elements are sorted: 1...nelv is fluid 1...nelt is thermal nelv is <= nelt Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Friday, June 1, 2018 1:53:03 PM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Mesh with two blocks Thank you for your replies. I am actually interested in generating a mesh for a conjugate gradient solve. In the conj_ht example, the solid block is differentiated from the liquid block by testing the element index, i.e., ieg > nelgt. Assuming that I generate a mesh with two blocks that represent the fluid and solid regions, respectively, how do I access these blocks in the usr file? Marco > On Jun 1, 2018, at 2:35 PM, nek5000-users at lists.mcs.anl.gov wrote: > > Why don't you use the sidesets to set your BC? > > -----Original message----- >> From:nek5000-users at lists.mcs.anl.gov >> Sent: Friday 1st June 2018 20:06 >> To: nek5000-users at lists.mcs.anl.gov >> Subject: [Nek5000-users] Mesh with two blocks >> >> Hi, >> >> I would like to get some insights on how Nek5000 deals with meshes that contains more than one block. I generated a 2-D mesh with Cubit and was able to convert it to a re2 format with exo2nek but I do not know how to differentiate each block in the usr file to set boundary conditions for instance. >> >> I went through the examples and did not find anything relevant to my question. Does anybody have experience with multi-block mesh? What is the proper approach when dealing with multi-block meshes in Nek5000? >> >> Thanks, >> >> Marco >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >> > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 1 14:10:04 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 19:10:04 +0000 Subject: [Nek5000-users] Mesh with two blocks In-Reply-To: References: Message-ID: Paul, thank you again for your reply. When I generated a mesh in Cubit that has two blocks and then run it with Nek5000 I get nelv = nelt. How does Nek5000 know that block 1 is the fluid mesh and block 2 is the solid mesh? I think I missing a step in the setup of my problem. I wonder how the mesh used in conj_ht was generated? Thanks, Marco On Jun 1, 2018, at 3:04 PM, nek5000-users at lists.mcs.anl.gov wrote: Depends on which routine. Suppose userbc: if (ifield.eq.1) then ! fluid field else ! thermal field endif Or... if in userchk: integer e do e=1,nelt if (e.le.nelv) then ! fluid + temperature else ! solid==temperature only endif enddo Local elements are sorted: 1...nelv is fluid 1...nelt is thermal nelv is <= nelt Paul ________________________________ From: Nek5000-users > on behalf of nek5000-users at lists.mcs.anl.gov > Sent: Friday, June 1, 2018 1:53:03 PM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Mesh with two blocks Thank you for your replies. I am actually interested in generating a mesh for a conjugate gradient solve. In the conj_ht example, the solid block is differentiated from the liquid block by testing the element index, i.e., ieg > nelgt. Assuming that I generate a mesh with two blocks that represent the fluid and solid regions, respectively, how do I access these blocks in the usr file? Marco > On Jun 1, 2018, at 2:35 PM, nek5000-users at lists.mcs.anl.gov wrote: > > Why don't you use the sidesets to set your BC? > > -----Original message----- >> From:nek5000-users at lists.mcs.anl.gov > >> Sent: Friday 1st June 2018 20:06 >> To: nek5000-users at lists.mcs.anl.gov >> Subject: [Nek5000-users] Mesh with two blocks >> >> Hi, >> >> I would like to get some insights on how Nek5000 deals with meshes that contains more than one block. I generated a 2-D mesh with Cubit and was able to convert it to a re2 format with exo2nek but I do not know how to differentiate each block in the usr file to set boundary conditions for instance. >> >> I went through the examples and did not find anything relevant to my question. Does anybody have experience with multi-block mesh? What is the proper approach when dealing with multi-block meshes in Nek5000? >> >> Thanks, >> >> Marco >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >> > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 1 14:34:14 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 19:34:14 +0000 Subject: [Nek5000-users] Mesh with two blocks In-Reply-To: References: , Message-ID: Hi Marco, The way I normally do this is as follows: 1. build a valid fluid mesh ( "f.rea" ) 2. build a valid solid mesh ("s.rea") 3. run pretex and pick option "3" 4. Enter session name (say, "c" for "combined") 5. Enter fluid session name, f 6. Enter solid session name, s Hopefully, it produces a valid "c.rea" file ready for conjugate heat transfer. Let me know if that doesn't work for you. Best, Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Friday, June 1, 2018 2:10:04 PM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Mesh with two blocks Paul, thank you again for your reply. When I generated a mesh in Cubit that has two blocks and then run it with Nek5000 I get nelv = nelt. How does Nek5000 know that block 1 is the fluid mesh and block 2 is the solid mesh? I think I missing a step in the setup of my problem. I wonder how the mesh used in conj_ht was generated? Thanks, Marco On Jun 1, 2018, at 3:04 PM, nek5000-users at lists.mcs.anl.gov wrote: Depends on which routine. Suppose userbc: if (ifield.eq.1) then ! fluid field else ! thermal field endif Or... if in userchk: integer e do e=1,nelt if (e.le.nelv) then ! fluid + temperature else ! solid==temperature only endif enddo Local elements are sorted: 1...nelv is fluid 1...nelt is thermal nelv is <= nelt Paul ________________________________ From: Nek5000-users > on behalf of nek5000-users at lists.mcs.anl.gov > Sent: Friday, June 1, 2018 1:53:03 PM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Mesh with two blocks Thank you for your replies. I am actually interested in generating a mesh for a conjugate gradient solve. In the conj_ht example, the solid block is differentiated from the liquid block by testing the element index, i.e., ieg > nelgt. Assuming that I generate a mesh with two blocks that represent the fluid and solid regions, respectively, how do I access these blocks in the usr file? Marco > On Jun 1, 2018, at 2:35 PM, nek5000-users at lists.mcs.anl.gov wrote: > > Why don't you use the sidesets to set your BC? > > -----Original message----- >> From:nek5000-users at lists.mcs.anl.gov > >> Sent: Friday 1st June 2018 20:06 >> To: nek5000-users at lists.mcs.anl.gov >> Subject: [Nek5000-users] Mesh with two blocks >> >> Hi, >> >> I would like to get some insights on how Nek5000 deals with meshes that contains more than one block. I generated a 2-D mesh with Cubit and was able to convert it to a re2 format with exo2nek but I do not know how to differentiate each block in the usr file to set boundary conditions for instance. >> >> I went through the examples and did not find anything relevant to my question. Does anybody have experience with multi-block mesh? What is the proper approach when dealing with multi-block meshes in Nek5000? >> >> Thanks, >> >> Marco >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >> > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 1 14:38:18 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 1 Jun 2018 19:38:18 +0000 Subject: [Nek5000-users] Mesh with two blocks In-Reply-To: References: Message-ID: Ok, thank you for your help. I will give it a try. Marco On Jun 1, 2018, at 3:34 PM, nek5000-users at lists.mcs.anl.gov wrote: Hi Marco, The way I normally do this is as follows: 1. build a valid fluid mesh ( "f.rea" ) 2. build a valid solid mesh ("s.rea") 3. run pretex and pick option "3" 4. Enter session name (say, "c" for "combined") 5. Enter fluid session name, f 6. Enter solid session name, s Hopefully, it produces a valid "c.rea" file ready for conjugate heat transfer. Let me know if that doesn't work for you. Best, Paul ________________________________ From: Nek5000-users > on behalf of nek5000-users at lists.mcs.anl.gov > Sent: Friday, June 1, 2018 2:10:04 PM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Mesh with two blocks Paul, thank you again for your reply. When I generated a mesh in Cubit that has two blocks and then run it with Nek5000 I get nelv = nelt. How does Nek5000 know that block 1 is the fluid mesh and block 2 is the solid mesh? I think I missing a step in the setup of my problem. I wonder how the mesh used in conj_ht was generated? Thanks, Marco On Jun 1, 2018, at 3:04 PM, nek5000-users at lists.mcs.anl.gov wrote: Depends on which routine. Suppose userbc: if (ifield.eq.1) then ! fluid field else ! thermal field endif Or... if in userchk: integer e do e=1,nelt if (e.le.nelv) then ! fluid + temperature else ! solid==temperature only endif enddo Local elements are sorted: 1...nelv is fluid 1...nelt is thermal nelv is <= nelt Paul ________________________________ From: Nek5000-users > on behalf of nek5000-users at lists.mcs.anl.gov > Sent: Friday, June 1, 2018 1:53:03 PM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Mesh with two blocks Thank you for your replies. I am actually interested in generating a mesh for a conjugate gradient solve. In the conj_ht example, the solid block is differentiated from the liquid block by testing the element index, i.e., ieg > nelgt. Assuming that I generate a mesh with two blocks that represent the fluid and solid regions, respectively, how do I access these blocks in the usr file? Marco > On Jun 1, 2018, at 2:35 PM, nek5000-users at lists.mcs.anl.gov wrote: > > Why don't you use the sidesets to set your BC? > > -----Original message----- >> From:nek5000-users at lists.mcs.anl.gov > >> Sent: Friday 1st June 2018 20:06 >> To: nek5000-users at lists.mcs.anl.gov >> Subject: [Nek5000-users] Mesh with two blocks >> >> Hi, >> >> I would like to get some insights on how Nek5000 deals with meshes that contains more than one block. I generated a 2-D mesh with Cubit and was able to convert it to a re2 format with exo2nek but I do not know how to differentiate each block in the usr file to set boundary conditions for instance. >> >> I went through the examples and did not find anything relevant to my question. Does anybody have experience with multi-block mesh? What is the proper approach when dealing with multi-block meshes in Nek5000? >> >> Thanks, >> >> Marco >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >> > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Sun Jun 3 05:24:32 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Sun, 3 Jun 2018 15:54:32 +0530 Subject: [Nek5000-users] Data probe at wake of a cylinder Message-ID: Hi Neks I am running a 3D simulation for a flow over a cylinder. I want to probe data at several points in the wake of the cylinder(ex. I want to probe data at point say (1,1,2)). I couldn't find proper details to probe the data. Kindly help me out. Regards Alok -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Sun Jun 3 13:36:12 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Sun, 3 Jun 2018 20:36:12 +0200 Subject: [Nek5000-users] Data probe at wake of a cylinder In-Reply-To: References: Message-ID: See here: http://nek5000.github.io/NekDoc/case_files.html#history-points -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Sunday 3rd June 2018 18:05 > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] Data probe at wake of a cylinder > >
Hi Neks > > ??? I am running a 3D simulation for a flow over a cylinder. I want to probe data at several points in the wake of the cylinder(ex. I want to probe data at point say (1,1,2)). > > I couldnt find proper details to probe the data. Kindly help me out. > > > Regards > Alok > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Sun Jun 3 13:45:20 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Sun, 3 Jun 2018 20:45:20 +0200 Subject: [Nek5000-users] Data probe at wake of a cylinder In-Reply-To: References: Message-ID: a short description on how the method actually works is given here: https://www.kth.se/social/files/5b14371756be5b899ec4af73/noorani_peplinski_schlatter_2015.pdf Best regards, Philipp On 2018-06-03 20:36, nek5000-users at lists.mcs.anl.gov wrote: > See here: http://nek5000.github.io/NekDoc/case_files.html#history-points > > -----Original message----- >> From:nek5000-users at lists.mcs.anl.gov >> Sent: Sunday 3rd June 2018 18:05 >> To: nek5000-users at lists.mcs.anl.gov >> Subject: [Nek5000-users] Data probe at wake of a cylinder >> >>
Hi Neks >> >> ??? I am running a 3D simulation for a flow over a cylinder. I want to probe data at several points in the wake of the cylinder(ex. I want to probe data at point say (1,1,2)). >> >> I couldnt find proper details to probe the data. Kindly help me out. >> >> >> Regards >> Alok >> >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > From nek5000-users at lists.mcs.anl.gov Sun Jun 3 13:52:02 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Sun, 3 Jun 2018 20:52:02 +0200 Subject: [Nek5000-users] Data probe at wake of a cylinder In-Reply-To: References: Message-ID: A good candidate for NekBazaar ;) -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Sunday 3rd June 2018 20:45 > To: nek5000-users at lists.mcs.anl.gov > Subject: Re: [Nek5000-users] Data probe at wake of a cylinder > > a short description on how the method actually works is given here: > https://www.kth.se/social/files/5b14371756be5b899ec4af73/noorani_peplinski_schlatter_2015.pdf > > Best regards, > Philipp > > On 2018-06-03 20:36, nek5000-users at lists.mcs.anl.gov wrote: > > See here: http://nek5000.github.io/NekDoc/case_files.html#history-points > > > > -----Original message----- > >> From:nek5000-users at lists.mcs.anl.gov > >> Sent: Sunday 3rd June 2018 18:05 > >> To: nek5000-users at lists.mcs.anl.gov > >> Subject: [Nek5000-users] Data probe at wake of a cylinder > >> > >>
Hi Neks > >> > >> ??? I am running a 3D simulation for a flow over a cylinder. I want to probe data at several points in the wake of the cylinder(ex. I want to probe data at point say (1,1,2)). > >> > >> I couldnt find proper details to probe the data. Kindly help me out. > >> > >> > >> Regards > >> Alok > >> > >> _______________________________________________ > >> Nek5000-users mailing list > >> Nek5000-users at lists.mcs.anl.gov > >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > From nek5000-users at lists.mcs.anl.gov Sun Jun 3 15:33:34 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Sun, 3 Jun 2018 20:33:34 +0000 Subject: [Nek5000-users] Data probe at wake of a cylinder In-Reply-To: References: , Message-ID: Dear Alok, In userchk: if (mod(ISTEP,10).eq.0) call hpts() Then provide a file: mycase.his having: n x y z x y z ... x y z <-- nth point of interest. After you run the case your history information will be appended to your .his file, along with the timestamp. Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Sunday, June 3, 2018 1:52:02 PM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Data probe at wake of a cylinder A good candidate for NekBazaar ;) -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Sunday 3rd June 2018 20:45 > To: nek5000-users at lists.mcs.anl.gov > Subject: Re: [Nek5000-users] Data probe at wake of a cylinder > > a short description on how the method actually works is given here: > https://www.kth.se/social/files/5b14371756be5b899ec4af73/noorani_peplinski_schlatter_2015.pdf > > Best regards, > Philipp > > On 2018-06-03 20:36, nek5000-users at lists.mcs.anl.gov wrote: > > See here: http://nek5000.github.io/NekDoc/case_files.html#history-points > > > > -----Original message----- > >> From:nek5000-users at lists.mcs.anl.gov > >> Sent: Sunday 3rd June 2018 18:05 > >> To: nek5000-users at lists.mcs.anl.gov > >> Subject: [Nek5000-users] Data probe at wake of a cylinder > >> > >>
Hi Neks > >> > >> I am running a 3D simulation for a flow over a cylinder. I want to probe data at several points in the wake of the cylinder(ex. I want to probe data at point say (1,1,2)). > >> > >> I couldnt find proper details to probe the data. Kindly help me out. > >> > >> > >> Regards > >> Alok > >> > >> _______________________________________________ > >> Nek5000-users mailing list > >> Nek5000-users at lists.mcs.anl.gov > >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Sun Jun 3 23:11:29 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 4 Jun 2018 00:11:29 -0400 Subject: [Nek5000-users] Using Cartesian grid lookup table in Nekton In-Reply-To: References: Message-ID: Hey Paul, Thanks for the reply. I have never really used the mpi architecture of Nek5000. I am thinking this should be a separate subroutine on the .usr file where I have to copy it onto each mpi rank? My finite difference grid is not that big. So the interpolation into SEM points should be easy. I would like to know how to copy it onto each MPI rank. Thanks, Saikat Saikat Mukherjee, PhD Student, Paul Research Group - http://www.me.vt.edu/mpaul/ Engineering Science and Mechanics, Virginia Tech. On Thu, May 31, 2018 at 7:58 AM, wrote: > > Hi Saikat, > > > How large is your finite-difference look up table? > > > (1 million points? 1 billion? 1000?) > > > If it's not too large you can just copy it onto each mpi rank > > and then call your own serial interpolation routine for each > > SEM point, x,y,z, and store the results into an array in a > > common block that you can then reference in users > > > Presumably you'd have to do this interpolation only one > > time and then de-reference the values from the common > > block on each time step with fairly low overhead. > > > > Paul > > > ------------------------------ > *From:* Nek5000-users on behalf > of nek5000-users at lists.mcs.anl.gov > *Sent:* Wednesday, May 30, 2018 2:42:14 PM > *To:* nek5000-users at lists.mcs.anl.gov > > *Subject:* Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton > > There is nothing spectral element specific here. You could do e.g. a > trilinear interpolation but that's something you have to code yourself. > > -----Original message----- > > From:nek5000-users at lists.mcs.anl.gov > > Sent: Wednesday 30th May 2018 21:26 > > To: nek5000-users > > Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton > > > > The question is how to read in a discrete data set defined in a finite > difference grid in ffx or forcing in the .usr file. It seems like there > will be some sort of interpolation to the spectral element grid. So yes, > that is my question. > > > > Thank you, > > Saikat > >
Saikat Mukherjee, > > PhD Student, > > Paul Research Group - http://www.me.vt.edu/mpaul/ < > http://www.me.vt.edu/mpaul/> > > Engineering Science and Mechanics, > > Virginia Tech. > > > > On Wed, May 30, 2018 at 2:48 PM, mailto:nek5000-users at lists.mcs.anl.gov >> > wrote: > > What?s your question? How to do the interpolation in your function f? > > > > On 30 May 2018, at 20:17, "nek5000-users at lists.mcs.anl.gov < > mailto:nek5000-users at lists.mcs.anl.gov >" > >> wrote: > > > > Hi, > > > > Thanks for the reply. My problem is f is given as a discrete data set > described in finite difference grid. I want to interpolate this to ffx like > you said in my .usr file. Would like to know how to proceed. > > > > Thanks, > > Saikat > >
Saikat Mukherjee, > > PhD Student, > > Paul Research Group - http://www.me.vt.edu/mpaul/ < > http://www.me.vt.edu/mpaul/> > > Engineering Science and Mechanics, > > Virginia Tech. > > > > On Wed, May 30, 2018 at 1:36 PM, mailto:nek5000-users at lists.mcs.anl.gov >> > wrote: > > Lets consider > > > > ffx = f(x,y,z) > > > > here f is an user function (something you have to provide) which get > evaluated at x,y,z (your grid points). Interpolation is required if f is > given by a discrete data set. > > > > hth > > > > > > -----Original message----- > > > From:nek5000-users at lists.mcs.anl.gov lists.mcs.anl.gov > < > nek5000-users at lists.mcs.anl.gov >> > > > Sent: Wednesday 30th May 2018 19:19 > > > To: nek5000-users mailto:nek5000-users at lists.mcs.anl.gov >> > > > Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in > Nekton > > > > > > Hi, > > > > > > Thanks for the reply. The look up table is in a finite difference > grid. Are you saying I can still feed it to the .usr file and it should be > fine? > > > > > > Thanks, > > > Saikat > > >
Saikat Mukherjee, > > > PhD Student, > > > Paul Research Group - http://www.me.vt.edu/mpaul/ < > http://www.me.vt.edu/mpaul/> http://www.me.vt.edu/mpaul/>> > > > Engineering Science and Mechanics, > > > Virginia Tech. > > > > > > On Sat, May 26, 2018 at 10:54 PM, mailto:nek5000-users at lists.mcs.anl.gov > > mcs.anl.gov >>> wrote: > > > Hi Saikat, > > > > > > You can always do the reading from the look up table from .usr file, > at once then feed the data to your ffx ffy and ffz through a common block. > > > > > > On Thu, May 24, 2018 at 10:55 PM, mailto:nek5000-users at lists.mcs.anl.gov > > mcs.anl.gov >>> wrote: > > > Hey all, > > > > > > Just following up on the query. Would appreciate any input. > > > > > > Thanks, > > > Saikat > > >
Saikat Mukherjee, > > > PhD Student, > > > Paul Research Group - http://www.me.vt.edu/mpaul/ < > http://www.me.vt.edu/mpaul/> http://www.me.vt.edu/mpaul/>> > > > Engineering Science and Mechanics, > > > Virginia Tech. > > > > > > On Tue, May 22, 2018 at 4:47 PM, Saikat Mukherjee mailto:msaikat6 at vt.edu > mailto:msaikat6 at vt.edu >>> wrote: > > > Hey Neks, > > > > > > I have a forcing function which is in the form of a look up table in > X-Y cartesian grid. I would like to use this forcing function in the 2-D > fluid momentum equation that Nekton solves. Is there a way to do this in > the .usr file or elsewhere? > > > > > > Thanks, > > > Saikat > > > > > > > > >
Saikat Mukherjee, > > > PhD Student, > > > Paul Research Group - http://www.me.vt.edu/mpaul/ < > http://www.me.vt.edu/mpaul/> http://www.me.vt.edu/mpaul/>> > > > Engineering Science and Mechanics, > > > Virginia Tech. > > > > > > > > > _______________________________________________ > > > Nek5000-users mailing list > > > Nek5000-users at lists.mcs.anl.gov mcs.anl.gov > Nek5000-users at lists.mcs.anl.gov >> > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users>> > > > > > > > > > > > > _______________________________________________ > > > Nek5000-users mailing list > > > Nek5000-users at lists.mcs.anl.gov mcs.anl.gov > Nek5000-users at lists.mcs.anl.gov >> > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users>> > > > > > > > > > _______________________________________________ > > > Nek5000-users mailing list > > > Nek5000-users at lists.mcs.anl.gov mcs.anl.gov > > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> > > > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 4 06:32:18 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 4 Jun 2018 11:32:18 +0000 Subject: [Nek5000-users] Using Cartesian grid lookup table in Nekton In-Reply-To: References: , Message-ID: Hi Saikat, If it's not too big for loading onto each rank, I would do the following, which is not very parallel, but is quite effective up to modest array sizes: subroutine usrdat2 include 'SIZE' include 'TOTAL' parameter (my_array_size=10000) real my_array(my_array_size), work(my_array_size) n = my_array_size call rzero(my_array,n) call rzero(work. ,n) if (nid.eq.0) then open (unit=49,file='myfile') read(49,*) (my_array(k),k=1,n) close(49) endif call gop(my_array,work,'+ ',n) ! Sum over all processors return end I've not tested this code... just wrote it here but it should work as is. Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Sunday, June 3, 2018 11:11:29 PM To: nek5000-users Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton Hey Paul, Thanks for the reply. I have never really used the mpi architecture of Nek5000. I am thinking this should be a separate subroutine on the .usr file where I have to copy it onto each mpi rank? My finite difference grid is not that big. So the interpolation into SEM points should be easy. I would like to know how to copy it onto each MPI rank. Thanks, Saikat Saikat Mukherjee, PhD Student, Paul Research Group - http://www.me.vt.edu/mpaul/ Engineering Science and Mechanics, Virginia Tech. On Thu, May 31, 2018 at 7:58 AM, > wrote: Hi Saikat, How large is your finite-difference look up table? (1 million points? 1 billion? 1000?) If it's not too large you can just copy it onto each mpi rank and then call your own serial interpolation routine for each SEM point, x,y,z, and store the results into an array in a common block that you can then reference in users Presumably you'd have to do this interpolation only one time and then de-reference the values from the common block on each time step with fairly low overhead. Paul ________________________________ From: Nek5000-users > on behalf of nek5000-users at lists.mcs.anl.gov > Sent: Wednesday, May 30, 2018 2:42:14 PM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton There is nothing spectral element specific here. You could do e.g. a trilinear interpolation but that's something you have to code yourself. -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > > Sent: Wednesday 30th May 2018 21:26 > To: nek5000-users > > Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton > > The question is how to read in a discrete data set defined in a finite difference grid in ffx or forcing in the .usr file. It seems like there will be some sort of interpolation to the spectral element grid. So yes, that is my question. > > Thank you, > Saikat >
Saikat Mukherjee, > PhD Student, > Paul Research Group - http://www.me.vt.edu/mpaul/ > Engineering Science and Mechanics, > Virginia Tech. > > On Wed, May 30, 2018 at 2:48 PM, > wrote: > What?s your question? How to do the interpolation in your function f? > > On 30 May 2018, at 20:17, "nek5000-users at lists.mcs.anl.gov " > wrote: > > Hi, > > Thanks for the reply. My problem is f is given as a discrete data set described in finite difference grid. I want to interpolate this to ffx like you said in my .usr file. Would like to know how to proceed. > > Thanks, > Saikat >
Saikat Mukherjee, > PhD Student, > Paul Research Group - http://www.me.vt.edu/mpaul/ > Engineering Science and Mechanics, > Virginia Tech. > > On Wed, May 30, 2018 at 1:36 PM, > wrote: > Lets consider > > ffx = f(x,y,z) > > here f is an user function (something you have to provide) which get evaluated at x,y,z (your grid points). Interpolation is required if f is given by a discrete data set. > > hth > > > -----Original message----- > > From:nek5000-users at lists.mcs.anl.gov > > > Sent: Wednesday 30th May 2018 19:19 > > To: nek5000-users > > > Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton > > > > Hi, > > > > Thanks for the reply. The look up table is in a finite difference grid. Are you saying I can still feed it to the .usr file and it should be fine? > > > > Thanks, > > Saikat > >
Saikat Mukherjee, > > PhD Student, > > Paul Research Group - http://www.me.vt.edu/mpaul/ > > > Engineering Science and Mechanics, > > Virginia Tech. > > > > On Sat, May 26, 2018 at 10:54 PM, >> wrote: > > Hi Saikat, > > > > You can always do the reading from the look up table from .usr file, at once then feed the data to your ffx ffy and ffz through a common block. > > > > On Thu, May 24, 2018 at 10:55 PM, >> wrote: > > Hey all, > > > > Just following up on the query. Would appreciate any input. > > > > Thanks, > > Saikat > >
Saikat Mukherjee, > > PhD Student, > > Paul Research Group - http://www.me.vt.edu/mpaul/ > > > Engineering Science and Mechanics, > > Virginia Tech. > > > > On Tue, May 22, 2018 at 4:47 PM, Saikat Mukherjee >> wrote: > > Hey Neks, > > > > I have a forcing function which is in the form of a look up table in X-Y cartesian grid. I would like to use this forcing function in the 2-D fluid momentum equation that Nekton solves. Is there a way to do this in the .usr file or elsewhere? > > > > Thanks, > > Saikat > > > > > >
Saikat Mukherjee, > > PhD Student, > > Paul Research Group - http://www.me.vt.edu/mpaul/ > > > Engineering Science and Mechanics, > > Virginia Tech. > > > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > > > > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 4 09:24:20 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 4 Jun 2018 16:24:20 +0200 Subject: [Nek5000-users] intp_rstd; coarse to fine and back Message-ID: Hello, To know more about the subroutines used for dealiasing, I perform a simple exercise. I take a simple sine function and project it onto the fine mesh and back to the coarse using intp_rstd. When I compare the values of the processed array with the original array, it is scaled by a factor of 1.25204, ie, I get a function like 1.25204*sin(2*x) Could you please tell me which factor am I missing? Which jacobian has to be multiplied? Attached is the usr file and below are the operations I perform in short. sinax(i,1,1,1) = sin(2.*x) call intp_rstd(uf1,u1,nx1,nxd,if3d,0) ! 0 --> forward nxyzd = lxd*lyd*lzd do i=1,nxyzd tr1 = uf1(i) wf(i) = tr1*rx(i,1,e)+tr1*rx(i,2,e)+tr1*rx(i,3,e) enddo call intp_rstd(w1,wf,nx1,nxd,if3d,1) ! 1 --> back to coarse nxyz = lx1*ly1*lz1 ! do i=1,nxyz ! to physical space. bi = 1./((bm1(i,1,1,e))) ! w1(i) = bi*w1(i) jacm=jacmi(i,e) ! I dont know whether to use jacmi(i,e) or not enddo Thank you in advance. Sandeep -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: conj_ht.usr Type: application/octet-stream Size: 5905 bytes Desc: not available URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 4 10:44:10 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 4 Jun 2018 11:44:10 -0400 Subject: [Nek5000-users] Using Cartesian grid lookup table in Nekton In-Reply-To: References: Message-ID: Thanks Paul, I will try this. Regarding the interpolation, do we have a subroutine that interpolates from uniform grid to GLL grid in nek5000? Thanks, Saikat Saikat Mukherjee, PhD Student, Paul Research Group - http://www.me.vt.edu/mpaul/ Engineering Science and Mechanics, Virginia Tech. On Mon, Jun 4, 2018 at 7:32 AM, wrote: > > Hi Saikat, > > > If it's not too big for loading onto each rank, I would do the following, > which is not very parallel, but is quite effective up to modest array sizes: > > > > subroutine usrdat2 > > include 'SIZE' > > include 'TOTAL' > > > parameter (my_array_size=10000) > > > real my_array(my_array_size), work(my_array_size) > > > > n = my_array_size > > > call rzero(my_array,n) > > call rzero(work. ,n) > > > if (nid.eq.0) then > > open (unit=49,file='myfile') > > read(49,*) (my_array(k),k=1,n) > > close(49) > > endif > > > call gop(my_array,work,'+ ',n) ! Sum over all processors > > > return > > end > > > I've not tested this code... just wrote it here but it should work as is. > > > Paul > > > ------------------------------ > *From:* Nek5000-users on behalf > of nek5000-users at lists.mcs.anl.gov > *Sent:* Sunday, June 3, 2018 11:11:29 PM > *To:* nek5000-users > > *Subject:* Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton > > Hey Paul, > > Thanks for the reply. I have never really used the mpi architecture of > Nek5000. I am thinking this should be a separate subroutine on the .usr > file where I have to copy it onto each mpi rank? > > My finite difference grid is not that big. So the interpolation into SEM > points should be easy. I would like to know how to copy it onto each MPI > rank. > > Thanks, > Saikat > > Saikat Mukherjee, > PhD Student, > Paul Research Group - http://www.me.vt.edu/mpaul/ > Engineering Science and Mechanics, > Virginia Tech. > > On Thu, May 31, 2018 at 7:58 AM, wrote: > > > Hi Saikat, > > > How large is your finite-difference look up table? > > > (1 million points? 1 billion? 1000?) > > > If it's not too large you can just copy it onto each mpi rank > > and then call your own serial interpolation routine for each > > SEM point, x,y,z, and store the results into an array in a > > common block that you can then reference in users > > > Presumably you'd have to do this interpolation only one > > time and then de-reference the values from the common > > block on each time step with fairly low overhead. > > > > Paul > > > ------------------------------ > *From:* Nek5000-users on behalf > of nek5000-users at lists.mcs.anl.gov > *Sent:* Wednesday, May 30, 2018 2:42:14 PM > *To:* nek5000-users at lists.mcs.anl.gov > > *Subject:* Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton > > There is nothing spectral element specific here. You could do e.g. a > trilinear interpolation but that's something you have to code yourself. > > -----Original message----- > > From:nek5000-users at lists.mcs.anl.gov > > Sent: Wednesday 30th May 2018 21:26 > > To: nek5000-users > > Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton > > > > The question is how to read in a discrete data set defined in a finite > difference grid in ffx or forcing in the .usr file. It seems like there > will be some sort of interpolation to the spectral element grid. So yes, > that is my question. > > > > Thank you, > > Saikat > >
Saikat Mukherjee, > > PhD Student, > > Paul Research Group - http://www.me.vt.edu/mpaul/ < > http://www.me.vt.edu/mpaul/> > > Engineering Science and Mechanics, > > Virginia Tech. > > > > On Wed, May 30, 2018 at 2:48 PM, mailto:nek5000-users at lists.mcs.anl.gov >> > wrote: > > What?s your question? How to do the interpolation in your function f? > > > > On 30 May 2018, at 20:17, "nek5000-users at lists.mcs.anl.gov < > mailto:nek5000-users at lists.mcs.anl.gov >" > >> wrote: > > > > Hi, > > > > Thanks for the reply. My problem is f is given as a discrete data set > described in finite difference grid. I want to interpolate this to ffx like > you said in my .usr file. Would like to know how to proceed. > > > > Thanks, > > Saikat > >
Saikat Mukherjee, > > PhD Student, > > Paul Research Group - http://www.me.vt.edu/mpaul/ < > http://www.me.vt.edu/mpaul/> > > Engineering Science and Mechanics, > > Virginia Tech. > > > > On Wed, May 30, 2018 at 1:36 PM, mailto:nek5000-users at lists.mcs.anl.gov >> > wrote: > > Lets consider > > > > ffx = f(x,y,z) > > > > here f is an user function (something you have to provide) which get > evaluated at x,y,z (your grid points). Interpolation is required if f is > given by a discrete data set. > > > > hth > > > > > > -----Original message----- > > > From:nek5000-users at lists.mcs.anl.gov ists.mcs.anl.gov > < > nek5000-users at lists.mcs.anl.gov >> > > > Sent: Wednesday 30th May 2018 19:19 > > > To: nek5000-users mailto:nek5000-users at lists.mcs.anl.gov >> > > > Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in > Nekton > > > > > > Hi, > > > > > > Thanks for the reply. The look up table is in a finite difference > grid. Are you saying I can still feed it to the .usr file and it should be > fine? > > > > > > Thanks, > > > Saikat > > >
Saikat Mukherjee, > > > PhD Student, > > > Paul Research Group - http://www.me.vt.edu/mpaul/ < > http://www.me.vt.edu/mpaul/> http://www.me.vt.edu/mpaul/>> > > > Engineering Science and Mechanics, > > > Virginia Tech. > > > > > > On Sat, May 26, 2018 at 10:54 PM, mailto:nek5000-users at lists.mcs.anl.gov > > s.anl.gov >>> wrote: > > > Hi Saikat, > > > > > > You can always do the reading from the look up table from .usr file, > at once then feed the data to your ffx ffy and ffz through a common block. > > > > > > On Thu, May 24, 2018 at 10:55 PM, mailto:nek5000-users at lists.mcs.anl.gov > > s.anl.gov >>> wrote: > > > Hey all, > > > > > > Just following up on the query. Would appreciate any input. > > > > > > Thanks, > > > Saikat > > >
Saikat Mukherjee, > > > PhD Student, > > > Paul Research Group - http://www.me.vt.edu/mpaul/ < > http://www.me.vt.edu/mpaul/> http://www.me.vt.edu/mpaul/>> > > > Engineering Science and Mechanics, > > > Virginia Tech. > > > > > > On Tue, May 22, 2018 at 4:47 PM, Saikat Mukherjee mailto:msaikat6 at vt.edu > mailto:msaikat6 at vt.edu >>> wrote: > > > Hey Neks, > > > > > > I have a forcing function which is in the form of a look up table in > X-Y cartesian grid. I would like to use this forcing function in the 2-D > fluid momentum equation that Nekton solves. Is there a way to do this in > the .usr file or elsewhere? > > > > > > Thanks, > > > Saikat > > > > > > > > >
Saikat Mukherjee, > > > PhD Student, > > > Paul Research Group - http://www.me.vt.edu/mpaul/ < > http://www.me.vt.edu/mpaul/> http://www.me.vt.edu/mpaul/>> > > > Engineering Science and Mechanics, > > > Virginia Tech. > > > > > > > > > _______________________________________________ > > > Nek5000-users mailing list > > > Nek5000-users at lists.mcs.anl.gov s.anl.gov > Nek5000-users at lists.mcs.anl.gov >> > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users>> > > > > > > > > > > > > _______________________________________________ > > > Nek5000-users mailing list > > > Nek5000-users at lists.mcs.anl.gov s.anl.gov > Nek5000-users at lists.mcs.anl.gov >> > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users>> > > > > > > > > > _______________________________________________ > > > Nek5000-users mailing list > > > Nek5000-users at lists.mcs.anl.gov s.anl.gov > > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users < > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users> > > > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 4 14:52:11 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 4 Jun 2018 19:52:11 +0000 Subject: [Nek5000-users] Using Cartesian grid lookup table in Nekton In-Reply-To: References: , Message-ID: Hi Saikat, Nek provides routines to interpolate from its own spectral element mesh to any other grid. Going from any other grid to (x,y,z) [ given by entries in xm1(),ym1(),zm1()], requires an interpolator designed for that grid. You could, say, use some sort of piecewise polynomial or piecewise linear interpolant --- it would be a routine that you could develop and test as a stand-alone code on your own before putting into your usr file. hth, Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Monday, June 4, 2018 10:44:10 AM To: nek5000-users Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton Thanks Paul, I will try this. Regarding the interpolation, do we have a subroutine that interpolates from uniform grid to GLL grid in nek5000? Thanks, Saikat Saikat Mukherjee, PhD Student, Paul Research Group - http://www.me.vt.edu/mpaul/ Engineering Science and Mechanics, Virginia Tech. On Mon, Jun 4, 2018 at 7:32 AM, > wrote: Hi Saikat, If it's not too big for loading onto each rank, I would do the following, which is not very parallel, but is quite effective up to modest array sizes: subroutine usrdat2 include 'SIZE' include 'TOTAL' parameter (my_array_size=10000) real my_array(my_array_size), work(my_array_size) n = my_array_size call rzero(my_array,n) call rzero(work. ,n) if (nid.eq.0) then open (unit=49,file='myfile') read(49,*) (my_array(k),k=1,n) close(49) endif call gop(my_array,work,'+ ',n) ! Sum over all processors return end I've not tested this code... just wrote it here but it should work as is. Paul ________________________________ From: Nek5000-users > on behalf of nek5000-users at lists.mcs.anl.gov > Sent: Sunday, June 3, 2018 11:11:29 PM To: nek5000-users Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton Hey Paul, Thanks for the reply. I have never really used the mpi architecture of Nek5000. I am thinking this should be a separate subroutine on the .usr file where I have to copy it onto each mpi rank? My finite difference grid is not that big. So the interpolation into SEM points should be easy. I would like to know how to copy it onto each MPI rank. Thanks, Saikat Saikat Mukherjee, PhD Student, Paul Research Group - http://www.me.vt.edu/mpaul/ Engineering Science and Mechanics, Virginia Tech. On Thu, May 31, 2018 at 7:58 AM, > wrote: Hi Saikat, How large is your finite-difference look up table? (1 million points? 1 billion? 1000?) If it's not too large you can just copy it onto each mpi rank and then call your own serial interpolation routine for each SEM point, x,y,z, and store the results into an array in a common block that you can then reference in users Presumably you'd have to do this interpolation only one time and then de-reference the values from the common block on each time step with fairly low overhead. Paul ________________________________ From: Nek5000-users > on behalf of nek5000-users at lists.mcs.anl.gov > Sent: Wednesday, May 30, 2018 2:42:14 PM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton There is nothing spectral element specific here. You could do e.g. a trilinear interpolation but that's something you have to code yourself. -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > > Sent: Wednesday 30th May 2018 21:26 > To: nek5000-users > > Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton > > The question is how to read in a discrete data set defined in a finite difference grid in ffx or forcing in the .usr file. It seems like there will be some sort of interpolation to the spectral element grid. So yes, that is my question. > > Thank you, > Saikat >
Saikat Mukherjee, > PhD Student, > Paul Research Group - http://www.me.vt.edu/mpaul/ > Engineering Science and Mechanics, > Virginia Tech. > > On Wed, May 30, 2018 at 2:48 PM, > wrote: > What?s your question? How to do the interpolation in your function f? > > On 30 May 2018, at 20:17, "nek5000-users at lists.mcs.anl.gov " > wrote: > > Hi, > > Thanks for the reply. My problem is f is given as a discrete data set described in finite difference grid. I want to interpolate this to ffx like you said in my .usr file. Would like to know how to proceed. > > Thanks, > Saikat >
Saikat Mukherjee, > PhD Student, > Paul Research Group - http://www.me.vt.edu/mpaul/ > Engineering Science and Mechanics, > Virginia Tech. > > On Wed, May 30, 2018 at 1:36 PM, > wrote: > Lets consider > > ffx = f(x,y,z) > > here f is an user function (something you have to provide) which get evaluated at x,y,z (your grid points). Interpolation is required if f is given by a discrete data set. > > hth > > > -----Original message----- > > From:nek5000-users at lists.mcs.anl.gov > > > Sent: Wednesday 30th May 2018 19:19 > > To: nek5000-users > > > Subject: Re: [Nek5000-users] Using Cartesian grid lookup table in Nekton > > > > Hi, > > > > Thanks for the reply. The look up table is in a finite difference grid. Are you saying I can still feed it to the .usr file and it should be fine? > > > > Thanks, > > Saikat > >
Saikat Mukherjee, > > PhD Student, > > Paul Research Group - http://www.me.vt.edu/mpaul/ > > > Engineering Science and Mechanics, > > Virginia Tech. > > > > On Sat, May 26, 2018 at 10:54 PM, >> wrote: > > Hi Saikat, > > > > You can always do the reading from the look up table from .usr file, at once then feed the data to your ffx ffy and ffz through a common block. > > > > On Thu, May 24, 2018 at 10:55 PM, >> wrote: > > Hey all, > > > > Just following up on the query. Would appreciate any input. > > > > Thanks, > > Saikat > >
Saikat Mukherjee, > > PhD Student, > > Paul Research Group - http://www.me.vt.edu/mpaul/ > > > Engineering Science and Mechanics, > > Virginia Tech. > > > > On Tue, May 22, 2018 at 4:47 PM, Saikat Mukherjee >> wrote: > > Hey Neks, > > > > I have a forcing function which is in the form of a look up table in X-Y cartesian grid. I would like to use this forcing function in the 2-D fluid momentum equation that Nekton solves. Is there a way to do this in the .usr file or elsewhere? > > > > Thanks, > > Saikat > > > > > >
Saikat Mukherjee, > > PhD Student, > > Paul Research Group - http://www.me.vt.edu/mpaul/ > > > Engineering Science and Mechanics, > > Virginia Tech. > > > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > > > > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 4 15:02:59 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 4 Jun 2018 20:02:59 +0000 Subject: [Nek5000-users] intp_rstd; coarse to fine and back In-Reply-To: References: Message-ID: Hi Sandeep, intp_rstd(....,1) does not interpolate back. It takes the transpose of the forward interpolation operator. WHY? Because if I want to integrate two functions using quadrature on a fine mesh, I need a routine that interpolates _each_ function to the fine mesh. Thus, to evaluate (v,u) := \int v u dx = v^T B u I would use a quadrature rule on M gauss points, where M > N (typically). If u = [ u0 u1 ... uN ]^T is the set of basis coefficients for u, then evaluating u(x) on points xi_k, with xi_k, k=1,...,M being M gauss points, requires: u(xi_k) = \sum_j=0^N h_j (xi_k) u_j Let uf = [ u(xi_1) u(xi_2) ... u(xi_M) ]^T be the vector of u values on the fine points. Then: uf = J u where J_{kj} := h_j(xi_k) and h_j(x) is the jth cardinal Lagrange polynomial of degree N on the spectral element nodal points. Let rho_k, k=1,...,M be the quadrature weights for the M-point gauss rule. Then, (v,u) == \sum_k vf_k rho_k uf_k = (Jv)^T D Ju = v^T J^T D J u = v^T B u where B:=J^T D J, and D = diag (rho_k), k=1,...,M. So, when evaluating a matrix-vector product of the form w = B u we could (and often do) express this as: w1 = Ju w2 = D w1 w = J^T w1 Now, done. intp_rstd(....,1) implements J^T. hth, Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Monday, June 4, 2018 9:24:20 AM To: nek5000-users at lists.mcs.anl.gov Subject: [Nek5000-users] intp_rstd; coarse to fine and back Hello, To know more about the subroutines used for dealiasing, I perform a simple exercise. I take a simple sine function and project it onto the fine mesh and back to the coarse using intp_rstd. When I compare the values of the processed array with the original array, it is scaled by a factor of 1.25204, ie, I get a function like 1.25204*sin(2*x) Could you please tell me which factor am I missing? Which jacobian has to be multiplied? Attached is the usr file and below are the operations I perform in short. sinax(i,1,1,1) = sin(2.*x) call intp_rstd(uf1,u1,nx1,nxd,if3d,0) ! 0 --> forward nxyzd = lxd*lyd*lzd do i=1,nxyzd tr1 = uf1(i) wf(i) = tr1*rx(i,1,e)+tr1*rx(i,2,e)+tr1*rx(i,3,e) enddo call intp_rstd(w1,wf,nx1,nxd,if3d,1) ! 1 --> back to coarse nxyz = lx1*ly1*lz1 ! do i=1,nxyz ! to physical space. bi = 1./((bm1(i,1,1,e))) ! w1(i) = bi*w1(i) jacm=jacmi(i,e) ! I dont know whether to use jacmi(i,e) or not enddo Thank you in advance. Sandeep -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 6 17:13:53 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 6 Jun 2018 18:13:53 -0400 Subject: [Nek5000-users] Userdat2 and BC Message-ID: Dear Neks, I have the following question: the boundary conditions specified in the usr file are applied before or after the mesh deformation in userdat2? Thanks in advance, Juan Pablo. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 6 22:28:16 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 7 Jun 2018 03:28:16 +0000 Subject: [Nek5000-users] Userdat2 and BC In-Reply-To: References: Message-ID: Dear Juan Pablo, Boundary conditions are not set until the calculation starts (e.g., T, vx, vy, vz values are not set before usrdat2 is called). The BC types are known by the time usrdat2 is called (i.e., cbc(f,e,ifield) is defined). Does this help? Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Wednesday, June 6, 2018 5:13:53 PM To: nek5000-users at lists.mcs.anl.gov Subject: [Nek5000-users] Userdat2 and BC Dear Neks, I have the following question: the boundary conditions specified in the usr file are applied before or after the mesh deformation in userdat2? Thanks in advance, Juan Pablo. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Thu Jun 7 02:39:20 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 7 Jun 2018 07:39:20 +0000 Subject: [Nek5000-users] Problem size requires AMG solver Message-ID: Hi everyone, I need to run a case in Nek with a large number of elements (~ 1 million). The same problem with a small number of elements works fine, but on the larger grid the solver exits with the following error: EXIT: Problem size requires AMG solver 1 Going through the code # if (imode.eq.0 .and. nelgt.gt.350000) call exitti( # $ 'Problem size requires AMG solver$',1) It seems that over 350000 elements, you need to use the AMG solver. Is that correct? Or is there any workaround to not use the AMG. Kind regards, Dante De Santis Research Consultant Computational Physics 4 Solutions [NRG - Research and Innovation Unit] [Logo_NRG_PMS_355-186_C] Westerduinweg 3, 1755 LE PETTEN P.O. Box 25, 1755 ZG PETTEN THE NETHERLANDS phone: +31(0) 224 56 4656 e-mail: desantis at nrg.eu Visit NRG at www.nrg.eu -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.jpg Type: image/jpeg Size: 4560 bytes Desc: image001.jpg URL: From nek5000-users at lists.mcs.anl.gov Thu Jun 7 03:51:09 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 7 Jun 2018 10:51:09 +0200 Subject: [Nek5000-users] Initial Condition & Recycling Message-ID: Dear All, In an attempt to simulate an established turbulent flow over a flat plate with a recycling method for the inlet, it has to my attention that a (1/7)th Power Law would be suitable as an initial condition. However the solver divergences and I think I know why. Here the layout of the recycling procedure : 1. call set_inflow_fpt in userchk 2. If it is the 1st call then call setp_inflow_fpt_setup 3. call rescale_fpt (which rescales the copied field to a user specified mean velocity ubar) 4.In the rescale_fpt routine we call get_flux_and_area which gives the flux and area of a face with cbc == 'v ' so a user specified velocity boundary condition. 4. a) As the initial condition is wrong once that routine sums the flux on the boundary it returns zero in this case and the variable scale which is divided by the latter returns infinity ! However I set the initial conditions as in many other examples, such as the turbInflow. Would have an insight that could lead me to a solution ? Please find attached the related files. Sincerely, Armand, ONERA - The French Aerospace Lab. -------------- next part -------------- A non-text attachment was scrubbed... Name: amg.dat Type: application/octet-stream Size: 80000 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: amg_Aff.dat Type: application/octet-stream Size: 943704 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: amg_AfP.dat Type: application/octet-stream Size: 1794968 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: amg_W.dat Type: application/octet-stream Size: 673416 bytes Desc: not available URL: -------------- next part -------------- c c Include file to dimension static arrays c and to set some hardwired run-time parameters c integer ldim,lx1,lxd,lx2,lx1m,lelg,lelt,lpmin,lpmax,ldimt integer lpelt,lbelt,toteq,lcvelt integer lelx,lely,lelz,mxprev,lgmres,lorder,lhis integer maxobj,lpert,nsessmax,lxo integer lfdm, ldimt_proj ! BASIC parameter (ldim=3) ! domain dimension (2 or 3) parameter (lx1=8) ! p-order (avoid uneven and values <6) parameter (lxd=8) ! p-order for over-integration (dealiasing) parameter (lx2=lx1-0) ! p-order for pressure (lx1 or lx1-2) parameter (lelg=1540) ! max total number of elements parameter (lpmin=4) ! min MPI ranks parameter (lpmax=64) ! max MPI ranks parameter (ldimt=2) ! max auxiliary fields (temperature + scalars) ! OPTIONAL parameter (ldimt_proj=1) ! max auxiliary fields residual projection parameter (lhis=100) ! max history points parameter (maxobj=4) ! max number of objects parameter (lpert=1) ! max perturbation modes parameter (toteq=1) ! max number of conserved scalars in cmt parameter (nsessmax=1) ! max sessions parameter (lxo=lx1) ! max grid size on output (lxo>=lx1) parameter (lelx=16,lely=12,lelz=8) ! global tensor mesh dimensions parameter (mxprev=30,lgmres=20) ! max dim of projection & Krylov space parameter (lorder=2) ! max order in time parameter (lelt=lelg/lpmin + 2) ! max number of local elements per MPI rank parameter (lx1m=1) ! polynomial order mesh solver parameter (lbelt=1) ! mhd parameter (lpelt=1) ! linear stability parameter (lcvelt=1) ! cvode parameter (lfdm=0) ! == 1 for fast diagonalization method ! INTERNALS include 'SIZE.inc' -------------- next part -------------- A non-text attachment was scrubbed... Name: turbLOOT.box Type: application/vnd.previewsystems.box Size: 792 bytes Desc: not available URL: -------------- next part -------------- # # nek parameter file # [GENERAL] #startFrom = restart.fld stopAt = endTime endTime = 50 #numSteps = 0 dt = 0 timeStepper = bdf2 extrapolation = OIFS variableDt = yes targetCFL = 3.5 writeControl = timeStep #Was runTime writeInterval = 1 userParam01 = 25.0 # start time collecting statistics default 100 userParam02 = 5.0 # writeInterval 1D statistics 20 #dealiasing = no filtering = hpfrt # set to none in case of Smagorinski filterWeight = 10 filterCutoffRatio = 0.9 [PROBLEMTYPE] variableProperties = none # set to yes in case of Smagorinski equation = incompNS [PRESSURE] preconditioner = semg_amg residualTol = 1e-04 residualProj = yes [VELOCITY] residualTol = 1e-07 density = 1 viscosity = -840000 -------------- next part -------------- c----------------------------------------------------------------------- c CASE PARAMETERS: c start time for averaging #define tSTATSTART uparam(1) c output frequency for statistics #define tSTATFREQ uparam(2) c mesh dimensions #define PI (4.*atan(1.)) #define NUMBER_ELEMENTS_X 16 #define NUMBER_ELEMENTS_Y 12 #define NUMBER_ELEMENTS_Z 8 c----------------------------------------------------------------------- subroutine uservp (ix,iy,iz,ieg) include 'SIZE' include 'TOTAL' include 'NEKUSE' common /cdsmag/ ediff(lx1,ly1,lz1,lelv) ie = gllel(ieg) udiff = ediff(ix,iy,iz,ie) utrans = 1. return end c----------------------------------------------------------------------- subroutine userf (ix,iy,iz,ieg) include 'SIZE' include 'TOTAL' include 'NEKUSE' ffx = 0.0 ! This value determined from fixed U_b=1 case. ffy = 0.0 ffz = 0.0 return end c----------------------------------------------------------------------- subroutine userq (ix,iy,iz,ieg) include 'SIZE' include 'TOTAL' include 'NEKUSE' qvol = 0.0 source = 0.0 return end c----------------------------------------------------------------------- subroutine userchk include 'SIZE' include 'TOTAL' include 'ZPER' ! for nelx,nely,nelz real x0(3) save x0 integer icalld save icalld data icalld /0/ real atime,timel save atime,timel integer ntdump save ntdump common /cdsmag/ ediff(lx1,ly1,lz1,lelv) common /plane/ uavg_pl(ly1*lely) $ , urms_pl(ly1*lely) $ , vrms_pl(ly1*lely) $ , wrms_pl(ly1*lely) $ , uvms_pl(ly1*lely) $ , yy(ly1*lely) $ , w1(ly1*lely),w2(ly1*lely) common /avg/ uavg(lx1,ly1,lz1,lelv) & , urms(lx1,ly1,lz1,lelv) & , vrms(lx1,ly1,lz1,lelv) & , wrms(lx1,ly1,lz1,lelv) & , uvms(lx1,ly1,lz1,lelv) common /ctorq/ dragx(0:maxobj),dragpx(0:maxobj),dragvx(0:maxobj) $ , dragy(0:maxobj),dragpy(0:maxobj),dragvy(0:maxobj) $ , dragz(0:maxobj),dragpz(0:maxobj),dragvz(0:maxobj) c $ , torqx(0:maxobj),torqpx(0:maxobj),torqvx(0:maxobj) $ , torqy(0:maxobj),torqpy(0:maxobj),torqvy(0:maxobj) $ , torqz(0:maxobj),torqpz(0:maxobj),torqvz(0:maxobj) c $ , dpdx_mean,dpdy_mean,dpdz_mean $ , dgtq(3,4) integer e logical ifverbose common /gaaa/ wo1(lx1,ly1,lz1,lelv) & , wo2(lx1,ly1,lz1,lelv) & , wo3(lx1,ly1,lz1,lelv) parameter (lt=lx1*ly1*lz1*lelt) common /myoutflow / d(lt),w1n(lt) real dx,dy,dz,ubar real tplus n=nx1*ny1*nz1*nelv ! do some checks if (istep.eq.0) then if(mod(nely,2).ne.0) then if(nid.eq.0) write(6,*) 'ABORT: nely has to be even!' call exitt endif if(nelx.gt.lelx .or. nely.gt.lely .or. nelz.gt.lelz) then if(nid.eq.0) write(6,*) 'ABORT: nel_xyz > lel_xyz!' call exitt endif call set_obj ! objects for surface integrals call rzero(x0,3) ! torque w.r.t. x0 endif ! Compute eddy viscosity using dynamic smagorinsky model if(ifuservp) then if(nid.eq.0) write(6,*) 'Calculating eddy visosity' do e=1,nelv call eddy_visc(ediff,e) enddo call copy(t,ediff,n) endif ub = glsc2(vx,bm1,n)/volvm1 e2 = glsc3(vy,bm1,vy,n)+glsc3(vz,bm1,vz,n) e2 = e2/volvm1 if(nid.eq.0) write(6,2) time,ub,e2 2 format(1p3e13.4,' monitor') dx=5 dy=0. dz=0. ubar = 1.0 call set_inflow_fpt(dx,dy,dz,ubar) c c Below is just for postprocessing ... c if (time.lt.tSTATSTART) goto 999 ! don't start averaging nelx = NUMBER_ELEMENTS_X nely = NUMBER_ELEMENTS_Y nelz = NUMBER_ELEMENTS_Z rho = 1. dnu = param(2) A_w = XLEN * ZLEN if(ifoutfld) then if(ldimt.ge.2) call lambda2(t(1,1,1,1,2)) if(ldimt.ge.5) call comp_vort3(t(1,1,1,1,3),wo1,wo2,vx,vy,vz) endif call torque_calc(1.0,x0,.false.,.false.) ! wall shear if(icalld.eq.0) then call rzero(uavg,n) call rzero(urms,n) call rzero(vrms,n) call rzero(wrms,n) call rzero(uvms,n) dragx_avg = 0 atime = 0 timel = time call planar_average_s(yy,ym1,w1,w2) icalld = 1 ntdump = int(time/tSTATFREQ) if(nid.eq.0) write(6,*) 'Start collecting statistics ...' endif dtime = time - timel atime = atime + dtime if (atime.ne.0. .and. dtime.ne.0.) then beta = dtime/atime alpha = 1.-beta ifverbose = .false. call avg1(uavg,vx ,alpha,beta,n,'uavg',ifverbose) call avg2(urms,vx ,alpha,beta,n,'urms',ifverbose) call avg2(vrms,vy ,alpha,beta,n,'vrms',ifverbose) call avg2(wrms,vz ,alpha,beta,n,'wrms',ifverbose) call avg3(uvms,vx,vy,alpha,beta,n,'uvmm',ifverbose) dragx_avg = alpha*dragx_avg + beta*0.5*(dragx(1)+dragx(2)) ! averaging over statistical homogeneous directions (r-t) call planar_average_s(uavg_pl,uavg,w1,w2) call planar_average_s(urms_pl,urms,w1,w2) call planar_average_s(vrms_pl,vrms,w1,w2) call planar_average_s(wrms_pl,wrms,w1,w2) call planar_average_s(uvms_pl,uvms,w1,w2) ! average over the domain height m = ny1*nely do i=1,ny1*nely uavg_pl(i) = 0.5 * (uavg_pl(i) + uavg_pl(m-i+1)) urms_pl(i) = 0.5 * (urms_pl(i) + urms_pl(m-i+1)) vrms_pl(i) = 0.5 * (vrms_pl(i) + vrms_pl(m-i+1)) wrms_pl(i) = 0.5 * (wrms_pl(i) + wrms_pl(m-i+1)) enddo endif ! write statistics to file if (nid.eq.0 .and. istep.gt.0 .and. & time.gt.(ntdump+1)*tSTATFREQ) then tw = dragx_avg/A_w u_tau = sqrt(tw/rho) Re_tau = u_tau*DELTA/dnu tplus = time * Re_tau * u_tau ntdump = ntdump + 1 write(6,*) 'Dumping statistics ...', tplus, Re_tau open(unit=56,file='vel_fluc_prof.dat') write(56,'(A,1pe14.7)') '#time = ', time write(56,'(A)') & '# y y+ uu vv ww uv' open(unit=57,file='mean_prof.dat') write(57,'(A,1pe14.7)') '#time = ', time write(57,'(A)') & '# y y+ Umean' m = ny1*nely do i=1,m write(56,3) yy(i)+1 & ,(yy(i)+1)*Re_tau & , (urms_pl(i)-(uavg_pl(i))**2)/u_tau**2 & , vrms_pl(i)/u_tau**2 & , wrms_pl(i)/u_tau**2 & , uvms_pl(i)/u_tau**2 write(57,3) yy(i) + 1. & , (yy(i)+1.)*Re_tau & , uavg_pl(i)/u_tau 3 format(1p15e17.9) enddo close(56) close(57) endif timel = time 999 continue return end c----------------------------------------------------------------------- subroutine userbc (ix,iy,iz,iside,ieg) include 'SIZE' include 'TOTAL' include 'NEKUSE' common /cvelbc/ uin(lx1,ly1,lz1,lelv) $ , vin(lx1,ly1,lz1,lelv) $ , win(lx1,ly1,lz1,lelv) integer e,f,eg e = gllel(eg) ux=uin(i,j,k,e) uy=vin(i,j,k,e) uz=win(i,j,k,e) temp=0.0 return end c----------------------------------------------------------------------- subroutine useric (ix,iy,iz,ieg) include 'SIZE' include 'TOTAL' include 'NEKUSE' integer idum save idum data idum / 999 / c 1/7th power law velocity profile for an established boundary layer real Uinf = 8.4 real nu = 1e-5 real xin = 95. real ymax = 4. delta = 0.37*(nu/Uinf)**(1/5.)*(x+xin)**(4/5.) ybar = y/ymax ux = Uinf*(ybar/delta)**(1/7.) temp=0 return end c----------------------------------------------------------------------- subroutine usrdat ! This routine to modify element vertices include 'SIZE' ! _before_ mesh is generated, which include 'TOTAL' ! guarantees GLL mapping of mesh. return end c----------------------------------------------------------------------- subroutine usrdat2 ! This routine to modify mesh coordinates include 'SIZE' include 'TOTAL' return end c----------------------------------------------------------------------- subroutine usrdat3 include 'SIZE' include 'TOTAL' return end c----------------------------------------------------------------------- subroutine set_obj ! define objects for surface integrals c include 'SIZE' include 'TOTAL' c integer e,f c c Define new objects c nobj = 2 ! for Periodic iobj = 0 do ii=nhis+1,nhis+nobj iobj = iobj+1 hcode(10,ii) = 'I' hcode( 1,ii) = 'F' ! 'F' hcode( 2,ii) = 'F' ! 'F' hcode( 3,ii) = 'F' ! 'F' lochis(1,ii) = iobj enddo nhis = nhis + nobj c if (maxobj.lt.nobj) write(6,*) 'increase maxobj in SIZEu. rm *.o' if (maxobj.lt.nobj) call exitt c nxyz = nx1*ny1*nz1 do e=1,nelv do f=1,2*ndim if (cbc(f,e,1).eq.'W ') then iobj = 0 if (f.eq.1) iobj=1 ! lower wall if (f.eq.3) iobj=2 ! upper wall if (iobj.gt.0) then nmember(iobj) = nmember(iobj) + 1 mem = nmember(iobj) ieg = lglel(e) object(iobj,mem,1) = ieg object(iobj,mem,2) = f c write(6,1) iobj,mem,f,ieg,e,nid,' OBJ' 1 format(6i9,a4) endif c endif enddo enddo c write(6,*) 'number',(nmember(k),k=1,4) c return end c----------------------------------------------------------------------- subroutine comp_lij(lij,u,v,w,fu,fv,fw,fh,fht,e) c c Compute Lij for dynamic Smagorinsky model: c _ _ _______ c L_ij := u_i u_j - u_i u_j c include 'SIZE' c integer e c real lij(lx1*ly1*lz1,3*ldim-3) real u (lx1*ly1*lz1,lelv) real v (lx1*ly1*lz1,lelv) real w (lx1*ly1*lz1,lelv) real fu (1) , fv (1) , fw (1) $ , fh (1) , fht(1) call tens3d1(fu,u(1,e),fh,fht,nx1,nx1) ! fh x fh x fh x u call tens3d1(fv,v(1,e),fh,fht,nx1,nx1) call tens3d1(fw,w(1,e),fh,fht,nx1,nx1) n = nx1*ny1*nz1 do i=1,n lij(i,1) = fu(i)*fu(i) lij(i,2) = fv(i)*fv(i) lij(i,3) = fw(i)*fw(i) lij(i,4) = fu(i)*fv(i) lij(i,5) = fv(i)*fw(i) lij(i,6) = fw(i)*fu(i) enddo call col3 (fu,u(1,e),u(1,e),n) ! _______ call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_1 u_1 call sub2 (lij(1,1),fv,n) call col3 (fu,v(1,e),v(1,e),n) ! _______ call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_2 u_2 call sub2 (lij(1,2),fv,n) call col3 (fu,w(1,e),w(1,e),n) ! _______ call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_3 u_3 call sub2 (lij(1,3),fv,n) call col3 (fu,u(1,e),v(1,e),n) ! _______ call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_1 u_2 call sub2 (lij(1,4),fv,n) call col3 (fu,v(1,e),w(1,e),n) ! _______ call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_2 u_3 call sub2 (lij(1,5),fv,n) call col3 (fu,w(1,e),u(1,e),n) ! _______ call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_3 u_1 call sub2 (lij(1,6),fv,n) return end c----------------------------------------------------------------------- subroutine comp_mij(mij,sij,dg2,fs,fi,fh,fht,nt,e) c c Compute Mij for dynamic Smagorinsky model: c c 2 _ ____ _______ c M_ij := a S S_ij - S S_ij c include 'SIZE' c integer e c real mij(lx1*ly1*lz1,3*ldim-3) real dg2(lx1*ly1*lz1,lelv) real fs (1) , fi (1) , fh (1) , fht(1) real magS(lx1*ly1*lz1) real sij (lx1*ly1*lz1*ldim*ldim) integer imap(6) data imap / 0,4,8,1,5,2 / n = nx1*ny1*nz1 call mag_tensor_e(magS,sij) call cmult(magS,2.0,n) c Filter S call tens3d1(fs,magS,fh,fht,nx1,nx1) ! fh x fh x fh x |S| c a2 is the test- to grid-filter ratio, squared a2 = nx1-1 ! nx1-1 is number of spaces in grid a2 = a2 /(nt-1) ! nt-1 is number of spaces in filtered grid do k=1,6 jj = n*imap(k) + 1 call col3 (fi,magS,sij(jj),n) call tens3d1(mij(1,k),fi,fh,fht,nx1,nx1) ! fh x fh x fh x (|S| S_ij) call tens3d1(fi,sij(jj),fh,fht,nx1,nx1) ! fh x fh x fh x S_ij do i=1,n mij(i,k) = (a2**2 * fs(i)*fi(i) - mij(i,k))*dg2(i,e) enddo enddo return end c----------------------------------------------------------------------- subroutine eddy_visc(ediff,e) c c Compute eddy viscosity using dynamic smagorinsky model c include 'SIZE' include 'TOTAL' include 'ZPER' real ediff(nx1*ny1*nz1,nelv) integer e common /dynsmg/ sij (lx1*ly1*lz1,ldim,ldim) $ , mij (lx1*ly1*lz1,3*ldim-3) $ , lij (lx1*ly1*lz1,3*ldim-3) $ , dg2 (lx1*ly1*lz1,lelv) $ , num (lx1*ly1*lz1,lelv) $ , den (lx1*ly1*lz1,lelv) $ , snrm(lx1*ly1*lz1,lelv) $ , numy(ly1*lely),deny(ly1*lely),yy(ly1*lely) real sij,mij,lij,dg2,num,den,snrm,numy,deny,yy parameter(lxyz=lx1*ly1*lz1) common /xzmp0/ ur (lxyz) , us (lxyz) , ut (lxyz) real vr (lxyz) , vs (lxyz) , vt (lxyz) $ , wr (lxyz) , ws (lxyz) , wt (lxyz) common /xzmp1/ w1(lx1*lelv),w2(lx1*lelv) !! NOTE CAREFUL USE OF EQUIVALENCE HERE !! equivalence (vr,lij(1,1)),(vs,lij(1,2)),(vt,lij(1,3)) $ , (wr,lij(1,4)),(ws,lij(1,5)),(wt,lij(1,6)) common /sgsflt/ fh(lx1*lx1),fht(lx1*lx1),diag(lx1) integer nt save nt data nt / -9 / ntot = nx1*ny1*nz1 if (nt.lt.0) call $ set_ds_filt(fh,fht,nt,diag,nx1)! dyn. Smagorinsky filter call comp_gije(sij,vx(1,1,1,e),vy(1,1,1,e),vz(1,1,1,e),e) call comp_sije(sij) call mag_tensor_e(snrm(1,e),sij) call cmult(snrm(1,e),2.0,ntot) call set_grid_spacing(dg2) call comp_mij (mij,sij,dg2,ur,us,fh,fht,nt,e) call comp_lij (lij,vx,vy,vz,ur,us,ut,fh,fht,e) c Compute numerator (ur) & denominator (us) for Lilly contraction n = nx1*ny1*nz1 do i=1,n ur(i) = mij(i,1)*lij(i,1)+mij(i,2)*lij(i,2)+mij(i,3)*lij(i,3) $ + 2*(mij(i,4)*lij(i,4)+mij(i,5)*lij(i,5)+mij(i,6)*lij(i,6)) us(i) = mij(i,1)*mij(i,1)+mij(i,2)*mij(i,2)+mij(i,3)*mij(i,3) $ + 2*(mij(i,4)*mij(i,4)+mij(i,5)*mij(i,5)+mij(i,6)*mij(i,6)) enddo c smoothing numerator and denominator in time call copy (vr,ur,nx1*nx1*nx1) call copy (vs,us,nx1*nx1*nx1) beta1 = 0.0 ! Temporal averaging coefficients if (istep.gt.1) beta1 = 0.9 ! Retain 90 percent of past beta2 = 1. - beta1 do i=1,n num (i,e) = beta1*num(i,e) + beta2*vr(i) den (i,e) = beta1*den(i,e) + beta2*vs(i) enddo if (e.eq.nelv) then ! planar avg and define nu_tau call dsavg(num) ! average across element boundaries call dsavg(den) call planar_average_s (numy,num,w1,w2) c call wall_normal_average_s (numy,ny1,nely,w1,w2) call planar_fill_s (num,numy) call planar_average_s (deny,den,w1,w2) c call wall_normal_average_s (deny,ny1,nely,w1,w2) call planar_fill_s (den,deny) call planar_average_s(yy,ym1,w1,w2) c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c DIAGNOSTICS ONLY c if (nid.eq.0.and.istep.eq.0) open(unit=55,file='z.z') c if (nid.eq.0.and.mod(istep,10).eq.0) write(55,1) c 1 format(/) c c ny = ny1*nely c do i=1,ny c cdyn = 0 c if (deny(i).gt.0) cdyn = 0.5*numy(i)/deny(i) c cdyn0 = max(cdyn,0.) c if (nid.eq.0.and.mod(istep,10).eq.0) write(55,6) c $ istep,i,time,yy(i),cdyn0,cdyn,numy(i),deny(i) c 6 format(i6,i4,1p6e12.4) c enddo c DIAGNOSTICS ONLY c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ntot = nx1*ny1*nz1*nelv do i=1,ntot cdyn = 0 if (den(i,1).gt.0) cdyn = 0.5*num(i,1)/den(i,1) cdyn = max(cdyn,0.) ! AS ALTERNATIVE, could clip ediff ediff(i,1) = param(2)+cdyn*dg2(i,1)*snrm(i,1) enddo endif c if (e.eq.nelv) call outpost(num,den,snrm,den,ediff,'dif') c if (e.eq.nelv) call exitt return end c----------------------------------------------------------------------- subroutine set_ds_filt(fh,fht,nt,diag,nx) ! setup test filter INCLUDE 'SIZE' real fh(nx*nx),fht(nx*nx),diag(nx) c Construct transfer function call rone(diag,nx) c diag(nx-0) = 0.01 c diag(nx-1) = 0.10 c diag(nx-2) = 0.50 c diag(nx-3) = 0.90 c diag(nx-4) = 0.99 c nt = nx - 2 diag(nx-0) = 0.05 diag(nx-1) = 0.50 diag(nx-2) = 0.95 nt = nx - 1 call build_1d_filt(fh,fht,diag,nx,nid) return end c----------------------------------------------------------------------- subroutine planar_average_r(ua,u,w1,w2) c c Compute s-t planar average of quantity u() c include 'SIZE' include 'GEOM' include 'PARALLEL' include 'WZ' include 'ZPER' c real ua(nx1,lelx),u(nx1,ny1,nx1,nelv),w1(nx1,lelx),w2(nx1,lelx) integer e,eg,ex,ey,ez c nx = nx1*nelx call rzero(ua,nx) call rzero(w1,nx) c do e=1,nelt c eg = lglel(e) call get_exyz(ex,ey,ez,eg,nelx,nely,nelz) c do i=1,nx1 do k=1,nz1 do j=1,ny1 zz = (1.-zgm1(i,1))/2. ! = 1 for i=1, = 0 for k=nx1 aa = zz*area(j,k,4,e) + (1-zz)*area(j,k,2,e) ! wgtd jacobian w1(i,ex) = w1(i,ex) + aa ua(i,ex) = ua(i,ex) + aa*u(i,j,k,e) enddo enddo enddo enddo c call gop(ua,w2,'+ ',nx) call gop(w1,w2,'+ ',nx) c do i=1,nx ua(i,1) = ua(i,1) / w1(i,1) ! Normalize enddo c return end c----------------------------------------------------------------------- subroutine planar_average_s(ua,u,w1,w2) c c Compute r-t planar average of quantity u() c include 'SIZE' include 'GEOM' include 'PARALLEL' include 'WZ' include 'ZPER' c real ua(ny1,nely),u(nx1,ny1,nx1,nelv),w1(ny1,nely),w2(ny1,nely) integer e,eg,ex,ey,ez c ny = ny1*nely call rzero(ua,ny) call rzero(w1,ny) c do e=1,nelt eg = lglel(e) call get_exyz(ex,ey,ez,eg,nelx,nely,nelz) c do k=1,nz1 do j=1,ny1 do i=1,nx1 zz = (1.-zgm1(j,2))/2. ! = 1 for i=1, = 0 for k=nx1 aa = zz*area(i,k,1,e) + (1-zz)*area(i,k,3,e) ! wgtd jacobian w1(j,ey) = w1(j,ey) + aa ua(j,ey) = ua(j,ey) + aa*u(i,j,k,e) enddo enddo enddo enddo c call gop(ua,w2,'+ ',ny) call gop(w1,w2,'+ ',ny) c do i=1,ny ua(i,1) = ua(i,1) / w1(i,1) ! Normalize enddo return end c----------------------------------------------------------------------- subroutine planar_fill_s(u,ua) c c Fill array u with planar values from ua(). c For tensor-product array of spectral elements c include 'SIZE' include 'GEOM' include 'PARALLEL' include 'WZ' include 'ZPER' real u(nx1,ny1,nz1,nelv),ua(ly1,lely) integer e,eg,ex,ey,ez melxyz = nelx*nely*nelz if (melxyz.ne.nelgt) then write(6,*) nid,' Error in planar_fill_s' $ ,nelgt,melxyz,nelx,nely,nelz call exitt endif do e=1,nelt eg = lglel(e) call get_exyz(ex,ey,ez,eg,nelx,nely,nelz) do j=1,ny1 do k=1,nz1 do i=1,nx1 u(i,j,k,e) = ua(j,ey) enddo enddo enddo enddo return end c----------------------------------------------------------------------- subroutine set_grid_spacing(dg2) c c Compute D^2, the grid spacing used in the DS sgs model. c include 'SIZE' include 'TOTAL' real dg2(nx1,ny1,nz1,nelv) integer e,eg,ex,ey,ez gamma = 1. gamma = gamma/ndim n = nx1*ny1*nz1*nelv call rone(dg2,n) return ! Comment this line for a non-trivial Delta defn do e=1,nelv do k=1,nz1 km = max(1 ,k-1) kp = min(nz1,k+1) do j=1,ny1 jm = max(1 ,j-1) jp = min(ny1,j+1) do i=1,nx1 im = max(1 ,i-1) ip = min(nx1,i+1) di = (xm1(ip,j,k,e)-xm1(im,j,k,e))**2 $ + (ym1(ip,j,k,e)-ym1(im,j,k,e))**2 $ + (zm1(ip,j,k,e)-zm1(im,j,k,e))**2 dj = (xm1(i,jp,k,e)-xm1(i,jm,k,e))**2 $ + (ym1(i,jp,k,e)-ym1(i,jm,k,e))**2 $ + (zm1(i,jp,k,e)-zm1(i,jm,k,e))**2 dk = (xm1(i,j,kp,e)-xm1(i,j,km,e))**2 $ + (ym1(i,j,kp,e)-ym1(i,j,km,e))**2 $ + (zm1(i,j,kp,e)-zm1(i,j,km,e))**2 di = di/(ip-im) dj = dj/(jp-jm) dk = dk/(kp-km) dg2(i,j,k,e) = (di*dj*dk)**gamma enddo enddo enddo enddo call dsavg(dg2) ! average neighboring elements return end c----------------------------------------------------------------------- subroutine wall_normal_average_s(u,ny,nel,v,w) real u(ny,nel),w(1),v(1) integer e k=0 do e=1,nel ! get rid of duplicated (ny,e),(1,e+1) points do i=1,ny-1 k=k+1 w(k) = u(i,e) enddo enddo k=k+1 w(k) = u(ny,nel) n=k npass = 2 ! Smooth alpha = 0.2 do ipass=1,npass do k=2,n-1 v(k) = (1.-alpha)*w(k) + 0.5*alpha*(w(k-1)+w(k+1)) enddo do k=1,n w(k) = v(k) enddo enddo k=0 do e=1,nel ! restore duplicated (ny,e),(1,e+1) points do i=1,ny-1 k=k+1 u(i,e) = w(k) enddo enddo k=k+1 u(ny,nel)=w(k) do e=1,nel-1 ! restore duplicated (ny,e),(1,e+1) points u(ny,e) = u(1,e+1) enddo return end c----------------------------------------------------------------------- c subroutines that follow are for fintpts based method c----------------------------------------------------------------------- subroutine field_copy_si(fieldout,fieldin,idlist,nptsi) include 'SIZE' include 'TOTAL' real fieldin(1),fieldout(1) integer idlist(1) do i=1,nptsi idx = idlist(i) fieldout(idx) = fieldin(i) enddo return end C-------------------------------------------------------------------------- subroutine field_eval_si(fieldout,fieldstride,fieldin) include 'SIZE' include 'TOTAL' real fieldout(1),fieldin(1) integer fieldstride,nptsi parameter (lt=lelv*lx1*lz1) integer elid_si(lt),proc_si(lt),ptid(lt),rcode_si(lt) common /ptlist_int/ elid_si,proc_si,ptid,rcode_si,nptsi real rst_si(lt*ldim) common /ptlist_real/ rst_si integer inth_si common / fpt_h_si/ inth_si c Used for fgslib_findpts_eval of various fields call fgslib_findpts_eval(inth_si,fieldout,fieldstride, & rcode_si,1, & proc_si,1, & elid_si,1, & rst_si,ndim,nptsi, & fieldin) return end c----------------------------------------------------------------------- subroutine rescale_inflow_fpt(ubar_in) ! rescale inflow include 'SIZE' include 'TOTAL' integer icalld,e,eg,f save icalld data icalld /0/ common /cvelbc/ uin(lx1,ly1,lz1,lelv) $ , vin(lx1,ly1,lz1,lelv) $ , win(lx1,ly1,lz1,lelv) call get_flux_and_area(ubar,abar) ubar = ubar/abar ! Ubar scale = ubar_in/ubar ! Scale factor if (nid.eq.0.and.(istep.le.100.or.mod(istep,100).eq.0)) $ write(6,1) istep,time,scale,ubar,abar 1 format(1i8,1p4e14.6,' rescale') c Rescale the flow to match ubar_in do e=1,nelv do f=1,2*ldim if (cbc(f,e,1).eq.'v ') then call facind (kx1,kx2,ky1,ky2,kz1,kz2,nx1,ny1,nz1,f) do iz=kz1,kz2 do iy=ky1,ky2 do ix=kx1,kx2 uin(ix,iy,iz,e) = scale*uin(ix,iy,iz,e) vin(ix,iy,iz,e) = scale*vin(ix,iy,iz,e) win(ix,iy,iz,e) = scale*win(ix,iy,iz,e) enddo enddo enddo endif enddo enddo ifield = 1 ! Project into H1, just to be sure.... call dsavg(uin) call dsavg(vin) if (ldim.eq.3) call dsavg(win) return end c----------------------------------------------------------------------- subroutine get_flux_and_area(vvflux,vvarea) include 'SIZE' include 'TOTAL' common /cvelbc/ uin(lx1,ly1,lz1,lelv) $ , vin(lx1,ly1,lz1,lelv) $ , win(lx1,ly1,lz1,lelv) real vvflux,vvarea real work(lx1*ly1*lz1) integer e,f nxz = nx1*nz1 nface = 2*ndim vvflux = 0. vvarea = 0. do e=1,nelv do f=1,nface if (cbc(f,e,1).eq.'v ') then call surface_flux(dq,uin,vin,win,e,f,work) vvflux = vvflux + dq vvarea = vvarea + vlsum(area(1,1,f,e),nxz) endif enddo enddo vvflux = glsum(vvflux,1) vvarea = glsum(vvarea,1) vvflux = -vvflux !flux in is negative return end c----------------------------------------------------------------------- subroutine set_inflow_fpt_setup(dxx,dyy,dzz) ! set up inflow BCs include 'SIZE' include 'TOTAL' c c setup recirculation boundary condition based on user supplied dx,dy,dz c dx,dy,dz is the vector from the inflow where the user wants the velocity c data to be interpolated from c integer icalld,e,eg,i,f,nptsi save icalld data icalld /0/ real dxx,dyy,dzz parameter (lt=lx1*lz1*lelv) real rst_si(lt*ldim),xyz_si(lt*ldim) real dist_si(lt),vals_si(lt) integer elid_si(lt), proc_si(lt),ptid(lt) integer rcode_si(lt) common /ptlist_real/ rst_si common /ptlist_int/ elid_si,proc_si,ptid,rcode_si,nptsi integer inth_si common / fpt_h_si/ inth_si common /cvelbc/ uin(lx1,ly1,lz1,lelv) $ , vin(lx1,ly1,lz1,lelv) $ , win(lx1,ly1,lz1,lelv) common /nekmpi/ nidd,npp,nekcomm,nekgroup,nekreal n = nx1*ny1*nz1*nelv ccc c Gather info for findpts ccc nptsi = 0 nxyz = nx1*ny1*nz1 do e=1,nelv do f=1,2*ndim !Identify the xyz of the points that are to be found if (cbc(f,e,1).eq.'v ') then call facind (kx1,kx2,ky1,ky2,kz1,kz2,nx1,ny1,nz1,f) do iz=kz1,kz2 do iy=ky1,ky2 do ix=kx1,kx2 nptsi = nptsi+1 xyz_si(ldim*(nptsi-1)+1) = xm1(ix,iy,iz,e) + dxx xyz_si(ldim*(nptsi-1)+2) = ym1(ix,iy,iz,e) + dyy if (ldim.eq.3) xyz_si(ldim*(nptsi-1)+ldim) = zm1(ix,iy,iz,e) + dzz ptid(nptsi) = (e-1)*nxyz+(iz-1)*lx1*ly1+(iy-1)*lx1+ix enddo enddo enddo endif enddo enddo mptsi=iglmax(nptsi,1) if (mptsi.gt.lt) $ call exitti('ERROR: increase lt in inflow_fpt routines.$',mptsi) c Setup findpts tol = 1e-10 npt_max = 256 nxf = 2*nx1 ! fine mesh for bb-test nyf = 2*ny1 nzf = 2*nz1 bb_t = 0.1 ! relative size to expand bounding boxes by bb_t = 0.1 ! relative size to expand bounding boxes by call fgslib_findpts_setup(inth_si,nekcomm,npp,ndim, & xm1,ym1,zm1,nx1,ny1,nz1, & nelt,nxf,nyf,nzf,bb_t,n,n, & npt_max,tol) c Call findpts to determine el,proc,rst of the xyzs determined above call fgslib_findpts(inth_si,rcode_si,1, & proc_si,1, & elid_si,1, & rst_si,ndim, & dist_si,1, & xyz_si(1),ldim, & xyz_si(2),ldim, & xyz_si(3),ldim,nptsi) return end C----------------------------------------------------------------------- subroutine set_inflow_fpt(dxx,dyy,dzz,ubar) ! set up inflow BCs include 'SIZE' include 'TOTAL' c setup recirculation boundary condition based on user supplied dx,dy,dz c dx,dy,dz is the vector from the inflow where the user wants the c velocity data to be interpolated from integer icalld save icalld data icalld /0/ real dxx,dyy,dzz parameter (lt=lx1*lz1*lelv) real rst_si(lt*ldim),xyz_si(lt*ldim) real dist_si(lt),vals_si(lt) common /ptlist_real/ rst_si integer elid_si(lt), proc_si(lt),ptid(lt),rcode_si(lt) common /ptlist_int/ elid_si,proc_si,ptid,rcode_si,nptsi integer inth_si common / fpt_h_si/ inth_si common /cvelbc/ uin(lx1,ly1,lz1,lelv) $ , vin(lx1,ly1,lz1,lelv) $ , win(lx1,ly1,lz1,lelv) c Gather info for findpts and set up inflow BC if (icalld.eq.0) call set_inflow_fpt_setup(dxx,dyy,dzz) icalld=1 c Eval fields and copy to uvwin array call field_eval_si(vals_si,1,vx) call field_copy_si(uin,vals_si,ptid,nptsi) call field_eval_si(vals_si,1,vy) call field_copy_si(vin,vals_si,ptid,nptsi) if (ldim.eq.3) then call field_eval_si(vals_si,1,vz) call field_copy_si(win,vals_si,ptid,nptsi) endif c Rescale the flow so that ubar,vbar or wbar is ubar call rescale_inflow_fpt(ubar) return end C----------------------------------------------------------------------- c automatically added by makenek subroutine usrsetvert(glo_num,nel,nx,ny,nz) ! to modify glo_num integer*8 glo_num(1) return end From nek5000-users at lists.mcs.anl.gov Thu Jun 7 07:13:32 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 7 Jun 2018 14:13:32 +0200 Subject: [Nek5000-users] Problem size requires AMG solver In-Reply-To: References: Message-ID: What's the reason not use the AMG solver? -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Thursday 7th June 2018 13:59 > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] Problem size requires AMG solver > > Hi everyone, > I need to run a case in Nek with a large number of elements (~ 1 million). > The same problem with a small number of elements works fine, but on the larger grid > the solver exits with the following error: > ??? EXIT: Problem size requires AMG solver????????? 1 > Going through the code > # if (imode.eq.0 .and. nelgt.gt.350000) call exitti( > #? ?$ 'Problem size requires AMG solver$',1) > It seems that over 350000 elements, you need to use the AMG solver. > Is that correct? Or is there any workaround to not use the AMG. > Kind regards, > Dante De Santis > Research Consultant Computational Physics 4 Solutions > [NRG - Research and Innovation Unit] > Westerduinweg 3, 1755 LE? PETTEN > > P.O. Box 25, 1755 ZG? PETTEN > THE NETHERLANDS > phone: 31(0) 224 56 4656 > e-mail: desantis at nrg.eu > Visit NRG at > www.nrg.eu _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Thu Jun 7 08:43:56 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 7 Jun 2018 13:43:56 +0000 Subject: [Nek5000-users] Initial Condition & Recycling In-Reply-To: References: Message-ID: Dear Armand, The attached .usr file seems to work ok... just a few small modifications to the .usr file you provided. I think the main issue was the declaration of some of the variables in useric. Best, Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Thursday, June 7, 2018 3:51:09 AM To: nek5000-users at lists.mcs.anl.gov Subject: [Nek5000-users] Initial Condition & Recycling Dear All, In an attempt to simulate an established turbulent flow over a flat plate with a recycling method for the inlet, it has to my attention that a (1/7)th Power Law would be suitable as an initial condition. However the solver divergences and I think I know why. Here the layout of the recycling procedure : 1. call set_inflow_fpt in userchk 2. If it is the 1st call then call setp_inflow_fpt_setup 3. call rescale_fpt (which rescales the copied field to a user specified mean velocity ubar) 4.In the rescale_fpt routine we call get_flux_and_area which gives the flux and area of a face with cbc == 'v ' so a user specified velocity boundary condition. 4. a) As the initial condition is wrong once that routine sums the flux on the boundary it returns zero in this case and the variable scale which is divided by the latter returns infinity ! However I set the initial conditions as in many other examples, such as the turbInflow. Would have an insight that could lead me to a solution ? Please find attached the related files. Sincerely, Armand, ONERA - The French Aerospace Lab. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: z.usr Type: application/octet-stream Size: 31771 bytes Desc: z.usr URL: From nek5000-users at lists.mcs.anl.gov Thu Jun 7 11:15:08 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 7 Jun 2018 12:15:08 -0400 Subject: [Nek5000-users] [Re] Userdat2 and BC Message-ID: Thanks Paul, helps a lot! Juan Pablo El jue., 7 de jun. de 2018 07:59, escribi?: > Send Nek5000-users mailing list submissions to > nek5000-users at lists.mcs.anl.gov > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > or, via email, send a message with subject or body 'help' to > nek5000-users-request at lists.mcs.anl.gov > > You can reach the person managing the list at > nek5000-users-owner at lists.mcs.anl.gov > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Nek5000-users digest..." > > > Today's Topics: > > 1. Userdat2 and BC (nek5000-users at lists.mcs.anl.gov) > 2. Re: Userdat2 and BC (nek5000-users at lists.mcs.anl.gov) > 3. Problem size requires AMG solver (nek5000-users at lists.mcs.anl.gov) > 4. Initial Condition & Recycling (nek5000-users at lists.mcs.anl.gov) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 6 Jun 2018 18:13:53 -0400 > From: nek5000-users at lists.mcs.anl.gov > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] Userdat2 and BC > Message-ID: > > Content-Type: text/plain; charset="utf-8" > > Dear Neks, > > I have the following question: the boundary conditions specified in the usr > file are applied before or after the mesh deformation in userdat2? > > Thanks in advance, > > Juan Pablo. > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20180606/225ad344/attachment-0001.html > > > > ------------------------------ > > Message: 2 > Date: Thu, 7 Jun 2018 03:28:16 +0000 > From: nek5000-users at lists.mcs.anl.gov > To: "nek5000-users at lists.mcs.anl.gov" > > Subject: Re: [Nek5000-users] Userdat2 and BC > Message-ID: > > Content-Type: text/plain; charset="iso-8859-1" > > > Dear Juan Pablo, > > > Boundary conditions are not set until the calculation starts > > (e.g., T, vx, vy, vz values are not set before usrdat2 is called). > > > The BC types are known by the time usrdat2 is called (i.e., > > cbc(f,e,ifield) is defined). > > > Does this help? > > > Paul > > > ________________________________ > From: Nek5000-users on behalf > of nek5000-users at lists.mcs.anl.gov > Sent: Wednesday, June 6, 2018 5:13:53 PM > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] Userdat2 and BC > > Dear Neks, > > I have the following question: the boundary conditions specified in the > usr file are applied before or after the mesh deformation in userdat2? > > Thanks in advance, > > Juan Pablo. > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20180607/5df0344f/attachment-0001.html > > > > ------------------------------ > > Message: 3 > Date: Thu, 7 Jun 2018 07:39:20 +0000 > From: nek5000-users at lists.mcs.anl.gov > To: "nek5000-users at lists.mcs.anl.gov" > > Subject: [Nek5000-users] Problem size requires AMG solver > Message-ID: > > Content-Type: text/plain; charset="us-ascii" > > Hi everyone, > > I need to run a case in Nek with a large number of elements (~ 1 million). > > The same problem with a small number of elements works fine, but on the > larger grid > the solver exits with the following error: > > EXIT: Problem size requires AMG solver 1 > > Going through the code > > # if (imode.eq.0 .and. nelgt.gt.350000) call exitti( > # $ 'Problem size requires AMG solver$',1) > > It seems that over 350000 elements, you need to use the AMG solver. > Is that correct? Or is there any workaround to not use the AMG. > > Kind regards, > Dante De Santis > > Research Consultant Computational Physics 4 Solutions > [NRG - Research and Innovation Unit] > > [Logo_NRG_PMS_355-186_C] > Westerduinweg 3, 1755 LE PETTEN > P.O. Box 25, 1755 ZG PETTEN > THE NETHERLANDS > phone: +31(0) 224 56 4656 > e-mail: desantis at nrg.eu > Visit NRG at www.nrg.eu > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20180607/4e5b7e29/attachment.html > > > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: image001.jpg > Type: image/jpeg > Size: 4560 bytes > Desc: image001.jpg > URL: < > http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20180607/4e5b7e29/attachment.jpg > > > > ------------------------------ > > Message: 4 > Date: Thu, 7 Jun 2018 10:51:09 +0200 > From: nek5000-users at lists.mcs.anl.gov > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] Initial Condition & Recycling > Message-ID: > > Content-Type: text/plain; charset="utf-8"; Format="flowed" > > Dear All, > > > In an attempt to simulate an established turbulent flow over a flat > plate with a recycling method for the inlet, it has to my attention that > a (1/7)th Power Law would be suitable as an initial condition. However > the solver divergences and I think I know why. > > Here the layout of the recycling procedure : > > 1. call set_inflow_fpt in userchk > > 2. If it is the 1st call then call setp_inflow_fpt_setup > > 3. call rescale_fpt (which rescales the copied field to a user specified > mean velocity ubar) > > 4.In the rescale_fpt routine we call get_flux_and_area which gives the > flux and area of a face with cbc == 'v ' so a user specified velocity > boundary condition. > > 4. a) As the initial condition is wrong once that routine sums the flux > on the boundary it returns zero in this case and the variable scale > which is divided by the latter returns infinity ! > > > However I set the initial conditions as in many other examples, such as > the turbInflow. Would have an insight that could lead me to a solution ? > > > Please find attached the related files. > > > Sincerely, > > Armand, ONERA - The French Aerospace Lab. > > > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: amg.dat > Type: application/octet-stream > Size: 80000 bytes > Desc: not available > URL: < > http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20180607/89aba907/attachment.obj > > > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: amg_Aff.dat > Type: application/octet-stream > Size: 943704 bytes > Desc: not available > URL: < > http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20180607/89aba907/attachment-0001.obj > > > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: amg_AfP.dat > Type: application/octet-stream > Size: 1794968 bytes > Desc: not available > URL: < > http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20180607/89aba907/attachment-0002.obj > > > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: amg_W.dat > Type: application/octet-stream > Size: 673416 bytes > Desc: not available > URL: < > http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20180607/89aba907/attachment-0003.obj > > > -------------- next part -------------- > c > c Include file to dimension static arrays > c and to set some hardwired run-time parameters > c > integer ldim,lx1,lxd,lx2,lx1m,lelg,lelt,lpmin,lpmax,ldimt > integer lpelt,lbelt,toteq,lcvelt > integer lelx,lely,lelz,mxprev,lgmres,lorder,lhis > integer maxobj,lpert,nsessmax,lxo > integer lfdm, ldimt_proj > > ! BASIC > parameter (ldim=3) ! domain dimension (2 or 3) > parameter (lx1=8) ! p-order (avoid uneven and values > <6) > parameter (lxd=8) ! p-order for over-integration > (dealiasing) > parameter (lx2=lx1-0) ! p-order for pressure (lx1 or > lx1-2) > > parameter (lelg=1540) ! max total number of elements > parameter (lpmin=4) ! min MPI ranks > parameter (lpmax=64) ! max MPI ranks > parameter (ldimt=2) ! max auxiliary fields (temperature > + scalars) > > ! OPTIONAL > parameter (ldimt_proj=1) ! max auxiliary fields residual > projection > parameter (lhis=100) ! max history points > parameter (maxobj=4) ! max number of objects > parameter (lpert=1) ! max perturbation modes > parameter (toteq=1) ! max number of conserved scalars > in cmt > parameter (nsessmax=1) ! max sessions > parameter (lxo=lx1) ! max grid size on output (lxo>=lx1) > parameter (lelx=16,lely=12,lelz=8) ! global tensor mesh dimensions > parameter (mxprev=30,lgmres=20) ! max dim of projection & Krylov > space > parameter (lorder=2) ! max order in time > > parameter (lelt=lelg/lpmin + 2) ! max number of local elements per > MPI rank > parameter (lx1m=1) ! polynomial order mesh solver > parameter (lbelt=1) ! mhd > parameter (lpelt=1) ! linear stability > parameter (lcvelt=1) ! cvode > parameter (lfdm=0) ! == 1 for fast diagonalization > method > > ! INTERNALS > include 'SIZE.inc' > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: turbLOOT.box > Type: application/vnd.previewsystems.box > Size: 792 bytes > Desc: not available > URL: < > http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20180607/89aba907/attachment.box > > > -------------- next part -------------- > # > # nek parameter file > # > [GENERAL] > #startFrom = restart.fld > stopAt = endTime > endTime = 50 > #numSteps = 0 > > dt = 0 > timeStepper = bdf2 > extrapolation = OIFS > variableDt = yes > targetCFL = 3.5 > > writeControl = timeStep #Was runTime > writeInterval = 1 > > userParam01 = 25.0 # start time collecting statistics default 100 > userParam02 = 5.0 # writeInterval 1D statistics 20 > > #dealiasing = no > > filtering = hpfrt # set to none in case of Smagorinski > filterWeight = 10 > filterCutoffRatio = 0.9 > > [PROBLEMTYPE] > variableProperties = none # set to yes in case of Smagorinski > equation = incompNS > > [PRESSURE] > preconditioner = semg_amg > residualTol = 1e-04 > residualProj = yes > > [VELOCITY] > residualTol = 1e-07 > density = 1 > viscosity = -840000 > -------------- next part -------------- > c----------------------------------------------------------------------- > c CASE PARAMETERS: > > c start time for averaging > #define tSTATSTART uparam(1) > > c output frequency for statistics > #define tSTATFREQ uparam(2) > > c mesh dimensions > #define PI (4.*atan(1.)) > #define NUMBER_ELEMENTS_X 16 > #define NUMBER_ELEMENTS_Y 12 > #define NUMBER_ELEMENTS_Z 8 > > c----------------------------------------------------------------------- > subroutine uservp (ix,iy,iz,ieg) > include 'SIZE' > include 'TOTAL' > include 'NEKUSE' > > common /cdsmag/ ediff(lx1,ly1,lz1,lelv) > > ie = gllel(ieg) > udiff = ediff(ix,iy,iz,ie) > utrans = 1. > > return > end > c----------------------------------------------------------------------- > subroutine userf (ix,iy,iz,ieg) > include 'SIZE' > include 'TOTAL' > include 'NEKUSE' > > ffx = 0.0 ! This value determined from fixed U_b=1 case. > ffy = 0.0 > ffz = 0.0 > > return > end > c----------------------------------------------------------------------- > subroutine userq (ix,iy,iz,ieg) > include 'SIZE' > include 'TOTAL' > include 'NEKUSE' > > qvol = 0.0 > source = 0.0 > > return > end > c----------------------------------------------------------------------- > subroutine userchk > include 'SIZE' > include 'TOTAL' > include 'ZPER' ! for nelx,nely,nelz > > real x0(3) > save x0 > > integer icalld > save icalld > data icalld /0/ > > real atime,timel > save atime,timel > > integer ntdump > save ntdump > > common /cdsmag/ ediff(lx1,ly1,lz1,lelv) > > common /plane/ uavg_pl(ly1*lely) > $ , urms_pl(ly1*lely) > $ , vrms_pl(ly1*lely) > $ , wrms_pl(ly1*lely) > $ , uvms_pl(ly1*lely) > $ , yy(ly1*lely) > $ , w1(ly1*lely),w2(ly1*lely) > > common /avg/ uavg(lx1,ly1,lz1,lelv) > & , urms(lx1,ly1,lz1,lelv) > & , vrms(lx1,ly1,lz1,lelv) > & , wrms(lx1,ly1,lz1,lelv) > & , uvms(lx1,ly1,lz1,lelv) > > common /ctorq/ dragx(0:maxobj),dragpx(0:maxobj),dragvx(0:maxobj) > $ , dragy(0:maxobj),dragpy(0:maxobj),dragvy(0:maxobj) > $ , dragz(0:maxobj),dragpz(0:maxobj),dragvz(0:maxobj) > c > $ , torqx(0:maxobj),torqpx(0:maxobj),torqvx(0:maxobj) > $ , torqy(0:maxobj),torqpy(0:maxobj),torqvy(0:maxobj) > $ , torqz(0:maxobj),torqpz(0:maxobj),torqvz(0:maxobj) > c > $ , dpdx_mean,dpdy_mean,dpdz_mean > $ , dgtq(3,4) > > integer e > logical ifverbose > common /gaaa/ wo1(lx1,ly1,lz1,lelv) > & , wo2(lx1,ly1,lz1,lelv) > & , wo3(lx1,ly1,lz1,lelv) > > parameter (lt=lx1*ly1*lz1*lelt) > common /myoutflow / d(lt),w1n(lt) > real dx,dy,dz,ubar > > real tplus > > n=nx1*ny1*nz1*nelv > ! do some checks > if (istep.eq.0) then > if(mod(nely,2).ne.0) then > if(nid.eq.0) write(6,*) 'ABORT: nely has to be even!' > call exitt > endif > if(nelx.gt.lelx .or. nely.gt.lely .or. nelz.gt.lelz) then > if(nid.eq.0) write(6,*) 'ABORT: nel_xyz > lel_xyz!' > call exitt > endif > > call set_obj ! objects for surface integrals > call rzero(x0,3) ! torque w.r.t. x0 > endif > > ! Compute eddy viscosity using dynamic smagorinsky model > if(ifuservp) then > if(nid.eq.0) write(6,*) 'Calculating eddy visosity' > do e=1,nelv > call eddy_visc(ediff,e) > enddo > call copy(t,ediff,n) > endif > > > ub = glsc2(vx,bm1,n)/volvm1 > e2 = glsc3(vy,bm1,vy,n)+glsc3(vz,bm1,vz,n) > e2 = e2/volvm1 > if(nid.eq.0) write(6,2) time,ub,e2 > 2 format(1p3e13.4,' monitor') > > dx=5 > dy=0. > dz=0. > ubar = 1.0 > call set_inflow_fpt(dx,dy,dz,ubar) > > c > c Below is just for postprocessing ... > c > if (time.lt.tSTATSTART) goto 999 ! don't start averaging > > nelx = NUMBER_ELEMENTS_X > nely = NUMBER_ELEMENTS_Y > nelz = NUMBER_ELEMENTS_Z > > rho = 1. > dnu = param(2) > A_w = XLEN * ZLEN > > if(ifoutfld) then > if(ldimt.ge.2) call lambda2(t(1,1,1,1,2)) > if(ldimt.ge.5) call comp_vort3(t(1,1,1,1,3),wo1,wo2,vx,vy,vz) > endif > > call torque_calc(1.0,x0,.false.,.false.) ! wall shear > > if(icalld.eq.0) then > call rzero(uavg,n) > call rzero(urms,n) > call rzero(vrms,n) > call rzero(wrms,n) > call rzero(uvms,n) > dragx_avg = 0 > atime = 0 > timel = time > call planar_average_s(yy,ym1,w1,w2) > icalld = 1 > ntdump = int(time/tSTATFREQ) > if(nid.eq.0) write(6,*) 'Start collecting statistics ...' > endif > > dtime = time - timel > atime = atime + dtime > > if (atime.ne.0. .and. dtime.ne.0.) then > beta = dtime/atime > alpha = 1.-beta > ifverbose = .false. > > call avg1(uavg,vx ,alpha,beta,n,'uavg',ifverbose) > call avg2(urms,vx ,alpha,beta,n,'urms',ifverbose) > call avg2(vrms,vy ,alpha,beta,n,'vrms',ifverbose) > call avg2(wrms,vz ,alpha,beta,n,'wrms',ifverbose) > call avg3(uvms,vx,vy,alpha,beta,n,'uvmm',ifverbose) > > dragx_avg = alpha*dragx_avg + beta*0.5*(dragx(1)+dragx(2)) > > ! averaging over statistical homogeneous directions (r-t) > call planar_average_s(uavg_pl,uavg,w1,w2) > call planar_average_s(urms_pl,urms,w1,w2) > call planar_average_s(vrms_pl,vrms,w1,w2) > call planar_average_s(wrms_pl,wrms,w1,w2) > call planar_average_s(uvms_pl,uvms,w1,w2) > > ! average over the domain height > m = ny1*nely > do i=1,ny1*nely > uavg_pl(i) = 0.5 * (uavg_pl(i) + uavg_pl(m-i+1)) > urms_pl(i) = 0.5 * (urms_pl(i) + urms_pl(m-i+1)) > vrms_pl(i) = 0.5 * (vrms_pl(i) + vrms_pl(m-i+1)) > wrms_pl(i) = 0.5 * (wrms_pl(i) + wrms_pl(m-i+1)) > enddo > endif > > ! write statistics to file > if (nid.eq.0 .and. istep.gt.0 .and. > & time.gt.(ntdump+1)*tSTATFREQ) then > > tw = dragx_avg/A_w > u_tau = sqrt(tw/rho) > Re_tau = u_tau*DELTA/dnu > tplus = time * Re_tau * u_tau > > ntdump = ntdump + 1 > write(6,*) 'Dumping statistics ...', tplus, Re_tau > > open(unit=56,file='vel_fluc_prof.dat') > write(56,'(A,1pe14.7)') '#time = ', time > write(56,'(A)') > & '# y y+ uu vv ww uv' > open(unit=57,file='mean_prof.dat') > write(57,'(A,1pe14.7)') '#time = ', time > write(57,'(A)') > & '# y y+ Umean' > > m = ny1*nely > do i=1,m > write(56,3) yy(i)+1 > & ,(yy(i)+1)*Re_tau > & , (urms_pl(i)-(uavg_pl(i))**2)/u_tau**2 > & , vrms_pl(i)/u_tau**2 > & , wrms_pl(i)/u_tau**2 > & , uvms_pl(i)/u_tau**2 > write(57,3) yy(i) + 1. > & , (yy(i)+1.)*Re_tau > & , uavg_pl(i)/u_tau > 3 format(1p15e17.9) > enddo > close(56) > close(57) > endif > > timel = time > 999 continue > > return > end > c----------------------------------------------------------------------- > subroutine userbc (ix,iy,iz,iside,ieg) > include 'SIZE' > include 'TOTAL' > include 'NEKUSE' > > common /cvelbc/ uin(lx1,ly1,lz1,lelv) > $ , vin(lx1,ly1,lz1,lelv) > $ , win(lx1,ly1,lz1,lelv) > > integer e,f,eg > e = gllel(eg) > > ux=uin(i,j,k,e) > uy=vin(i,j,k,e) > uz=win(i,j,k,e) > > temp=0.0 > > return > end > c----------------------------------------------------------------------- > subroutine useric (ix,iy,iz,ieg) > include 'SIZE' > include 'TOTAL' > include 'NEKUSE' > > > integer idum > save idum > data idum / 999 / > > c 1/7th power law velocity profile for an established boundary layer > real Uinf = 8.4 > real nu = 1e-5 > real xin = 95. > real ymax = 4. > > delta = 0.37*(nu/Uinf)**(1/5.)*(x+xin)**(4/5.) > > ybar = y/ymax > ux = Uinf*(ybar/delta)**(1/7.) > > temp=0 > > return > end > c----------------------------------------------------------------------- > subroutine usrdat ! This routine to modify element vertices > include 'SIZE' ! _before_ mesh is generated, which > include 'TOTAL' ! guarantees GLL mapping of mesh. > > return > end > c----------------------------------------------------------------------- > subroutine usrdat2 ! This routine to modify mesh coordinates > include 'SIZE' > include 'TOTAL' > > return > end > c----------------------------------------------------------------------- > subroutine usrdat3 > include 'SIZE' > include 'TOTAL' > > return > end > c----------------------------------------------------------------------- > subroutine set_obj ! define objects for surface integrals > c > include 'SIZE' > include 'TOTAL' > c > integer e,f > c > c Define new objects > c > nobj = 2 ! for Periodic > iobj = 0 > do ii=nhis+1,nhis+nobj > iobj = iobj+1 > hcode(10,ii) = 'I' > hcode( 1,ii) = 'F' ! 'F' > hcode( 2,ii) = 'F' ! 'F' > hcode( 3,ii) = 'F' ! 'F' > lochis(1,ii) = iobj > enddo > nhis = nhis + nobj > c > if (maxobj.lt.nobj) write(6,*) 'increase maxobj in SIZEu. rm *.o' > if (maxobj.lt.nobj) call exitt > c > nxyz = nx1*ny1*nz1 > do e=1,nelv > do f=1,2*ndim > if (cbc(f,e,1).eq.'W ') then > iobj = 0 > if (f.eq.1) iobj=1 ! lower wall > if (f.eq.3) iobj=2 ! upper wall > if (iobj.gt.0) then > nmember(iobj) = nmember(iobj) + 1 > mem = nmember(iobj) > ieg = lglel(e) > object(iobj,mem,1) = ieg > object(iobj,mem,2) = f > c write(6,1) iobj,mem,f,ieg,e,nid,' OBJ' > 1 format(6i9,a4) > endif > c > endif > enddo > enddo > c write(6,*) 'number',(nmember(k),k=1,4) > c > return > end > c----------------------------------------------------------------------- > subroutine comp_lij(lij,u,v,w,fu,fv,fw,fh,fht,e) > c > c Compute Lij for dynamic Smagorinsky model: > c _ _ _______ > c L_ij := u_i u_j - u_i u_j > c > include 'SIZE' > c > integer e > c > real lij(lx1*ly1*lz1,3*ldim-3) > real u (lx1*ly1*lz1,lelv) > real v (lx1*ly1*lz1,lelv) > real w (lx1*ly1*lz1,lelv) > real fu (1) , fv (1) , fw (1) > $ , fh (1) , fht(1) > > call tens3d1(fu,u(1,e),fh,fht,nx1,nx1) ! fh x fh x fh x u > call tens3d1(fv,v(1,e),fh,fht,nx1,nx1) > call tens3d1(fw,w(1,e),fh,fht,nx1,nx1) > > n = nx1*ny1*nz1 > do i=1,n > lij(i,1) = fu(i)*fu(i) > lij(i,2) = fv(i)*fv(i) > lij(i,3) = fw(i)*fw(i) > lij(i,4) = fu(i)*fv(i) > lij(i,5) = fv(i)*fw(i) > lij(i,6) = fw(i)*fu(i) > enddo > > call col3 (fu,u(1,e),u(1,e),n) ! _______ > call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_1 u_1 > call sub2 (lij(1,1),fv,n) > > call col3 (fu,v(1,e),v(1,e),n) ! _______ > call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_2 u_2 > call sub2 (lij(1,2),fv,n) > > call col3 (fu,w(1,e),w(1,e),n) ! _______ > call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_3 u_3 > call sub2 (lij(1,3),fv,n) > > call col3 (fu,u(1,e),v(1,e),n) ! _______ > call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_1 u_2 > call sub2 (lij(1,4),fv,n) > > call col3 (fu,v(1,e),w(1,e),n) ! _______ > call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_2 u_3 > call sub2 (lij(1,5),fv,n) > > call col3 (fu,w(1,e),u(1,e),n) ! _______ > call tens3d1(fv,fu,fh,fht,nx1,nx1) ! u_3 u_1 > call sub2 (lij(1,6),fv,n) > > return > end > c----------------------------------------------------------------------- > subroutine comp_mij(mij,sij,dg2,fs,fi,fh,fht,nt,e) > c > c Compute Mij for dynamic Smagorinsky model: > c > c 2 _ ____ _______ > c M_ij := a S S_ij - S S_ij > c > include 'SIZE' > c > integer e > c > real mij(lx1*ly1*lz1,3*ldim-3) > real dg2(lx1*ly1*lz1,lelv) > real fs (1) , fi (1) , fh (1) , fht(1) > > real magS(lx1*ly1*lz1) > real sij (lx1*ly1*lz1*ldim*ldim) > > integer imap(6) > data imap / 0,4,8,1,5,2 / > > n = nx1*ny1*nz1 > > call mag_tensor_e(magS,sij) > call cmult(magS,2.0,n) > > c Filter S > call tens3d1(fs,magS,fh,fht,nx1,nx1) ! fh x fh x fh x |S| > > c a2 is the test- to grid-filter ratio, squared > > a2 = nx1-1 ! nx1-1 is number of spaces in grid > a2 = a2 /(nt-1) ! nt-1 is number of spaces in filtered grid > > do k=1,6 > jj = n*imap(k) + 1 > call col3 (fi,magS,sij(jj),n) > call tens3d1(mij(1,k),fi,fh,fht,nx1,nx1) ! fh x fh x fh x (|S| > S_ij) > call tens3d1(fi,sij(jj),fh,fht,nx1,nx1) ! fh x fh x fh x S_ij > do i=1,n > mij(i,k) = (a2**2 * fs(i)*fi(i) - mij(i,k))*dg2(i,e) > enddo > enddo > > return > end > c----------------------------------------------------------------------- > subroutine eddy_visc(ediff,e) > c > c Compute eddy viscosity using dynamic smagorinsky model > c > include 'SIZE' > include 'TOTAL' > include 'ZPER' > > real ediff(nx1*ny1*nz1,nelv) > integer e > > common /dynsmg/ sij (lx1*ly1*lz1,ldim,ldim) > $ , mij (lx1*ly1*lz1,3*ldim-3) > $ , lij (lx1*ly1*lz1,3*ldim-3) > $ , dg2 (lx1*ly1*lz1,lelv) > $ , num (lx1*ly1*lz1,lelv) > $ , den (lx1*ly1*lz1,lelv) > $ , snrm(lx1*ly1*lz1,lelv) > $ , numy(ly1*lely),deny(ly1*lely),yy(ly1*lely) > real sij,mij,lij,dg2,num,den,snrm,numy,deny,yy > > parameter(lxyz=lx1*ly1*lz1) > common /xzmp0/ ur (lxyz) , us (lxyz) , ut (lxyz) > real vr (lxyz) , vs (lxyz) , vt (lxyz) > $ , wr (lxyz) , ws (lxyz) , wt (lxyz) > common /xzmp1/ w1(lx1*lelv),w2(lx1*lelv) > > !! NOTE CAREFUL USE OF EQUIVALENCE HERE !! > equivalence (vr,lij(1,1)),(vs,lij(1,2)),(vt,lij(1,3)) > $ , (wr,lij(1,4)),(ws,lij(1,5)),(wt,lij(1,6)) > > common /sgsflt/ fh(lx1*lx1),fht(lx1*lx1),diag(lx1) > > integer nt > save nt > data nt / -9 / > > ntot = nx1*ny1*nz1 > > if (nt.lt.0) call > $ set_ds_filt(fh,fht,nt,diag,nx1)! dyn. Smagorinsky filter > > call comp_gije(sij,vx(1,1,1,e),vy(1,1,1,e),vz(1,1,1,e),e) > call comp_sije(sij) > > call mag_tensor_e(snrm(1,e),sij) > call cmult(snrm(1,e),2.0,ntot) > > call set_grid_spacing(dg2) > call comp_mij (mij,sij,dg2,ur,us,fh,fht,nt,e) > > call comp_lij (lij,vx,vy,vz,ur,us,ut,fh,fht,e) > > c Compute numerator (ur) & denominator (us) for Lilly contraction > > n = nx1*ny1*nz1 > do i=1,n > ur(i) = mij(i,1)*lij(i,1)+mij(i,2)*lij(i,2)+mij(i,3)*lij(i,3) > $ + 2*(mij(i,4)*lij(i,4)+mij(i,5)*lij(i,5)+mij(i,6)*lij(i,6)) > us(i) = mij(i,1)*mij(i,1)+mij(i,2)*mij(i,2)+mij(i,3)*mij(i,3) > $ + 2*(mij(i,4)*mij(i,4)+mij(i,5)*mij(i,5)+mij(i,6)*mij(i,6)) > enddo > > c smoothing numerator and denominator in time > call copy (vr,ur,nx1*nx1*nx1) > call copy (vs,us,nx1*nx1*nx1) > > beta1 = 0.0 ! Temporal averaging coefficients > if (istep.gt.1) beta1 = 0.9 ! Retain 90 percent of past > beta2 = 1. - beta1 > > do i=1,n > num (i,e) = beta1*num(i,e) + beta2*vr(i) > den (i,e) = beta1*den(i,e) + beta2*vs(i) > enddo > > > if (e.eq.nelv) then ! planar avg and define nu_tau > > call dsavg(num) ! average across element boundaries > call dsavg(den) > > call planar_average_s (numy,num,w1,w2) > c call wall_normal_average_s (numy,ny1,nely,w1,w2) > call planar_fill_s (num,numy) > > call planar_average_s (deny,den,w1,w2) > c call wall_normal_average_s (deny,ny1,nely,w1,w2) > call planar_fill_s (den,deny) > > call planar_average_s(yy,ym1,w1,w2) > > c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > c DIAGNOSTICS ONLY > c if (nid.eq.0.and.istep.eq.0) open(unit=55,file='z.z') > c if (nid.eq.0.and.mod(istep,10).eq.0) write(55,1) > c 1 format(/) > c > c ny = ny1*nely > c do i=1,ny > c cdyn = 0 > c if (deny(i).gt.0) cdyn = 0.5*numy(i)/deny(i) > c cdyn0 = max(cdyn,0.) > c if (nid.eq.0.and.mod(istep,10).eq.0) write(55,6) > c $ istep,i,time,yy(i),cdyn0,cdyn,numy(i),deny(i) > c 6 format(i6,i4,1p6e12.4) > c enddo > c DIAGNOSTICS ONLY > c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > ntot = nx1*ny1*nz1*nelv > do i=1,ntot > cdyn = 0 > if (den(i,1).gt.0) cdyn = 0.5*num(i,1)/den(i,1) > cdyn = max(cdyn,0.) ! AS ALTERNATIVE, could clip ediff > ediff(i,1) = param(2)+cdyn*dg2(i,1)*snrm(i,1) > enddo > endif > > c if (e.eq.nelv) call outpost(num,den,snrm,den,ediff,'dif') > c if (e.eq.nelv) call exitt > > return > end > c----------------------------------------------------------------------- > subroutine set_ds_filt(fh,fht,nt,diag,nx) ! setup test filter > > INCLUDE 'SIZE' > > real fh(nx*nx),fht(nx*nx),diag(nx) > > c Construct transfer function > call rone(diag,nx) > > c diag(nx-0) = 0.01 > c diag(nx-1) = 0.10 > c diag(nx-2) = 0.50 > c diag(nx-3) = 0.90 > c diag(nx-4) = 0.99 > c nt = nx - 2 > > diag(nx-0) = 0.05 > diag(nx-1) = 0.50 > diag(nx-2) = 0.95 > nt = nx - 1 > > call build_1d_filt(fh,fht,diag,nx,nid) > > return > end > c----------------------------------------------------------------------- > subroutine planar_average_r(ua,u,w1,w2) > c > c Compute s-t planar average of quantity u() > c > include 'SIZE' > include 'GEOM' > include 'PARALLEL' > include 'WZ' > include 'ZPER' > c > real ua(nx1,lelx),u(nx1,ny1,nx1,nelv),w1(nx1,lelx),w2(nx1,lelx) > integer e,eg,ex,ey,ez > c > nx = nx1*nelx > call rzero(ua,nx) > call rzero(w1,nx) > c > do e=1,nelt > c > eg = lglel(e) > call get_exyz(ex,ey,ez,eg,nelx,nely,nelz) > c > do i=1,nx1 > do k=1,nz1 > do j=1,ny1 > zz = (1.-zgm1(i,1))/2. ! = 1 for i=1, = 0 for k=nx1 > aa = zz*area(j,k,4,e) + (1-zz)*area(j,k,2,e) ! wgtd jacobian > w1(i,ex) = w1(i,ex) + aa > ua(i,ex) = ua(i,ex) + aa*u(i,j,k,e) > enddo > enddo > enddo > enddo > c > call gop(ua,w2,'+ ',nx) > call gop(w1,w2,'+ ',nx) > c > do i=1,nx > ua(i,1) = ua(i,1) / w1(i,1) ! Normalize > enddo > c > return > end > c----------------------------------------------------------------------- > subroutine planar_average_s(ua,u,w1,w2) > c > c Compute r-t planar average of quantity u() > c > include 'SIZE' > include 'GEOM' > include 'PARALLEL' > include 'WZ' > include 'ZPER' > c > real ua(ny1,nely),u(nx1,ny1,nx1,nelv),w1(ny1,nely),w2(ny1,nely) > integer e,eg,ex,ey,ez > c > ny = ny1*nely > call rzero(ua,ny) > call rzero(w1,ny) > c > do e=1,nelt > eg = lglel(e) > call get_exyz(ex,ey,ez,eg,nelx,nely,nelz) > c > do k=1,nz1 > do j=1,ny1 > do i=1,nx1 > zz = (1.-zgm1(j,2))/2. ! = 1 for i=1, = 0 for k=nx1 > aa = zz*area(i,k,1,e) + (1-zz)*area(i,k,3,e) ! wgtd jacobian > w1(j,ey) = w1(j,ey) + aa > ua(j,ey) = ua(j,ey) + aa*u(i,j,k,e) > enddo > enddo > enddo > enddo > c > call gop(ua,w2,'+ ',ny) > call gop(w1,w2,'+ ',ny) > c > do i=1,ny > ua(i,1) = ua(i,1) / w1(i,1) ! Normalize > enddo > > return > end > c----------------------------------------------------------------------- > subroutine planar_fill_s(u,ua) > c > c Fill array u with planar values from ua(). > c For tensor-product array of spectral elements > c > include 'SIZE' > include 'GEOM' > include 'PARALLEL' > include 'WZ' > include 'ZPER' > > > real u(nx1,ny1,nz1,nelv),ua(ly1,lely) > > integer e,eg,ex,ey,ez > > melxyz = nelx*nely*nelz > if (melxyz.ne.nelgt) then > write(6,*) nid,' Error in planar_fill_s' > $ ,nelgt,melxyz,nelx,nely,nelz > call exitt > endif > > do e=1,nelt > eg = lglel(e) > call get_exyz(ex,ey,ez,eg,nelx,nely,nelz) > > do j=1,ny1 > do k=1,nz1 > do i=1,nx1 > u(i,j,k,e) = ua(j,ey) > enddo > enddo > enddo > > enddo > > return > end > c----------------------------------------------------------------------- > subroutine set_grid_spacing(dg2) > c > c Compute D^2, the grid spacing used in the DS sgs model. > c > include 'SIZE' > include 'TOTAL' > > > real dg2(nx1,ny1,nz1,nelv) > > integer e,eg,ex,ey,ez > > gamma = 1. > gamma = gamma/ndim > > n = nx1*ny1*nz1*nelv > call rone(dg2,n) > return ! Comment this line for a non-trivial Delta defn > > do e=1,nelv > > do k=1,nz1 > km = max(1 ,k-1) > kp = min(nz1,k+1) > > do j=1,ny1 > jm = max(1 ,j-1) > jp = min(ny1,j+1) > > do i=1,nx1 > im = max(1 ,i-1) > ip = min(nx1,i+1) > > di = (xm1(ip,j,k,e)-xm1(im,j,k,e))**2 > $ + (ym1(ip,j,k,e)-ym1(im,j,k,e))**2 > $ + (zm1(ip,j,k,e)-zm1(im,j,k,e))**2 > > dj = (xm1(i,jp,k,e)-xm1(i,jm,k,e))**2 > $ + (ym1(i,jp,k,e)-ym1(i,jm,k,e))**2 > $ + (zm1(i,jp,k,e)-zm1(i,jm,k,e))**2 > > dk = (xm1(i,j,kp,e)-xm1(i,j,km,e))**2 > $ + (ym1(i,j,kp,e)-ym1(i,j,km,e))**2 > $ + (zm1(i,j,kp,e)-zm1(i,j,km,e))**2 > > di = di/(ip-im) > dj = dj/(jp-jm) > dk = dk/(kp-km) > dg2(i,j,k,e) = (di*dj*dk)**gamma > > enddo > enddo > enddo > enddo > > call dsavg(dg2) ! average neighboring elements > > return > end > c----------------------------------------------------------------------- > subroutine wall_normal_average_s(u,ny,nel,v,w) > real u(ny,nel),w(1),v(1) > integer e > > k=0 > do e=1,nel ! get rid of duplicated (ny,e),(1,e+1) points > do i=1,ny-1 > k=k+1 > w(k) = u(i,e) > enddo > enddo > k=k+1 > w(k) = u(ny,nel) > n=k > > npass = 2 ! Smooth > alpha = 0.2 > > do ipass=1,npass > do k=2,n-1 > v(k) = (1.-alpha)*w(k) + 0.5*alpha*(w(k-1)+w(k+1)) > enddo > > do k=1,n > w(k) = v(k) > enddo > enddo > > k=0 > do e=1,nel ! restore duplicated (ny,e),(1,e+1) points > do i=1,ny-1 > k=k+1 > u(i,e) = w(k) > enddo > enddo > k=k+1 > u(ny,nel)=w(k) > > do e=1,nel-1 ! restore duplicated (ny,e),(1,e+1) points > u(ny,e) = u(1,e+1) > enddo > return > end > c----------------------------------------------------------------------- > c subroutines that follow are for fintpts based method > c----------------------------------------------------------------------- > subroutine field_copy_si(fieldout,fieldin,idlist,nptsi) > include 'SIZE' > include 'TOTAL' > > real fieldin(1),fieldout(1) > integer idlist(1) > > do i=1,nptsi > idx = idlist(i) > fieldout(idx) = fieldin(i) > enddo > > return > end > C-------------------------------------------------------------------------- > subroutine field_eval_si(fieldout,fieldstride,fieldin) > include 'SIZE' > include 'TOTAL' > > real fieldout(1),fieldin(1) > > integer fieldstride,nptsi > > parameter (lt=lelv*lx1*lz1) > > integer elid_si(lt),proc_si(lt),ptid(lt),rcode_si(lt) > common /ptlist_int/ elid_si,proc_si,ptid,rcode_si,nptsi > > real rst_si(lt*ldim) > common /ptlist_real/ rst_si > > integer inth_si > common / fpt_h_si/ inth_si > > c Used for fgslib_findpts_eval of various fields > call fgslib_findpts_eval(inth_si,fieldout,fieldstride, > & rcode_si,1, > & proc_si,1, > & elid_si,1, > & rst_si,ndim,nptsi, > & fieldin) > > return > end > c----------------------------------------------------------------------- > subroutine rescale_inflow_fpt(ubar_in) ! rescale inflow > include 'SIZE' > include 'TOTAL' > > integer icalld,e,eg,f > save icalld > data icalld /0/ > common /cvelbc/ uin(lx1,ly1,lz1,lelv) > $ , vin(lx1,ly1,lz1,lelv) > $ , win(lx1,ly1,lz1,lelv) > > call get_flux_and_area(ubar,abar) > ubar = ubar/abar ! Ubar > scale = ubar_in/ubar ! Scale factor > > if (nid.eq.0.and.(istep.le.100.or.mod(istep,100).eq.0)) > $ write(6,1) istep,time,scale,ubar,abar > 1 format(1i8,1p4e14.6,' rescale') > > c Rescale the flow to match ubar_in > do e=1,nelv > do f=1,2*ldim > if (cbc(f,e,1).eq.'v ') then > call facind (kx1,kx2,ky1,ky2,kz1,kz2,nx1,ny1,nz1,f) > do iz=kz1,kz2 > do iy=ky1,ky2 > do ix=kx1,kx2 > uin(ix,iy,iz,e) = scale*uin(ix,iy,iz,e) > vin(ix,iy,iz,e) = scale*vin(ix,iy,iz,e) > win(ix,iy,iz,e) = scale*win(ix,iy,iz,e) > enddo > enddo > enddo > endif > enddo > enddo > > ifield = 1 ! Project into H1, just to be sure.... > call dsavg(uin) > call dsavg(vin) > if (ldim.eq.3) call dsavg(win) > > return > end > c----------------------------------------------------------------------- > subroutine get_flux_and_area(vvflux,vvarea) > include 'SIZE' > include 'TOTAL' > common /cvelbc/ uin(lx1,ly1,lz1,lelv) > $ , vin(lx1,ly1,lz1,lelv) > $ , win(lx1,ly1,lz1,lelv) > real vvflux,vvarea > real work(lx1*ly1*lz1) > integer e,f > > nxz = nx1*nz1 > nface = 2*ndim > > vvflux = 0. > vvarea = 0. > > do e=1,nelv > do f=1,nface > if (cbc(f,e,1).eq.'v ') then > call surface_flux(dq,uin,vin,win,e,f,work) > vvflux = vvflux + dq > vvarea = vvarea + vlsum(area(1,1,f,e),nxz) > endif > enddo > enddo > vvflux = glsum(vvflux,1) > vvarea = glsum(vvarea,1) > vvflux = -vvflux !flux in is negative > > return > end > c----------------------------------------------------------------------- > subroutine set_inflow_fpt_setup(dxx,dyy,dzz) ! set up inflow BCs > include 'SIZE' > include 'TOTAL' > c > c setup recirculation boundary condition based on user supplied dx,dy,dz > c dx,dy,dz is the vector from the inflow where the user wants the velocity > c data to be interpolated from > c > integer icalld,e,eg,i,f,nptsi > save icalld > data icalld /0/ > real dxx,dyy,dzz > > parameter (lt=lx1*lz1*lelv) > real rst_si(lt*ldim),xyz_si(lt*ldim) > real dist_si(lt),vals_si(lt) > > integer elid_si(lt), proc_si(lt),ptid(lt) > integer rcode_si(lt) > common /ptlist_real/ rst_si > common /ptlist_int/ elid_si,proc_si,ptid,rcode_si,nptsi > integer inth_si > common / fpt_h_si/ inth_si > common /cvelbc/ uin(lx1,ly1,lz1,lelv) > $ , vin(lx1,ly1,lz1,lelv) > $ , win(lx1,ly1,lz1,lelv) > common /nekmpi/ nidd,npp,nekcomm,nekgroup,nekreal > > n = nx1*ny1*nz1*nelv > ccc > c Gather info for findpts > ccc > nptsi = 0 > nxyz = nx1*ny1*nz1 > > do e=1,nelv > do f=1,2*ndim !Identify the xyz of the points that are to be found > if (cbc(f,e,1).eq.'v ') then > call facind (kx1,kx2,ky1,ky2,kz1,kz2,nx1,ny1,nz1,f) > do iz=kz1,kz2 > do iy=ky1,ky2 > do ix=kx1,kx2 > nptsi = nptsi+1 > xyz_si(ldim*(nptsi-1)+1) = xm1(ix,iy,iz,e) + dxx > xyz_si(ldim*(nptsi-1)+2) = ym1(ix,iy,iz,e) + dyy > if (ldim.eq.3) xyz_si(ldim*(nptsi-1)+ldim) = zm1(ix,iy,iz,e) + dzz > ptid(nptsi) = (e-1)*nxyz+(iz-1)*lx1*ly1+(iy-1)*lx1+ix > enddo > enddo > enddo > endif > enddo > enddo > mptsi=iglmax(nptsi,1) > if (mptsi.gt.lt) > $ call exitti('ERROR: increase lt in inflow_fpt routines.$',mptsi) > > c Setup findpts > > tol = 1e-10 > npt_max = 256 > nxf = 2*nx1 ! fine mesh for bb-test > nyf = 2*ny1 > nzf = 2*nz1 > bb_t = 0.1 ! relative size to expand bounding boxes by > bb_t = 0.1 ! relative size to expand bounding boxes by > call fgslib_findpts_setup(inth_si,nekcomm,npp,ndim, > & xm1,ym1,zm1,nx1,ny1,nz1, > & nelt,nxf,nyf,nzf,bb_t,n,n, > & npt_max,tol) > > > c Call findpts to determine el,proc,rst of the xyzs determined above > > call fgslib_findpts(inth_si,rcode_si,1, > & proc_si,1, > & elid_si,1, > & rst_si,ndim, > & dist_si,1, > & xyz_si(1),ldim, > & xyz_si(2),ldim, > & xyz_si(3),ldim,nptsi) > > return > end > C----------------------------------------------------------------------- > subroutine set_inflow_fpt(dxx,dyy,dzz,ubar) ! set up inflow BCs > include 'SIZE' > include 'TOTAL' > > c setup recirculation boundary condition based on user supplied dx,dy,dz > c dx,dy,dz is the vector from the inflow where the user wants the > c velocity data to be interpolated from > > integer icalld > save icalld > data icalld /0/ > real dxx,dyy,dzz > > parameter (lt=lx1*lz1*lelv) > real rst_si(lt*ldim),xyz_si(lt*ldim) > real dist_si(lt),vals_si(lt) > common /ptlist_real/ rst_si > > integer elid_si(lt), proc_si(lt),ptid(lt),rcode_si(lt) > common /ptlist_int/ elid_si,proc_si,ptid,rcode_si,nptsi > integer inth_si > common / fpt_h_si/ inth_si > common /cvelbc/ uin(lx1,ly1,lz1,lelv) > $ , vin(lx1,ly1,lz1,lelv) > $ , win(lx1,ly1,lz1,lelv) > > > c Gather info for findpts and set up inflow BC > if (icalld.eq.0) call set_inflow_fpt_setup(dxx,dyy,dzz) > icalld=1 > > > c Eval fields and copy to uvwin array > call field_eval_si(vals_si,1,vx) > call field_copy_si(uin,vals_si,ptid,nptsi) > > call field_eval_si(vals_si,1,vy) > call field_copy_si(vin,vals_si,ptid,nptsi) > > if (ldim.eq.3) then > call field_eval_si(vals_si,1,vz) > call field_copy_si(win,vals_si,ptid,nptsi) > endif > > c Rescale the flow so that ubar,vbar or wbar is ubar > call rescale_inflow_fpt(ubar) > > return > end > C----------------------------------------------------------------------- > > c automatically added by makenek > subroutine usrsetvert(glo_num,nel,nx,ny,nz) ! to modify glo_num > integer*8 glo_num(1) > return > end > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > ------------------------------ > > End of Nek5000-users Digest, Vol 112, Issue 10 > ********************************************** > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 8 08:29:53 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 8 Jun 2018 15:29:53 +0200 (CEST) Subject: [Nek5000-users] launch pretex without popup Message-ID: hello Neks, Could you please tell me is there any way to launch pretex without showing the GUI at all (I mean even with out the GUI)? I am facing a trouble when I launch a job in the cluster since it has a POP UP window . I am really stuck here Br, Sijo GEORGE -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 8 17:07:46 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 8 Jun 2018 18:07:46 -0400 Subject: [Nek5000-users] [Re] launch pretex without popup Message-ID: I would also like to know if this is posible! Thanks in advance. Juan Pablo -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Sat Jun 9 08:46:27 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Sat, 9 Jun 2018 13:46:27 +0000 Subject: [Nek5000-users] Lagrangian Particle Tracking (again) Message-ID: Hi all, I'm working on implementing LPT in my simulations in Nek5000. I've looked through all the other posts on this subject and they all mention the hemi example (and some mention Azad Noorani but he doesn't seem to have an implementation). I managed to get LPT working, using Hemi, in the previous version of NEK. Since updating though, the code no longer complies. I end up with a lot of error messages of this form: Error: Parameter 'lpart' at (1) has not been declared or is a variable, which does not reduce to a constant expression and just Error: Variable 'lpart' cannot appear in the expression at (1). As I'm not an expert in the use of Fortran I was wondering if anyone could help me update this example to work with the newest version of NEK. Thanks, Daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Sat Jun 9 11:39:42 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Sat, 9 Jun 2018 18:39:42 +0200 Subject: [Nek5000-users] Lagrangian Particle Tracking (again) In-Reply-To: References: Message-ID: Are you saying the hemi example of v17.0 is not compiling? It works for me. Are you use you are using the source + examples of v17.0? -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Saturday 9th June 2018 15:47 > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] Lagrangian Particle Tracking (again) > > Hi all, > > I'm working on implementing LPT in my simulations in Nek5000.? I've looked through all the other posts on this subject and they all mention the hemi example (and some mention Azad Noorani but he doesn't seem to have an > implementation).? I managed to get LPT working, using Hemi, in the previous version of NEK.? Since updating though, the code no longer complies.? I end up with a lot of error messages of this form: > > Error: Parameter 'lpart' at (1) has not been declared or is a variable, which does not reduce to a constant expression > > and just > > Error: Variable 'lpart' cannot appear in the expression at (1). > > As I'm not an expert in the use of Fortran I was wondering if anyone could help me update this example to work with the newest version of NEK. > > Thanks, > > Daniel > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Sun Jun 10 16:38:28 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Sun, 10 Jun 2018 21:38:28 +0000 Subject: [Nek5000-users] torque_calc subroutine Message-ID: Hi, I am computing the pressure force on a pipe wall. In order to do so I use the subroutine set_obj to define surface normals for each slice along the axial direction and then I use the torque_calc routine to compute the pressure drag. I have two issues at the moment: first, the number of objects written in the logfile is higher than the specified one (137 vs 132), although null values are assigned for the exceeding elements; secondly, when I restart the simulation calling a checkpoint routine I noticed that in a region of the pipe I obtain spurios (null) values for the force. This doesn't happen if I restart the simulation with the presolve/restart option in the .rea file. What can these issues be related to? Thanks. Best, Valerio -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 11 03:22:12 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 11 Jun 2018 10:22:12 +0200 (CEST) Subject: [Nek5000-users] Luanching pretex without POP-UP Message-ID: hello again Neks, Could you please tell me is there any way to launch pretex without showing the GUI at all (I mean even with out the GUI)? I am facing a trouble when I launch a job in the cluster since it has a POP UP window . I am really stuck here Br, Sijo GEORGE -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 11 06:11:29 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 11 Jun 2018 11:11:29 +0000 Subject: [Nek5000-users] Lagrangian Particle Tracking (again, fixed) In-Reply-To: References: Message-ID: I managed to get hemi to run and then merged that code with my own. Starting from a clean version (unedited by myself) helped. Cheers. ________________________________ From: Nek5000-users on behalf of nek5000-users-request at lists.mcs.anl.gov Sent: 09 June 2018 18:00 To: nek5000-users at lists.mcs.anl.gov Subject: Nek5000-users Digest, Vol 112, Issue 14 Send Nek5000-users mailing list submissions to nek5000-users at lists.mcs.anl.gov To subscribe or unsubscribe via the World Wide Web, visit https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users or, via email, send a message with subject or body 'help' to nek5000-users-request at lists.mcs.anl.gov You can reach the person managing the list at nek5000-users-owner at lists.mcs.anl.gov When replying, please edit your Subject line so it is more specific than "Re: Contents of Nek5000-users digest..." Today's Topics: 1. [Re] launch pretex without popup (nek5000-users at lists.mcs.anl.gov) 2. Lagrangian Particle Tracking (again) (nek5000-users at lists.mcs.anl.gov) 3. Re: Lagrangian Particle Tracking (again) (nek5000-users at lists.mcs.anl.gov) ---------------------------------------------------------------------- Message: 1 Date: Fri, 8 Jun 2018 18:07:46 -0400 From: nek5000-users at lists.mcs.anl.gov To: nek5000-users at lists.mcs.anl.gov Subject: [Nek5000-users] [Re] launch pretex without popup Message-ID: Content-Type: text/plain; charset="utf-8" I would also like to know if this is posible! Thanks in advance. Juan Pablo -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ Message: 2 Date: Sat, 9 Jun 2018 13:46:27 +0000 From: nek5000-users at lists.mcs.anl.gov To: "nek5000-users at lists.mcs.anl.gov" Subject: [Nek5000-users] Lagrangian Particle Tracking (again) Message-ID: Content-Type: text/plain; charset="iso-8859-1" Hi all, I'm working on implementing LPT in my simulations in Nek5000. I've looked through all the other posts on this subject and they all mention the hemi example (and some mention Azad Noorani but he doesn't seem to have an implementation). I managed to get LPT working, using Hemi, in the previous version of NEK. Since updating though, the code no longer complies. I end up with a lot of error messages of this form: Error: Parameter 'lpart' at (1) has not been declared or is a variable, which does not reduce to a constant expression and just Error: Variable 'lpart' cannot appear in the expression at (1). As I'm not an expert in the use of Fortran I was wondering if anyone could help me update this example to work with the newest version of NEK. Thanks, Daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ Message: 3 Date: Sat, 9 Jun 2018 18:39:42 +0200 From: nek5000-users at lists.mcs.anl.gov To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Lagrangian Particle Tracking (again) Message-ID: Content-Type: text/plain; charset=utf-8 Are you saying the hemi example of v17.0 is not compiling? It works for me. Are you use you are using the source + examples of v17.0? -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Saturday 9th June 2018 15:47 > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] Lagrangian Particle Tracking (again) > > Hi all, > > I'm working on implementing LPT in my simulations in Nek5000.? I've looked through all the other posts on this subject and they all mention the hemi example (and some mention Azad Noorani but he doesn't seem to have an > implementation).? I managed to get LPT working, using Hemi, in the previous version of NEK.? Since updating though, the code no longer complies.? I end up with a lot of error messages of this form: > > Error: Parameter 'lpart' at (1) has not been declared or is a variable, which does not reduce to a constant expression > > and just > > Error: Variable 'lpart' cannot appear in the expression at (1). > > As I'm not an expert in the use of Fortran I was wondering if anyone could help me update this example to work with the newest version of NEK. > > Thanks, > > Daniel > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users ------------------------------ Subject: Digest Footer _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users ------------------------------ End of Nek5000-users Digest, Vol 112, Issue 14 ********************************************** -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 11 08:46:25 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 11 Jun 2018 15:46:25 +0200 Subject: [Nek5000-users] Initial Condition & Recycling In-Reply-To: References: Message-ID: Dear Paul, Indeed thanks for the input However, the volume average velocity still tends to zero and as a consequence the rescaling routine tries to compensate making the code unstable until it diverges. The reason why the volume average velocity tends to zero could simply be because the flow relaminarizes in the absence of fluctuations in the prescribed inlet. From my understanding the recycling routine only rescales the flow to a target mean velocity without adding fluctuations. To be sure of that change of dynamic I set up a simulation with a (1/7)th velocity profile at the inlet (same code but without recycling) convinced that the flow would laminarize and tend to a "blasius-like" profile. To my surprise the flow remained steady. Finally as I want to use a dynamic Smagorinsky model for this project I set the filtering to none and variable properties to TRUE however it seems that there is a division by zero which I couldn't trace back in the source code. Just after starting to compute the eddy viscosity : Calculating eddy visosity flt amp 0.0000 0.0000 0.0000 0.0000 0.0000 0.0500 0.5000 0.9500 flt trn 1.0000 1.0000 1.0000 1.0000 1.0000 0.9500 0.5000 0.0500 forrtl: severe (71): integer divide by zero Image PC Routine Line Source nek5000 00000000008CF105 Unknown Unknown Unknown libpthread-2.17.s 00002B44DF7BD370 Unknown Unknown Unknown nek5000 00000000005D70BE Unknown Unknown Unknown nek5000 0000000000408121 Unknown Unknown Unknown nek5000 0000000000404D3F Unknown Unknown Unknown nek5000 000000000040F572 Unknown Unknown Unknown nek5000 000000000040E0DF Unknown Unknown Unknown nek5000 0000000000404A1E Unknown Unknown Unknown libc-2.17.so 00002B44DFCEDB35 __libc_start_main Unknown Unknown nek5000 0000000000404929 Unknown Unknown Unknown Sincerely, Armand. Le 07/06/2018 ? 15:43, nek5000-users at lists.mcs.anl.gov a ?crit : > > > Dear Armand, > > > The attached .usr file seems to work ok... just a few > > small modifications to the .usr file you provided. > > > I think the main issue was the declaration of some of the > > variables in useric. > > > Best, > > > Paul > > > ------------------------------------------------------------------------ > *From:* Nek5000-users on > behalf of nek5000-users at lists.mcs.anl.gov > > *Sent:* Thursday, June 7, 2018 3:51:09 AM > *To:* nek5000-users at lists.mcs.anl.gov > *Subject:* [Nek5000-users] Initial Condition & Recycling > Dear All, > > > In an attempt to simulate an established turbulent flow over a flat > plate with a recycling method for the inlet, it has to my attention that > a (1/7)th Power Law would be suitable as an initial condition. However > the solver divergences and I think I know why. > > Here the layout of the recycling procedure : > > 1. call set_inflow_fpt in userchk > > 2. If it is the 1st call then call setp_inflow_fpt_setup > > 3. call rescale_fpt (which rescales the copied field to a user specified > mean velocity ubar) > > 4.In the rescale_fpt routine we call get_flux_and_area which gives the > flux and area of a face with cbc == 'v ' so a user specified velocity > boundary condition. > > 4. a) As the initial condition is wrong once that routine sums the flux > on the boundary it returns zero in this case and the variable scale > which is divided by the latter returns infinity ! > > > However I set the initial conditions as in many other examples, such as > the turbInflow. Would have an insight that could lead me to a solution ? > > > Please find attached the related files. > > > Sincerely, > > Armand, ONERA - The French Aerospace Lab. > > > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 11 09:27:49 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 11 Jun 2018 16:27:49 +0200 Subject: [Nek5000-users] Initial Condition & Recycling In-Reply-To: References: Message-ID: To avoid the division by zero (for P_N/P_N), you may need to define nu_star = param(2) ! constant implicit viscosity part in usrdat. Otherwise, nu_star may be undefined in the routine split_vis, and the vdiff array will be zero. On 06/11/2018 03:46 PM, nek5000-users at lists.mcs.anl.gov wrote: > Dear Paul, > > > Indeed thanks for the input However, the volume average velocity still > tends to zero and as a consequence the rescaling routine tries to > compensate making the code unstable until it diverges. The reason why > the volume average velocity tends to zero could simply be because the > flow relaminarizes in the absence of fluctuations in the prescribed > inlet. From my understanding the recycling routine only rescales the > flow to a target mean velocity without adding fluctuations. > > To be sure of that change of dynamic I set up a simulation with a > (1/7)th velocity profile at the inlet (same code but without recycling) > convinced that the flow would laminarize and tend to a "blasius-like" > profile. To my surprise the flow remained steady. > > Finally as I want to use a dynamic Smagorinsky model for this project I > set the filtering to none and variable properties to TRUE however it > seems that there is a division by zero which I couldn't trace back in > the source code. > > > Just after starting to compute the eddy viscosity : > > > Calculating eddy visosity > flt amp 0.0000 0.0000 0.0000 0.0000 0.0000 0.0500 0.5000 0.9500 > flt trn 1.0000 1.0000 1.0000 1.0000 1.0000 0.9500 0.5000 0.0500 > forrtl: severe (71): integer divide by zero > Image PC Routine Line > Source > nek5000 00000000008CF105 Unknown Unknown Unknown > libpthread-2.17.s 00002B44DF7BD370 Unknown Unknown Unknown > nek5000 00000000005D70BE Unknown Unknown Unknown > nek5000 0000000000408121 Unknown Unknown Unknown > nek5000 0000000000404D3F Unknown Unknown Unknown > nek5000 000000000040F572 Unknown Unknown Unknown > nek5000 000000000040E0DF Unknown Unknown Unknown > nek5000 0000000000404A1E Unknown Unknown Unknown > libc-2.17.so 00002B44DFCEDB35 __libc_start_main Unknown Unknown > nek5000 0000000000404929 Unknown Unknown Unknown > > > Sincerely, > Armand. > > Le 07/06/2018 ? 15:43, nek5000-users at lists.mcs.anl.gov a ?crit : >> >> >> Dear Armand, >> >> >> The attached .usr file seems to work ok... just a few >> >> small modifications to the .usr file you provided. >> >> >> I think the main issue was the declaration of some of the >> >> variables in useric. >> >> >> Best, >> >> >> Paul >> >> >> ------------------------------------------------------------------------ >> *From:* Nek5000-users on >> behalf of nek5000-users at lists.mcs.anl.gov >> >> *Sent:* Thursday, June 7, 2018 3:51:09 AM >> *To:* nek5000-users at lists.mcs.anl.gov >> *Subject:* [Nek5000-users] Initial Condition & Recycling >> >> Dear All, >> >> >> In an attempt to simulate an established turbulent flow over a flat >> plate with a recycling method for the inlet, it has to my attention that >> a (1/7)th Power Law would be suitable as an initial condition. However >> the solver divergences and I think I know why. >> >> Here the layout of the recycling procedure : >> >> 1. call set_inflow_fpt in userchk >> >> 2. If it is the 1st call then call setp_inflow_fpt_setup >> >> 3. call rescale_fpt (which rescales the copied field to a user specified >> mean velocity ubar) >> >> 4.In the rescale_fpt routine we call get_flux_and_area which gives the >> flux and area of a face with cbc == 'v ' so a user specified velocity >> boundary condition. >> >> 4. a) As the initial condition is wrong once that routine sums the flux >> on the boundary it returns zero in this case and the variable scale >> which is divided by the latter returns infinity ! >> >> >> However I set the initial conditions as in many other examples, such as >> the turbInflow. Would have an insight that could lead me to a solution ? >> >> >> Please find attached the related files. >> >> >> Sincerely, >> >> Armand, ONERA - The French Aerospace Lab. >> >> >> >> >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > From nek5000-users at lists.mcs.anl.gov Tue Jun 12 07:09:21 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 12 Jun 2018 17:39:21 +0530 Subject: [Nek5000-users] Mesh modification in the periodic hill tutorial Message-ID: Hello Everyone, I am a brand new user of Nek5000. I started off with the periodic hill tutorial. In the mesh modification section, the expression y'(x,y) = y + (3-y)(A + A\tanh(|x-B|-C)) where A,B,C are 0.166,4.5 and 3.5 respectively is yielding y' ~ 0.88 for x,y = 0. But, as far as i think as the hill height is chosen to be 1, the expression should yield a value (y') >=1 for x=0 and all 0<=y<=3. Kindly, help me regarding this. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Tue Jun 12 11:20:10 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 12 Jun 2018 16:20:10 +0000 Subject: [Nek5000-users] Mesh modification in the periodic hill tutorial In-Reply-To: References: Message-ID: Thanks for the feedback. You are right, the equation given in the tutorial is incorrect. The code, however is correct, yielding a y? of about 0.99 at x,y = 0. The tutorial page has been fixed. For any future issues, we encourage the community to open an issue via github. From: Nek5000-users [mailto:nek5000-users-bounces at lists.mcs.anl.gov] On Behalf Of nek5000-users at lists.mcs.anl.gov Sent: Tuesday, June 12, 2018 7:09 AM To: nek5000-users at lists.mcs.anl.gov Subject: [Nek5000-users] Mesh modification in the periodic hill tutorial Hello Everyone, I am a brand new user of Nek5000. I started off with the periodic hill tutorial. In the mesh modification section, the expression y'(x,y) = y + (3-y)(A + A\tanh(|x-B|-C)) where A,B,C are 0.166,4.5 and 3.5 respectively is yielding y' ~ 0.88 for x,y = 0. But, as far as i think as the hill height is chosen to be 1, the expression should yield a value (y') >=1 for x=0 and all 0<=y<=3. Kindly, help me regarding this. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 13 10:22:06 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 13 Jun 2018 17:22:06 +0200 (CEST) Subject: [Nek5000-users] mshconvert.py elements between 100'000 and 1'000'000 Message-ID: Hello Neks (espeacially Marco), I am facing a genmap error like below : ERROR: error reading 1 1 33124 aborting 530 in routine rdbdry. I have elements in between 100'000 and 1'000'000. I have seen that there was an issue before same like this. I know that it was the problem of mshconvert.py while converting the elements (elements in between 100'000 and 1'000'000). Could you please tell me how can I solve this problem? Thank you -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 13 11:05:04 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 13 Jun 2018 16:05:04 +0000 Subject: [Nek5000-users] mshconvert.py elements between 100'000 and 1'000'000 In-Reply-To: References: Message-ID: I had to modify mshconvert.py to match the format required by Nek5000. I strongly encourage you to export your mesh in a exodus format and use the exo2nek script to convert to a Nek500 format. It is the recommended workflow for importing mesh and you will be able to get support from the Nek5000 developer and community. Marco On Jun 13, 2018, at 11:22 AM, nek5000-users at lists.mcs.anl.gov wrote: Hello Neks (espeacially Marco), I am facing a genmap error like below : ERROR: error reading 1 1 33124 aborting 530 in routine rdbdry. I have elements in between 100'000 and 1'000'000. I have seen that there was an issue before same like this. I know that it was the problem of mshconvert.py while converting the elements (elements in between 100'000 and 1'000'000). Could you please tell me how can I solve this problem? Thank you _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 13 11:10:56 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 13 Jun 2018 18:10:56 +0200 (CEST) Subject: [Nek5000-users] mshconvert.py elements between 100'000 and 1'000'000 In-Reply-To: References: Message-ID: Thanks Marco. I think I found and solved the problem. It is mapping now. Even I also would like to use exodus but i was experiencing difficulty in Sideset numbers. Somewhere there was troubles to convert the sideset numbers effectively. And exodus wont work for HEXA8 meshes. Thanks Sijo De: "nek5000-users" ?: "nek5000-users" Envoy?: Mercredi 13 Juin 2018 18:05:04 Objet: Re: [Nek5000-users] mshconvert.py elements between 100'000 and 1'000'000 I had to modify mshconvert.py to match the format required by Nek5000. I strongly encourage you to export your mesh in a exodus format and use the exo2nek script to convert to a Nek500 format. It is the recommended workflow for importing mesh and you will be able to get support from the Nek5000 developer and community. Marco On Jun 13, 2018, at 11:22 AM, [ mailto:nek5000-users at lists.mcs.anl.gov | nek5000-users at lists.mcs.anl.gov ] wrote: Hello Neks (espeacially Marco), I am facing a genmap error like below : ERROR: error reading 1 1 33124 aborting 530 in routine rdbdry. I have elements in between 100'000 and 1'000'000. I have seen that there was an issue before same like this. I know that it was the problem of mshconvert.py while converting the elements (elements in between 100'000 and 1'000'000). Could you please tell me how can I solve this problem? Thank you _______________________________________________ Nek5000-users mailing list [ mailto:Nek5000-users at lists.mcs.anl.gov | Nek5000-users at lists.mcs.anl.gov ] https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 13 11:54:13 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 13 Jun 2018 18:54:13 +0200 (CEST) Subject: [Nek5000-users] Periodic-AUTO using pretex problem Message-ID: Hello Neks, I was setting up a mesh of NACA foil in 3D with periodic BC on both sides. Since there was some problem with converting BC's from ICEM to NEK5000. I gave a space as BC and then using prex I fill up the empy spaces by using periodic Auto button. But its running for a long time. It means its running through the same elements again and again. I tired on a simple case (example a cube). it worked well. The difference between the NACA case and cube is that, along the spanwise direction of NACA I did not give any elements (i just give a thickness to the mesh) but for the cube there were 2 elements in Z direction. So could you please tell me how can I solve this problem? Thanks in advance Sijo GEORGE -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 13 14:17:27 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 13 Jun 2018 19:17:27 +0000 Subject: [Nek5000-users] Periodic-AUTO using pretex problem In-Reply-To: References: Message-ID: Dear Sijo, I would recommend using n2to3 to extrude the 2D geometry and then periodicity will be built in. Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Wednesday, June 13, 2018 11:54:13 AM To: nek5000-users Subject: [Nek5000-users] Periodic-AUTO using pretex problem Hello Neks, I was setting up a mesh of NACA foil in 3D with periodic BC on both sides. Since there was some problem with converting BC's from ICEM to NEK5000. I gave a space as BC and then using prex I fill up the empy spaces by using periodic Auto button. But its running for a long time. It means its running through the same elements again and again. I tired on a simple case (example a cube). it worked well. The difference between the NACA case and cube is that, along the spanwise direction of NACA I did not give any elements (i just give a thickness to the mesh) but for the cube there were 2 elements in Z direction. So could you please tell me how can I solve this problem? Thanks in advance Sijo GEORGE -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 13 15:22:47 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 13 Jun 2018 22:22:47 +0200 (CEST) Subject: [Nek5000-users] Periodic-AUTO using pretex problem In-Reply-To: References: Message-ID: Thanks Paul. Can I convert a 2D mesh with a small thickness in Z direction (3D ) using n2to3? The thing is, I use ICEM for meshing and converting it into .msh format. Then I use mshconvert.py for the conversion to NEK5000. So for the mshconvert.py I make a small thickness on the mesh to make HEXA8 mesh. Or do you have any solution for this too? Thank in advance Sijo De: "nek5000-users" ?: "nek5000-users" Envoy?: Mercredi 13 Juin 2018 21:17:27 Objet: Re: [Nek5000-users] Periodic-AUTO using pretex problem Dear Sijo, I would recommend using n2to3 to extrude the 2D geometry and then periodicity will be built in. Paul From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Wednesday, June 13, 2018 11:54:13 AM To: nek5000-users Subject: [Nek5000-users] Periodic-AUTO using pretex problem Hello Neks, I was setting up a mesh of NACA foil in 3D with periodic BC on both sides. Since there was some problem with converting BC's from ICEM to NEK5000. I gave a space as BC and then using prex I fill up the empy spaces by using periodic Auto button. But its running for a long time. It means its running through the same elements again and again. I tired on a simple case (example a cube). it worked well. The difference between the NACA case and cube is that, along the spanwise direction of NACA I did not give any elements (i just give a thickness to the mesh) but for the cube there were 2 elements in Z direction. So could you please tell me how can I solve this problem? Thanks in advance Sijo GEORGE _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 13 15:33:13 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 13 Jun 2018 20:33:13 +0000 Subject: [Nek5000-users] Periodic-AUTO using pretex problem In-Reply-To: References: , Message-ID: Dear Sijo, Attached is a code n3to2.f --- written 10 years ago and not tested since. You can try this; or you can just write a script to extract the xy coordinates and requisite bcs from your 3D .rea file. No guarantees on the attached, but it's intent is to take a single-slice 3D Rea file and convert it to 2D. Assumption is that your elements are aligned such that the "t" direction in the unit cube is aligned with z in physical space. Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Wednesday, June 13, 2018 3:22:47 PM To: nek5000-users Subject: Re: [Nek5000-users] Periodic-AUTO using pretex problem Thanks Paul. Can I convert a 2D mesh with a small thickness in Z direction (3D ) using n2to3? The thing is, I use ICEM for meshing and converting it into .msh format. Then I use mshconvert.py for the conversion to NEK5000. So for the mshconvert.py I make a small thickness on the mesh to make HEXA8 mesh. Or do you have any solution for this too? Thank in advance Sijo ________________________________ De: "nek5000-users" ?: "nek5000-users" Envoy?: Mercredi 13 Juin 2018 21:17:27 Objet: Re: [Nek5000-users] Periodic-AUTO using pretex problem Dear Sijo, I would recommend using n2to3 to extrude the 2D geometry and then periodicity will be built in. Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Wednesday, June 13, 2018 11:54:13 AM To: nek5000-users Subject: [Nek5000-users] Periodic-AUTO using pretex problem Hello Neks, I was setting up a mesh of NACA foil in 3D with periodic BC on both sides. Since there was some problem with converting BC's from ICEM to NEK5000. I gave a space as BC and then using prex I fill up the empy spaces by using periodic Auto button. But its running for a long time. It means its running through the same elements again and again. I tired on a simple case (example a cube). it worked well. The difference between the NACA case and cube is that, along the spanwise direction of NACA I did not give any elements (i just give a thickness to the mesh) but for the cube there were 2 elements in Z direction. So could you please tell me how can I solve this problem? Thanks in advance Sijo GEORGE _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: n3to2.f Type: application/octet-stream Size: 15593 bytes Desc: n3to2.f URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 13 15:46:20 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 13 Jun 2018 22:46:20 +0200 (CEST) Subject: [Nek5000-users] Periodic-AUTO using pretex problem In-Reply-To: References: Message-ID: Thank you very much Paul. I will give a try tomorrow and let you know. thanks Sijo De: "nek5000-users" ?: "nek5000-users" Envoy?: Mercredi 13 Juin 2018 22:33:13 Objet: Re: [Nek5000-users] Periodic-AUTO using pretex problem Dear Sijo, Attached is a code n3to2.f --- written 10 years ago and not tested since. You can try this; or you can just write a script to extract the xy coordinates and requisite bcs from your 3D .rea file. No guarantees on the attached, but it's intent is to take a single-slice 3D Rea file and convert it to 2D. Assumption is that your elements are aligned such that the "t" direction in the unit cube is aligned with z in physical space. Paul From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Wednesday, June 13, 2018 3:22:47 PM To: nek5000-users Subject: Re: [Nek5000-users] Periodic-AUTO using pretex problem Thanks Paul. Can I convert a 2D mesh with a small thickness in Z direction (3D ) using n2to3? The thing is, I use ICEM for meshing and converting it into .msh format. Then I use mshconvert.py for the conversion to NEK5000. So for the mshconvert.py I make a small thickness on the mesh to make HEXA8 mesh. Or do you have any solution for this too? Thank in advance Sijo De: "nek5000-users" ?: "nek5000-users" Envoy?: Mercredi 13 Juin 2018 21:17:27 Objet: Re: [Nek5000-users] Periodic-AUTO using pretex problem Dear Sijo, I would recommend using n2to3 to extrude the 2D geometry and then periodicity will be built in. Paul From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Wednesday, June 13, 2018 11:54:13 AM To: nek5000-users Subject: [Nek5000-users] Periodic-AUTO using pretex problem Hello Neks, I was setting up a mesh of NACA foil in 3D with periodic BC on both sides. Since there was some problem with converting BC's from ICEM to NEK5000. I gave a space as BC and then using prex I fill up the empy spaces by using periodic Auto button. But its running for a long time. It means its running through the same elements again and again. I tired on a simple case (example a cube). it worked well. The difference between the NACA case and cube is that, along the spanwise direction of NACA I did not give any elements (i just give a thickness to the mesh) but for the cube there were 2 elements in Z direction. So could you please tell me how can I solve this problem? Thanks in advance Sijo GEORGE _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Thu Jun 14 10:03:17 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 14 Jun 2018 17:03:17 +0200 (CEST) Subject: [Nek5000-users] genmap error after n3to2 and n2to3 Message-ID: hello Paul, I tried your code n3to2 with slight modifications since it was throing some small errors. It is working fine now. I converted 3D to 2D using n3to2. And then I again converted to 3D by using n2to3. Now there are two problems : 1) I could not make map file. I was able to make before all conversions. And after n3to2 I tired to run genmap it thrown error like below: ABORT: SELF-CHK 1 3 2 0 Try to tighten the mesh tolerance! The I again I tried after n2to3. The same error. 2) problem with setting Periodic Conditions while using n2to3 NOTE: nlev < 3 not allowed with periodic bcs nlev = 1 ABORT Could you please help me to solve the above problems Thank you -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Thu Jun 14 10:22:46 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 14 Jun 2018 17:22:46 +0200 (CEST) Subject: [Nek5000-users] genmap error after n3to2 and n2to3 In-Reply-To: References: Message-ID: Hello Paul, I solved the second problem, It was a simple mistake from my side . But still I face first problem. Thank you De: "nek5000-users" ?: "nek5000-users" Envoy?: Jeudi 14 Juin 2018 17:03:17 Objet: [Nek5000-users] genmap error after n3to2 and n2to3 hello Paul, I tried your code n3to2 with slight modifications since it was throing some small errors. It is working fine now. I converted 3D to 2D using n3to2. And then I again converted to 3D by using n2to3. Now there are two problems : 1) I could not make map file. I was able to make before all conversions. And after n3to2 I tired to run genmap it thrown error like below: ABORT: SELF-CHK 1 3 2 0 Try to tighten the mesh tolerance! The I again I tried after n2to3. The same error. 2) problem with setting Periodic Conditions while using n2to3 NOTE: nlev < 3 not allowed with periodic bcs nlev = 1 ABORT Could you please help me to solve the above problems Thank you _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 18 01:11:44 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 18 Jun 2018 13:11:44 +0700 Subject: [Nek5000-users] maketools Message-ID: Hi Neks, I downloaded recent version of NEK5000. When I try to ./makenek reatore2 I get: ./maketools reatore2/ ---------------------- Make reatore2... ---------------------- make[1]: Entering directory '/home/vladimir/Nek5000/tools/reatore2' /usr/bin/gfortran -c -DMAXNEL=150000 -cpp -mcmodel=medium reatore2.f /usr/bin/gcc -c -DUNDERSCORE -mcmodel=medium byte.c /usr/bin/gfortran -c -DMAXNEL=150000 -cpp -mcmodel=medium strings.f strings.f:17:26: if (indx1(string,input,len).ne.0) return 1 Warning: Rank mismatch in argument ?s2? at (1) (scalar and rank-1) [-Wargument-mismatch] strings.f:44:26: if (indx1(string,input,len).ne.0) return 1 Warning: Rank mismatch in argument ?s2? at (1) (scalar and rank-1) [-Wargument-mismatch] /usr/bin/gfortran -o /home/vladimir/Nek5000/bin/reatore2 reatore2.o byte.o strings.o /usr/bin/gfortran -c -DMAXNEL=150000 -cpp -mcmodel=medium re2torea.f re2torea.f:122:25: * call buf_to_xyz(buf,x,y,z,ifbswap,ndim,wdsizi)* 1 *Error: Actual argument contains too few elements for dummy argument ?buf? (30/50) at (1)* make[1]: *** [makefile:19: re2torea.o] Error 1 make[1]: Leaving directory '/home/vladimir/Nek5000/tools/reatore2' ERROR: reatore2 failed to compile! make: *** [makefile:4: all] Error 1 Also some other tools like: genmap and prex/pretex do not compile. What it can be ? Regards, Vatslav -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 18 03:49:53 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 18 Jun 2018 10:49:53 +0200 Subject: [Nek5000-users] maketools In-Reply-To: References: Message-ID: What version of Nek5000 and GNU gcc are you using? -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Monday 18th June 2018 8:12 > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] maketools > > Hi Neks, > > I downloaded recent version of NEK5000. > When I try to ./makenek reatore2 I get: > > ./maketools reatore2/ > ---------------------- > Make reatore2... > ---------------------- > make[1]: Entering directory /home/vladimir/Nek5000/tools/reatore2 > /usr/bin/gfortran -c -DMAXNEL=150000 -cpp -mcmodel=medium? reatore2.f? > /usr/bin/gcc? -c? -DUNDERSCORE -mcmodel=medium byte.c > /usr/bin/gfortran -c -DMAXNEL=150000 -cpp -mcmodel=medium? strings.f? > strings.f:17:26: > > ? ? ? ? ? if (indx1(string,input,len).ne.0) return > ? ? ? ? ? ? ? ? ? ? ? ? ? 1 > Warning: Rank mismatch in argument ?s2? at (1) (scalar and rank-1) [-Wargument-mismatch] > strings.f:44:26: > > ? ? ? ? ? if (indx1(string,input,len).ne.0) return > ? ? ? ? ? ? ? ? ? ? ? ? ? 1 > Warning: Rank mismatch in argument ?s2? at (1) (scalar and rank-1) [-Wargument-mismatch] > /usr/bin/gfortran -o /home/vladimir/Nek5000/bin/reatore2 reatore2.o byte.o strings.o? > /usr/bin/gfortran -c -DMAXNEL=150000 -cpp -mcmodel=medium? re2torea.f? > re2torea.f:122:25: > > ? ? ? ? ? call buf_to_xyz(buf,x,y,z,ifbswap,ndim,wdsizi) > ? ? ? ? ? ? ? ? ? ? ? ? ?1 > Error: Actual argument contains too few elements for dummy argument ?buf? (30/50) at (1) > make[1]: *** [makefile:19: re2torea.o] Error 1 > make[1]: Leaving directory /home/vladimir/Nek5000/tools/reatore2 > > ERROR: reatore2 failed to compile! > make: *** [makefile:4: all] Error 1 > > Also some other tools like: genmap and prex/pretex do not compile. > What it can be ? >
Regards, > Vatslav > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Mon Jun 18 04:16:11 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 18 Jun 2018 16:16:11 +0700 Subject: [Nek5000-users] maketools Message-ID: Nek5000 Release v18.0-1 gcc-fortran-8.1.1+20180531-1 *Regards, **Vatslav* -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 18 04:29:49 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 18 Jun 2018 11:29:49 +0200 Subject: [Nek5000-users] maketools In-Reply-To: References: Message-ID: Your problem including a workaround is discussed here: https://github.com/Nek5000/Nek5000/issues/497 We will fix this in the upcoming release v18. For now, I suggest to use latest release (v17) instead of the latest master on GitHub. -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Monday 18th June 2018 11:20 > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] maketools > > Nek5000 Release v18.0-1 > gcc-fortran-8.1.1+20180531-1 > > Regards, > Vatslav > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Mon Jun 18 05:02:06 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 18 Jun 2018 17:02:06 +0700 Subject: [Nek5000-users] maketools Message-ID: Thank you a lot for reply. But I am afraid that for 17 version, the same features with FORTRAN 8.1. Regards, Vatslav. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 18 05:25:33 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 18 Jun 2018 12:25:33 +0200 Subject: [Nek5000-users] maketools In-Reply-To: References: Message-ID: Correct, workaround also applies for v17! Using the latest version on GitHub is typically not a good idea, unless you have very good reason to do so (beta testing, new feature, etc). -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Monday 18th June 2018 12:05 > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] maketools > > Thank you a lot for reply. > But I am afraid that for 17 version, the same features with FORTRAN 8.1. > > Regards, > Vatslav. > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Mon Jun 18 11:25:43 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 18 Jun 2018 18:25:43 +0200 (CEST) Subject: [Nek5000-users] In consistent periodic BC after prex Message-ID: Hi Neks, I did a mesh conversion from ICEM to NEK with ' ' (3 spaces) as boundary conditions instead of periodic. (It is a 3D naca profile). I tried n2to3 method for extrusion but I am not confident with that method since I already have a 3D mesh and my future works will be like that. So my problem is, I am trying to set periodic boundary conditions on both sides of the naca wing. I use prex for that. When I use prex for simple gemetries like cube and cylinder, the periodic conditions are set well. But when I try on NACA the periodic BCs become in consistent and it runs a loop to check the consistency and not generating rea file anymore. I commented some lines in source code (tools/prenek/bound.f) and tried to figure whats going on, then I generated an rea file and checked inside. I saw that some elements are not set with Periodic bcs. I understand that the loop helps to make the BC consitent. But could you please tell me why it happens to NACA and not for simple gemoteries. I am really stuck here.. Thank you Sijo GEORGE -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Tue Jun 19 12:50:48 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 19 Jun 2018 19:50:48 +0200 (CEST) Subject: [Nek5000-users] In consistent periodic BC after prex (CAUSE TO THE PROBLEM FOUND) In-Reply-To: <2002410859.275868.1529339143746.JavaMail.zimbra@eleves.ec-nantes.fr> References: <2002410859.275868.1529339143746.JavaMail.zimbra@eleves.ec-nantes.fr> Message-ID: Hello Neks, I think I found the exact problem. I made two meshes for NACA0012 from same block in ICEM. 1. Mesh with very fine refinement close to the wall. (The distance between the wall to first element in the order of -1 x 1e6 or lets say the distance between the element faces is too small) 2. Mesh with uniform distribution.(Mesh with uniform distance between faces and in the order of -1 x 1e2) The mesh 1 throws the errror (when I give Auto periodic option in Prenek, the number of NFAIL is greater than zero and it never comes to zero) and Mesh 2 works fine. So I think in prenek they have set some limits to take care of this because I have seen some variables called tol. (tolerences). Is there anything that I can change in Prenek to take care of this problem? br, Sijo GEORGE De: "Sijo George" ?: "nek5000-users" Envoy?: Lundi 18 Juin 2018 18:25:43 Objet: In consistent periodic BC after prex Hi Neks, I did a mesh conversion from ICEM to NEK with ' ' (3 spaces) as boundary conditions instead of periodic. (It is a 3D naca profile). I tried n2to3 method for extrusion but I am not confident with that method since I already have a 3D mesh and my future works will be like that. So my problem is, I am trying to set periodic boundary conditions on both sides of the naca wing. I use prex for that. When I use prex for simple gemetries like cube and cylinder, the periodic conditions are set well. But when I try on NACA the periodic BCs become in consistent and it runs a loop to check the consistency and not generating rea file anymore. I commented some lines in source code (tools/prenek/bound.f) and tried to figure whats going on, then I generated an rea file and checked inside. I saw that some elements are not set with Periodic bcs. I understand that the loop helps to make the BC consitent. But could you please tell me why it happens to NACA and not for simple gemoteries. I am really stuck here.. Thank you Sijo GEORGE -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Tue Jun 19 13:59:28 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 19 Jun 2018 20:59:28 +0200 Subject: [Nek5000-users] Opening at KTH for Nek5000 programmer Message-ID: Dear all, PDC, our computer centre at KTH in Stockholm (Sweden) has an opening for a scientific programmer (preferably with PhD), working with Nek5000. For more information, please see: https://www.kth.se/en/om/work-at-kth/lediga-jobb/what:job/jobID:213833/where:4/ Please let potential candidates know. I am of course very happy to answer any questions regarding this opening. Best regards, Philipp Schlatter KTH Mechanics, Stockholm, Sweden. From nek5000-users at lists.mcs.anl.gov Tue Jun 19 14:21:59 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 19 Jun 2018 19:21:59 +0000 Subject: [Nek5000-users] In consistent periodic BC after prex (CAUSE TO THE PROBLEM FOUND) In-Reply-To: References: <2002410859.275868.1529339143746.JavaMail.zimbra@eleves.ec-nantes.fr>, Message-ID: Dear Sijo, Prenek is a 32-bit code, so it would be difficult to resolve your problem if you have element sizes at positions that have order unity magnitude and 1.e-6 size. I have two thoughts about this. First, I wonder why you would need elements of that size (when there will be yet another order of magnitude reduction in spacing coming from the GLL points interior to these very small elements). Second, assuming you can represent the 2D mesh, I would use n2to3. It will generate the correct periodicity and you can output the mesh file in the binary .re2 format, which I believe actually stores all coordinates in 64-bit floating point. Best, Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Tuesday, June 19, 2018 12:50:48 PM To: nek5000-users Subject: Re: [Nek5000-users] In consistent periodic BC after prex (CAUSE TO THE PROBLEM FOUND) Hello Neks, I think I found the exact problem. I made two meshes for NACA0012 from same block in ICEM. 1. Mesh with very fine refinement close to the wall. (The distance between the wall to first element in the order of -1 x 1e6 or lets say the distance between the element faces is too small) 2. Mesh with uniform distribution.(Mesh with uniform distance between faces and in the order of -1 x 1e2) The mesh 1 throws the errror (when I give Auto periodic option in Prenek, the number of NFAIL is greater than zero and it never comes to zero) and Mesh 2 works fine. So I think in prenek they have set some limits to take care of this because I have seen some variables called tol. (tolerences). Is there anything that I can change in Prenek to take care of this problem? br, Sijo GEORGE ________________________________ De: "Sijo George" ?: "nek5000-users" Envoy?: Lundi 18 Juin 2018 18:25:43 Objet: In consistent periodic BC after prex Hi Neks, I did a mesh conversion from ICEM to NEK with ' ' (3 spaces) as boundary conditions instead of periodic. (It is a 3D naca profile). I tried n2to3 method for extrusion but I am not confident with that method since I already have a 3D mesh and my future works will be like that. So my problem is, I am trying to set periodic boundary conditions on both sides of the naca wing. I use prex for that. When I use prex for simple gemetries like cube and cylinder, the periodic conditions are set well. But when I try on NACA the periodic BCs become in consistent and it runs a loop to check the consistency and not generating rea file anymore. I commented some lines in source code (tools/prenek/bound.f) and tried to figure whats going on, then I generated an rea file and checked inside. I saw that some elements are not set with Periodic bcs. I understand that the loop helps to make the BC consitent. But could you please tell me why it happens to NACA and not for simple gemoteries. I am really stuck here.. Thank you Sijo GEORGE -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Tue Jun 19 14:25:16 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 19 Jun 2018 15:25:16 -0400 Subject: [Nek5000-users] Redefine .rea parameters Message-ID: Hi, After parametrization of NS equations I need to set viscos = Pr / sqrt(Ra) and conduct = 1/sqrt(Ra). However, to simplify the parameters input I want to set Ra and Pr as params 34 and 35, respectively, and then redefine params 2 and 8 in the .usr file. I found that in the 2d_annulus example this is done in the usrdat2 routine, but that isn't working (temperature fields doesn't change after modifying Rayleigh number) nor in usrdat or usrdat3. Any idea of why this could not be working or another implementation suggestion? I'm attaching the base case files Regards *Nicol?s Andr?s ?rdenes Leiva* Estudiante de Ingenier?a Civil Mec?nica Universidad T?cnica Federico Santa Mar?a Tel: +56 9 7619 2857 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: dhc.ma2 Type: application/octet-stream Size: 4744 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: dhc.re2 Type: application/octet-stream Size: 46188 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: dhc.rea Type: application/octet-stream Size: 5619 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: dhc.usr Type: application/octet-stream Size: 3162 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: SIZE Type: application/octet-stream Size: 2166 bytes Desc: not available URL: From nek5000-users at lists.mcs.anl.gov Tue Jun 19 14:34:30 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 19 Jun 2018 21:34:30 +0200 (CEST) Subject: [Nek5000-users] In consistent periodic BC after prex (CAUSE TO THE PROBLEM FOUND) In-Reply-To: References: <2002410859.275868.1529339143746.JavaMail.zimbra@eleves.ec-nantes.fr> Message-ID: Thanks Paul. Yes you were right in your first thought. I was just debugging the problem. So I just tried some meshes. In reality I would be using bigger mesh. And then I will refine with GLL points. Thanks for your replay and it will help me to move on the right way. For the second thing, I use mshconvert.py to convert meshes from ICEM and this script only works for HEXA8 elements. So I prefer to use prenek for periodic bc. And for my final objective, my domain can not be extruded in that way. Regards Sijo GEORGE De: "nek5000-users" ?: "nek5000-users" Envoy?: Mardi 19 Juin 2018 21:21:59 Objet: Re: [Nek5000-users] In consistent periodic BC after prex (CAUSE TO THE PROBLEM FOUND) Dear Sijo, Prenek is a 32-bit code, so it would be difficult to resolve your problem if you have element sizes at positions that have order unity magnitude and 1.e-6 size. I have two thoughts about this. First, I wonder why you would need elements of that size (when there will be yet another order of magnitude reduction in spacing coming from the GLL points interior to these very small elements). Second, assuming you can represent the 2D mesh, I would use n2to3. It will generate the correct periodicity and you can output the mesh file in the binary .re2 format, which I believe actually stores all coordinates in 64-bit floating point. Best, Paul From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Tuesday, June 19, 2018 12:50:48 PM To: nek5000-users Subject: Re: [Nek5000-users] In consistent periodic BC after prex (CAUSE TO THE PROBLEM FOUND) Hello Neks, I think I found the exact problem. I made two meshes for NACA0012 from same block in ICEM. 1. Mesh with very fine refinement close to the wall. (The distance between the wall to first element in the order of -1 x 1e6 or lets say the distance between the element faces is too small) 2. Mesh with uniform distribution.(Mesh with uniform distance between faces and in the order of -1 x 1e2) The mesh 1 throws the errror (when I give Auto periodic option in Prenek, the number of NFAIL is greater than zero and it never comes to zero) and Mesh 2 works fine. So I think in prenek they have set some limits to take care of this because I have seen some variables called tol. (tolerences). Is there anything that I can change in Prenek to take care of this problem? br, Sijo GEORGE De: "Sijo George" ?: "nek5000-users" Envoy?: Lundi 18 Juin 2018 18:25:43 Objet: In consistent periodic BC after prex Hi Neks, I did a mesh conversion from ICEM to NEK with ' ' (3 spaces) as boundary conditions instead of periodic. (It is a 3D naca profile). I tried n2to3 method for extrusion but I am not confident with that method since I already have a 3D mesh and my future works will be like that. So my problem is, I am trying to set periodic boundary conditions on both sides of the naca wing. I use prex for that. When I use prex for simple gemetries like cube and cylinder, the periodic conditions are set well. But when I try on NACA the periodic BCs become in consistent and it runs a loop to check the consistency and not generating rea file anymore. I commented some lines in source code (tools/prenek/bound.f) and tried to figure whats going on, then I generated an rea file and checked inside. I saw that some elements are not set with Periodic bcs. I understand that the loop helps to make the BC consitent. But could you please tell me why it happens to NACA and not for simple gemoteries. I am really stuck here.. Thank you Sijo GEORGE _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Thu Jun 21 12:25:57 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 21 Jun 2018 22:55:57 +0530 Subject: [Nek5000-users] unable to run periodic hill Message-ID: Hey, I am a new user and was trying to run Periodic Hill tutorial. I have compiled the code. When I use the genmap command and input the hillp.rea file and the tolerance value, I get the following error- At line 388 of file genmap.f (unit = 10, file = 'hillp.rea') Fortran runtime error: Sequential READ or WRITE not allowed after EOF marker, possibly use REWIND or BACKSPACE Error termination. Backtrace: #0 0x7fc2115b61aa #1 0x7fc2115b6d55 #2 0x7fc2115b751d #3 0x7fc211730471 #4 0x555a0984f353 #5 0x555a0984c245 #6 0x555a09850f08 #7 0x555a098516e5 #8 0x7fc210e861c0 #9 0x555a0983f0d9 #10 0xffffffffffffffff Can you please guide me. Regards, Pragyansh. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Thu Jun 21 13:43:18 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 21 Jun 2018 20:43:18 +0200 Subject: [Nek5000-users] unable to run periodic hill In-Reply-To: References: Message-ID: I guess something is wrong with your rea file. > On 21 Jun 2018, at 20:40, "nek5000-users at lists.mcs.anl.gov" wrote: > > Hey, > I am a new user and was trying to run Periodic Hill tutorial. I have compiled the code. When I use the genmap command and input the hillp.rea file and the tolerance value, I get the following error- > At line 388 of file genmap.f (unit = 10, file = 'hillp.rea') > Fortran runtime error: Sequential READ or WRITE not allowed after EOF marker, possibly use REWIND or BACKSPACE > > Error termination. Backtrace: > #0 0x7fc2115b61aa > #1 0x7fc2115b6d55 > #2 0x7fc2115b751d > #3 0x7fc211730471 > #4 0x555a0984f353 > #5 0x555a0984c245 > #6 0x555a09850f08 > #7 0x555a098516e5 > #8 0x7fc210e861c0 > #9 0x555a0983f0d9 > #10 0xffffffffffffffff > Can you please guide me. > Regards, > Pragyansh. > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > From nek5000-users at lists.mcs.anl.gov Thu Jun 21 16:24:22 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 21 Jun 2018 21:24:22 +0000 Subject: [Nek5000-users] Stream function Message-ID: Hi All, I am reading in a Nek output file to postx, and would like to compute a streamfunction in postx and save that to a file format I can view in Visit. After I select ?DUMP vtk ALL?, the resulting VTK file only contains a ?VORTEX? and a ?PRESSURE? variable when I plot it in VisIt. I think I might be doing something wrong. Is there some other way this could be done in either Visit or ParaView? Thanks, Hannah OUTPUT FILE 1 MAIN MENU 2 Set vtk sampling size 3 VIEW vtk S 4 DUMP vtk XYZ+S 5 DUMP vtk ALL 6 DUMP vtk surface 7 Animate vtk srf 8 Animate vtk multifield 9 Animate vtk vol 10 XYZ dump 11 XWD dump 12 pixel dump 13 set pixel window size DUMP vtk ALL This is iffmt_vtk: T nelclip 1038 1038 ntot 9342 66432 call mapreg3d mx,nx 3 8 NVERT LEXICO: 1125 3 1038 THIS is nglb 4325 3 1038 this is nglb 4325 9342 3 1038 call mapreg3d mx,nx 3 8 inside compress 9342 4325 4325 inside compress 9342 4325 4325 inside compress 9342 4325 4325 LTRUNC: string: 7 vtkfile vtkfile setwrk: T X N VORTEX ifnew_work: T T TOTAL PRESSURE 4 4 T quant: VORTEX in vortex routine ifds, ialg F 2 derivative:NO ( 64) wkmax,delt:VORTEX 9.69377422 -74.0063782 83.7001495 WORK - MAX,MIN: 9.6938 -74.006 wkmin: -7.4006E+01 4.0000E+01 1.0000E+00 0.0000E+00 43137 wkmax: 9.6938E+00 4.0048E+01 1.0000E+00 0.0000E+00 43139 Volume of domain: 1559.92 Integral of function: -0.411983E-01 inside compress 9342 4325 4325 POINT_DATA 4325 SCALARS VORTEX float LOOKUP_TABLE default minmax: -6.005E+00 1.264E+00 VORTEX setwrk: F M N PRESSURE ifnew_work: T F VORTEX 4 4 T quant: PRESSURE derivative:NO ( 64) wkmax,delt:PRESSURE 0.223040715 -0.476195186 0.699235916 WORK - MAX,MIN: 0.22304 -0.47620 wkmin: -4.7620E-01 4.0000E+01 1.0000E+00 0.0000E+00 29561 wkmax: 2.2304E-01 4.1428E+01 0.0000E+00 0.0000E+00 26753 Volume of domain: 1559.92 Integral of function: 105.272 inside compress 9342 4325 4325 SCALARS PRESSURE float LOOKUP_TABLE default minmax: -3.829E-01 2.046E-01 PRESSURE 1 MAIN MENU 2 Set vtk sampling size 3 VIEW vtk S 4 DUMP vtk XYZ+S 5 DUMP vtk ALL 6 DUMP vtk surface 7 Animate vtk srf 8 Animate vtk multifield 9 Animate vtk vol 10 XYZ dump 11 XWD dump 12 pixel dump 13 set pixel window size -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Thu Jun 21 17:02:23 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 22 Jun 2018 00:02:23 +0200 Subject: [Nek5000-users] Stream function In-Reply-To: References: Message-ID: You could as an alternative compute the stream function in nek (as Poisson euqation with the vorticity as rhs) and write out that as a scalar. Philipp On June 21, 2018 11:24:22 PM GMT+02:00, nek5000-users at lists.mcs.anl.gov wrote: >Hi All, > >I am reading in a Nek output file to postx, and would like to compute a >streamfunction in postx and save that to a file format I can view in >Visit. > >After I select ?DUMP vtk ALL?, the resulting VTK file only contains a >?VORTEX? and a ?PRESSURE? variable when I plot it in VisIt. > >I think I might be doing something wrong. Is there some other way this >could be done in either Visit or ParaView? > >Thanks, > >Hannah > >OUTPUT FILE >1 MAIN MENU >2 Set vtk sampling size >3 VIEW vtk S >4 DUMP vtk XYZ+S >5 DUMP vtk ALL >6 DUMP vtk surface >7 Animate vtk srf >8 Animate vtk multifield >9 Animate vtk vol >10 XYZ dump >11 XWD dump >12 pixel dump >13 set pixel window size > >DUMP vtk ALL >This is iffmt_vtk: T >nelclip 1038 1038 >ntot 9342 66432 >call mapreg3d mx,nx 3 8 >NVERT LEXICO: 1125 3 1038 >THIS is nglb 4325 3 1038 >this is nglb 4325 9342 3 1038 >call mapreg3d mx,nx 3 8 >inside compress 9342 4325 4325 >inside compress 9342 4325 4325 >inside compress 9342 4325 4325 >LTRUNC: string: 7 >vtkfile >vtkfile >setwrk: T X N VORTEX >ifnew_work: T T TOTAL PRESSURE 4 4 >T quant: VORTEX >in vortex routine ifds, ialg F 2 > derivative:NO ( 64) >wkmax,delt:VORTEX 9.69377422 -74.0063782 >83.7001495 >WORK - MAX,MIN: 9.6938 -74.006 >wkmin: -7.4006E+01 4.0000E+01 1.0000E+00 0.0000E+00 43137 >wkmax: 9.6938E+00 4.0048E+01 1.0000E+00 0.0000E+00 43139 >Volume of domain: 1559.92 >Integral of function: -0.411983E-01 >inside compress 9342 4325 4325 >POINT_DATA 4325 >SCALARS VORTEX float >LOOKUP_TABLE default >minmax: -6.005E+00 1.264E+00 VORTEX >setwrk: F M N PRESSURE >ifnew_work: T F VORTEX 4 4 >T quant: PRESSURE > derivative:NO ( 64) >wkmax,delt:PRESSURE 0.223040715 -0.476195186 >0.699235916 >WORK - MAX,MIN: 0.22304 -0.47620 >wkmin: -4.7620E-01 4.0000E+01 1.0000E+00 0.0000E+00 29561 >wkmax: 2.2304E-01 4.1428E+01 0.0000E+00 0.0000E+00 26753 >Volume of domain: 1559.92 >Integral of function: 105.272 >inside compress 9342 4325 4325 >SCALARS PRESSURE float >LOOKUP_TABLE default >minmax: -3.829E-01 2.046E-01 PRESSURE >1 MAIN MENU >2 Set vtk sampling size >3 VIEW vtk S >4 DUMP vtk XYZ+S >5 DUMP vtk ALL >6 DUMP vtk surface >7 Animate vtk srf >8 Animate vtk multifield >9 Animate vtk vol >10 XYZ dump >11 XWD dump >12 pixel dump >13 set pixel window size -- Sent from my Android device with K-9 Mail. Please excuse my brevity. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Thu Jun 21 20:40:07 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 22 Jun 2018 01:40:07 +0000 Subject: [Nek5000-users] os7000: Imbalance>20% Message-ID: Hello Nek?s, I recently started NEK with the example of os7000. I tried reproduce the results first with the original settings. However I noticed that in my logfile there was an warning saying imbalance > 20%. I tried to fix it by re-generate the .map file with higher mesh tolerance (0.1) but I still received the same message. The relevant part of the logfile is attached below. Could anyone help me on this please? Thanks, Jim. Number of processors: 8 REAL wdsize : 8 INTEGER wdsize : 4 Timer accuracy : 1.09E-07 Reading /global/home/hpc4076/Nek5000/examples/os7000/u3_t020_n13.rea mapping elements to processors Reading /global/home/hpc4076/Nek5000/examples/os7000/u3_t020_n13.map 6 2 2 15 15 NELV 7 2 2 15 15 NELV 0 1 1 15 15 NELV 1 2 2 15 15 NELV 2 2 2 15 15 NELV 3 2 2 15 15 NELV 4 2 2 15 15 NELV 5 2 2 15 15 NELV RANK 0 IEG 14 element load imbalance: 1 1 2 WARNING: imbalance >20% !!! done :: mapping 0.14527E-01 sec 0 objects found 103 Parameters from file: 1 1.000000 p01 DENSITY 2 -7000.000 p02 VISCOS 8 1.000000 p08 CONDUCT 10 200.0000 p10 FINTIME 12 -2.0000000E-02 p12 DT 14 200.0000 p14 IOTIME 21 5.0000000E-12 p21 DIVERGENCE 22 5.0000000E-12 p22 HELMHOLTZ 24 1.0000000E-10 p24 TOLREL 25 1.0000000E-10 p25 TOLABS 26 1.000000 p26 COURANT/NTAU 27 3.000000 p27 TORDER 59 0.0000000E+00 p59 !=0 --> use std axhelm for all elem 66 6.000000 p66 write fmt:ONLY postx uses rea value 67 6.000000 p67 read fmt: same modes as p66 76 1.00000 p76 1 = use distributed Eo-1 80 1.000000E-05 p80 eps for Orr-Som I.C. 93 80.00000 p93 Numbr of prev pressure solns saved 95 8.000000 p95 start projecting pr after p95 step 99 0.0000000E+00 p99 dealiasing:if <0 disable 103 5.0000001E-02 p103 weight of stabilizing filter (.01) done :: read .rea file 0.43078E-01 sec nelgt/nelgv/lelt: 15 15 104 lx1 /lx2 /lx3 : 14 12 14 setup mesh topology Right-handed check complete for 15 elements. OK. setvert2d: 14 414 2574 414 414 call usrsetvert done :: usrsetvert gs_setup: 256 unique labels shared pairwise times (avg, min, max): 7.71275e-06 7.50176e-06 7.93398e-06 crystal router : 5.75845e-06 5.68549e-06 5.80889e-06 all reduce : 1.63446e-05 1.61897e-05 1.65087e-05 used all_to_all method: crystal router handle bytes (avg, min, max): 9759 7716 11724 buffer bytes (avg, min, max): 2254 1728 2736 setupds time 4.8408E-03 seconds 0 14 414 15 4 max multiplicity done :: setup mesh topology call usrdat done :: usrdat generate geometry data NOTE: All elements deformed , param(59) ^=0 done :: generate geometry data call usrdat2 done :: usrdat2 regenerate geometry data 1 NOTE: All elements deformed , param(59) ^=0 done :: regenerate geometry data 1 verify mesh topology 0.000000000000000E+000 6.28318530717959 Xrange -1.00000000000000 1.00000000000000 Yrange 0.000000000000000E+000 0.000000000000000E+000 Zrange done :: verify mesh topology IFTRAN = T IFFLOW = T IFHEAT = F IFSPLIT = F IFLOMACH = F IFUSERVP = F IFUSERMV = F IFPERT = F IFADJ = F IFSTRS = F IFCHAR = T IFCYCLIC = F IFAXIS = F IFMVBD = F IFMELT = F IFNEKNEK = F IFSYNC = F IFVCOR = T IFINTQ = F IFGEOM = F IFSURT = F IFWCNO = F IFTMSH for field 1 = F IFADVC for field 1 = T IFNONL for field 1 = F Dealiasing enabled, lxd= 21 Estimated eigenvalues EIGAA = 1.35870055013617 EIGGA = 511517.514390660 EIGAE = 0.250000000000000 EIGAS = 2.299991708759382E-002 EIGGE = 511517.514390660 EIGGS = 2.00000000000000 verify mesh topology 0.000000000000000E+000 6.28318530717959 Xrange -1.00000000000000 1.00000000000000 Yrange 0.000000000000000E+000 0.000000000000000E+000 Zrange done :: verify mesh topology E-solver strategy: 1 itr mg_nx: 1 7 13 mg_ny: 1 7 13 mg_nz: 0 0 0 call usrsetvert done :: usrsetvert gs_setup: 16 unique labels shared pairwise times (avg, min, max): 1.24085e-05 1.22588e-05 1.25484e-05 crystal router : 3.45357e-06 3.35569e-06 3.55481e-06 all reduce : 4.82029e-06 4.70788e-06 5.02933e-06 used all_to_all method: crystal router handle bytes (avg, min, max): 1515 1308 1644 buffer bytes (avg, min, max): 214 192 240 setupds time 7.8091E-04 seconds 1 2 18 15 setvert2d: 4 84 144 84 84 call usrsetvert done :: usrsetvert gs_setup: 56 unique labels shared pairwise times (avg, min, max): 3.56551e-06 3.41511e-06 3.74098e-06 crystal router : 3.82754e-06 3.75211e-06 3.85903e-06 all reduce : 6.63e-06 6.52331e-06 6.71241e-06 used all_to_all method: pairwise handle bytes (avg, min, max): 820 644 980 buffer bytes (avg, min, max): 328 240 416 setupds time 6.5815E-04 seconds 2 4 84 15 setvert2d: 8 216 756 216 216 call usrsetvert done :: usrsetvert gs_setup: 136 unique labels shared pairwise times (avg, min, max): 4.08253e-06 3.8004e-06 4.26793e-06 crystal router : 4.19207e-06 4.09321e-06 4.26732e-06 all reduce : 1.05027e-05 1.04371e-05 1.0623e-05 used all_to_all method: crystal router handle bytes (avg, min, max): 5637 4548 6684 buffer bytes (avg, min, max): 1234 960 1488 setupds time 8.5796E-04 seconds 3 8 216 15 setvert2d: 10 282 1242 282 282 call usrsetvert done :: usrsetvert gs_setup: 176 unique labels shared pairwise times (avg, min, max): 4.27077e-06 4.10192e-06 4.48413e-06 crystal router : 4.99089e-06 4.8595e-06 5.07678e-06 all reduce : 1.03434e-05 1.02228e-05 1.0458e-05 used all_to_all method: pairwise handle bytes (avg, min, max): 1666 1220 1988 buffer bytes (avg, min, max): 808 624 992 setupds time 9.1538E-04 seconds 4 10 282 15 setup h1 coarse grid, nx_crs= 2 call usrsetvert done :: usrsetvert gs_setup: 16 unique labels shared pairwise times (avg, min, max): 5.17112e-06 4.7449e-06 5.40493e-06 crystal router : 4.43193e-06 4.32599e-06 4.55589e-06 all reduce : 6.15264e-06 6.08228e-06 6.2291e-06 used all_to_all method: crystal router handle bytes (avg, min, max): 1515 1308 1644 buffer bytes (avg, min, max): 214 192 240 done :: setup h1 coarse grid 6.504331249743700E-003 sec call usrdat3 done :: usrdat3 set initial conditions nekuic (1) for ifld 1 vmax: 3.128112017413449E-002 call nekuic for vel xyz min 0.0000 -1.0000 0.0000 uvwpt min -0.44449E-15 -0.99263E-05 0.0000 0.0000 0.0000 xyz max 6.2832 1.0000 0.0000 uvwpt max 0.99726 0.99769E-05 0.0000 0.0000 0.0000 done :: set initial conditions call userchk chk0: 0 1 0.000000000000000E+000 1.267294399195043E-009 chk0: 0 1 0.000000000000000E+000 1.267294399195043E-009 chk0: 0 1 0.000000000000000E+000 1.267294399195043E-009 chk0: 0 1 0.000000000000000E+000 1.267294399195043E-009 chk0: 0 1 0.000000000000000E+000 1.267294399195043E-009 chk0: 0 1 0.000000000000000E+000 1.267294399195043E-009 chk0: 0 1 0.000000000000000E+000 1.267294399195043E-009 chk0: 0 1 0.000000000000000E+000 1.267294399195043E-009 done :: userchk gridpoints unique/tot: 2574 2940 dofs: 2496 2160 Initialization successfully completed 0.12906 sec Starting time loop ... DT/DTCFL/DTFS/DTINIT 0.200E-01 0.000E+00 0.294-316 0.200E-01 Step 1, time= 2.0000000E-02, DT= 2.0000000E-02, C= 0.475 0.0000E+00 0.0000E+00 Solving for fluid 1 Hmholtz VELX 1 6.7551E-07 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELX 2 6.7015E-08 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELX 3 1.0385E-08 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELX 4 2.9327E-09 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELX 5 3.8378E-10 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELX 6 3.9996E-11 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELX 7 3.2944E-12 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELX 6 3.2944E-12 6.7551E-07 5.0000E-12 1 Hmholtz VELY 1 4.5665E-06 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELY 2 3.9358E-08 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELY 3 2.7778E-09 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELY 4 4.2156E-10 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELY 5 7.7009E-11 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELY 6 5.6563E-12 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELY 7 4.9541E-13 1.4286E-04 5.0000E-12 5.0000E+01 F 1 Hmholtz VELY 6 4.9541E-13 4.5665E-06 5.0000E-12 1 5.00000E-12 1.59732E-07 1.61240E-07 9.90645E-01 1 Divergence 2 5.00000E-12 1.58558E-07 1.61240E-07 9.83365E-01 1 Divergence 3 5.00000E-12 1.54730E-07 1.61240E-07 9.59626E-01 1 Divergence 4 5.00000E-12 1.54653E-07 1.61240E-07 9.59146E-01 1 Divergence 5 5.00000E-12 1.54636E-07 1.61240E-07 9.59037E-01 1 Divergence 6 5.00000E-12 1.43472E-07 1.61240E-07 8.89799E-01 1 Divergence 7 5.00000E-12 1.38062E-07 1.61240E-07 8.56248E-01 1 Divergence 8 5.00000E-12 1.37377E-07 1.61240E-07 8.52001E-01 1 Divergence 9 5.00000E-12 1.09765E-07 1.61240E-07 6.80751E-01 1 Divergence 10 5.00000E-12 8.56204E-08 1.61240E-07 5.31011E-01 1 Divergence 11 5.00000E-12 6.13826E-08 1.61240E-07 3.80690E-01 1 Divergence 12 5.00000E-12 3.35784E-08 1.61240E-07 2.08250E-01 1 Divergence 13 5.00000E-12 2.89932E-08 1.61240E-07 1.79813E-01 1 Divergence 14 5.00000E-12 1.36096E-08 1.61240E-07 8.44059E-02 1 Divergence 15 5.00000E-12 6.17297E-09 1.61240E-07 3.82842E-02 1 Divergence 16 5.00000E-12 3.83161E-09 1.61240E-07 2.37633E-02 1 Divergence 17 5.00000E-12 2.36087E-09 1.61240E-07 1.46420E-02 1 Divergence 18 5.00000E-12 1.60883E-09 1.61240E-07 9.97784E-03 1 Divergence 19 5.00000E-12 8.99316E-10 1.61240E-07 5.57748E-03 1 Divergence 20 5.00000E-12 5.25463E-10 1.61240E-07 3.25888E-03 1 Divergence 21 5.00000E-12 3.15168E-10 1.61240E-07 1.95464E-03 1 Divergence 22 5.00000E-12 2.42188E-10 1.61240E-07 1.50203E-03 1 Divergence 23 5.00000E-12 1.70044E-10 1.61240E-07 1.05460E-03 1 Divergence 24 5.00000E-12 1.15207E-10 1.61240E-07 7.14503E-04 1 Divergence 25 5.00000E-12 3.82692E-11 1.61240E-07 2.37342E-04 1 Divergence 26 5.00000E-12 1.77564E-11 1.61240E-07 1.10124E-04 1 Divergence 27 5.00000E-12 9.30569E-12 1.61240E-07 5.77131E-05 1 Divergence 28 5.00000E-12 5.61156E-12 1.61240E-07 3.48025E-05 1 Divergence 29 5.00000E-12 3.83841E-12 1.61240E-07 2.38055E-05 1 Divergence 1 U-PRES gmres 29 3.8384E-12 1.6124E-07 5.0000E-12 9.7656E-03 1.4128E-02 1 Fluid done 2.0000E-02 2.2119E-02 filt amp 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0500 filt trn 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.9500 2.000000E-02 1 1.71539181E-03 1.71539181E-03 1.00006862E+00 1.00006862E+00 1.92512672E-13 2.80416536E-09 egn Step 2, time= 4.0000000E-02, DT= 2.0000000E-02, C= 0.475 3.2527E-02 3.2526E-02 Solving for fluid 2 Hmholtz VELX 6 1.1943E-12 3.2477E-06 5.0000E-12 2 Hmholtz VELY 5 9.7511E-13 1.9934E-06 5.0000E-12 2 U-PRES gmres 16 4.9607E-12 5.1929E-09 5.0000E-12 1.5295E-03 2.8241E-03 2 Fluid done 4.0000E-02 3.7955E-03 4.000000E-02 2 1.71539180E-03 1.71539181E-03 1.00013724E+00 1.00013724E+00 3.05755421E-13 1.65220610E-09 egn -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 22 01:16:24 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 22 Jun 2018 08:16:24 +0200 Subject: [Nek5000-users] os7000: Imbalance>20% In-Reply-To: References: Message-ID: Well if you run a 15 element case on 8 ranks. In this case your 100% imbalanced because one rank will have just one element where all others have two. On 22 Jun 2018, at 03:41, "nek5000-users at lists.mcs.anl.gov " > wrote: Hello Nek?s, ? I recently started NEK with the example of os7000. I tried reproduce the results first with the original settings. However I noticed that in my logfile there was an warning saying imbalance > 20%. I tried to fix it by re-generate the .map file with higher mesh tolerance (0.1) but? I still received the same message. The relevant part of the logfile is attached below. Could anyone help me on this please? ? Thanks, ? Jim. ? ? ? Number of processors:?????????? 8 REAL??? wdsize????? :?????????? 8 INTEGER wdsize????? :?????????? 4 Timer accuracy????? : 1.09E-07 ? ?Reading /global/home/hpc4076/Nek5000/examples/os7000/u3_t020_n13.rea??????????????????????????????????????????????????????????????????????? ?mapping elements to processors Reading /global/home/hpc4076/Nek5000/examples/os7000/u3_t020_n13.map???????????? ??????????????????????????????????????????????????????????? ???????????6?????????? 2?????????? 2????????? 15????????? 15? NELV ?????????? 7?????????? 2?????????? 2????????? 15????????? 15? NELV ?????????? 0?????????? 1?????????? 1????????? 15????????? 15? NELV ?????????? 1?????????? 2?????????? 2????????? 15????????? 15? NELV ?????????? 2?????????? 2?????????? 2????????? 15????????? 15? NELV ?????????? 3?????????? 2?????????? 2????????? 15????????? 15? NELV ?????????? 4?????????? 2?????????? 2????????? 15? ????????15? NELV ?????????? 5?????????? 2?????????? 2????????? 15????????? 15? NELV RANK???? 0 IEG????? 14 ? ?element load imbalance:??????????? 1?????????? 1?????????? 2 WARNING: imbalance >20% !!! done :: mapping?? 0.14527E-01 sec ? ? ???????????0? objects found 103?? Parameters from file: ?? 1????????? 1.000000???????? p01 DENSITY ?? 2???????? -7000.000???????? p02 VISCOS ?? 8????????? 1.000000???????? p08 CONDUCT ? 10????????? 200.0000???????? p10 FINTIME ? 12??????? -2.0000000E-02? ???p12 DT ? 14????????? 200.0000???????? p14 IOTIME ? 21???????? 5.0000000E-12???? p21 DIVERGENCE ? 22???????? 5.0000000E-12???? p22 HELMHOLTZ ? 24???????? 1.0000000E-10???? p24 TOLREL ? 25???????? 1.0000000E-10???? p25 TOLABS ? 26????????? 1.000000?????? ??p26 COURANT/NTAU ? 27????????? 3.000000???????? p27 TORDER ? 59???????? 0.0000000E+00???? p59 !=0 --> use std axhelm for all elem ? 66????????? 6.000000???????? p66 write fmt:ONLY postx uses rea value ? 67????????? 6.000000???????? p67 read fmt: same modes as p66 ? 76????????? 1.00000????????? p76 1 = use distributed Eo-1 ? 80????????? 1.000000E-05???? p80 eps for Orr-Som I.C. ? 93????????? 80.00000???????? p93 Numbr of prev pressure solns saved ? 95????????? 8.000000???????? p95 start projecting pr after p95 step ? 99???????? 0.0000000E+00???? p99??? dealiasing:if <0 disable 103???????? 5.0000001E-02???? p103?? weight of stabilizing filter (.01) ? ?done :: read .rea file?? 0.43078E-01 sec ? nelgt/nelgv/lelt:????????? 15????????? 15???????? 104 lx1? /lx2? /lx3 :????????? 14????????? 12????????? 14 setup mesh topology ?? Right-handed check complete for????? 15 elements. OK. ?? setvert2d:? 14???????? 414??????? 2574???????? 414???????? 414 call usrsetvert done :: usrsetvert ? gs_setup: 256 unique labels shared ?? pairwise times (avg, min, max): 7.71275e-06 7.50176e-06 7.93398e-06 ?? crystal router??????????????? : 5.75845e-06 5.68549e-06 5.80889e-06 ?? all reduce??????????????????? : 1.63446e-05 1.61897e-05 1.65087e-05 ?? used all_to_all method: crystal router ?? handle bytes (avg, min, max): 9759 7716 11724 ?? buffer bytes (avg, min, max): 2254 1728 2736 ?? setupds time 4.8408E-03 seconds?? 0 14???????? 414????????? 15 ?????????? 4? max multiplicity done :: setup mesh topology ? ?call usrdat done :: usrdat ? generate geometry data NOTE: All elements deformed , param(59) ^=0 done :: generate geometry data ? ?call usrdat2 done :: usrdat2 ? regenerate geometry data?????????? 1 NOTE: All elements deformed , param(59) ^=0 done :: regenerate geometry data?????????? 1 ? ?verify mesh topology ? 0.000000000000000E+000?? 6.28318530717959?????? Xrange ? -1.00000000000000??????? 1.00000000000000?????? Yrange ? 0.000000000000000E+000? 0.000000000000000E+000? Zrange done :: verify mesh topology ? ?IFTRAN?? = T IFFLOW?? = T IFHEAT?? = F IFSPLIT? = F IFLOMACH = F IFUSERVP = F IFUSERMV = F IFPERT?? = F IFADJ??? = F IFSTRS?? = F IFCHAR?? = T IFCYCLIC = F IFAXIS?? = F IFMVBD?? = F IFMELT?? = F IFNEKNEK = F IFSYNC?? = F ?? ?IFVCOR?? = T IFINTQ?? = F IFGEOM?? = F IFSURT?? = F IFWCNO?? = F ?? ?IFTMSH for field?????????? 1??? =? F IFADVC for field?????????? 1??? =? T IFNONL for field?????????? 1??? =? F ?? ?Dealiasing enabled, lxd=????????? 21 ? ?Estimated eigenvalues EIGAA =??? 1.35870055013617???? ?EIGGA =??? 511517.514390660???? ?EIGAE =?? 0.250000000000000???? ?EIGAS =?? 2.299991708759382E-002 EIGGE =??? 511517.514390660???? ?EIGGS =??? 2.00000000000000???? ?? ?verify mesh topology ? 0.000000000000000E+000?? 6.28318530717959?????? Xrange ? -1.00000000000000??????? 1.00000000000000?????? Yrange ? 0.000000000000000E+000? 0.000000000000000E+000? Zrange done :: verify mesh topology ? ??E-solver strategy:? 1 itr mg_nx:?????????? 1?????????? 7????????? 13 mg_ny:?????????? 1?????????? 7????????? 13 mg_nz:?????????? 0?????????? 0?????????? 0 call usrsetvert done :: usrsetvert ? gs_setup: 16 unique labels shared ?? pairwise times (avg, min, max): 1.24085e-05 1.22588e-05 1.25484e-05 ?? crystal router??????????????? : 3.45357e-06 3.35569e-06 3.55481e-06 ?? all reduce??????????????????? : 4.82029e-06 4.70788e-06 5.02933e-06 ?? used all_to_all method: crystal router ?? handle bytes (avg, min, max): 1515 1308 1644 ?? buffer bytes (avg, min, max): 214 192 240 ?? setupds time 7.8091E-04 seconds?? 1? 2????????? 18????????? 15 ?? setvert2d:?? 4????????? 84???????? 144????????? 84????????? 84 call usrsetvert done :: usrsetvert ? gs_setup: 56 unique labels shared ?? pairwise times (avg, min, max): 3.56551e-06 3.41511e-06 3.74098e-06 ?? crystal router??????????????? : 3.82754e-06 3.75211e-06 3.85903e-06 ?? all reduce??????????????????? : 6.63e-06 6.52331e-06 6.71241e-06 ?? used all_to_all method: pairwise ?? handle bytes (avg, min, max): 820 644 980 ?? buffer bytes (avg, min, max): 328 240 416 ?? setupds time 6.5815E-04 seconds?? 2? 4????????? 84????????? 15 ?? setvert2d:?? 8???????? 216???????? 756???????? 216???????? 216 call usrsetvert done :: usrsetvert ? gs_setup: 136 unique labels shared ?? pairwise times (avg, min, max): 4.08253e-06 3.8004e-06 4.26793e-06 ?? crystal router??????????????? : 4.19207e-06 4.09321e-06 4.26732e-06 ?? all reduce??????????????????? : 1.05027e-05 1.04371e-05 1.0623e-05 ?? used all_to_all method: crystal router ?? handle bytes (avg, min, max): 5637 4548 6684 ?? buffer bytes (avg, min, max): 1234 960 1488 ?? setupds time 8.5796E-04 seconds?? 3? 8???????? 216????????? 15 ?? setvert2d:? 10???????? 282??????? 1242???????? 282???????? 282 call usrsetvert done :: usrsetvert ? gs_setup: 176 unique labels shared ?? pairwise times (avg, min, max): 4.27077e-06 4.10192e-06 4.48413e-06 ?? crystal router??????????????? : 4.99089e-06 4.8595e-06 5.07678e-06 ?? all reduce??????????????????? : 1.03434e-05 1.02228e-05 1.0458e-05 ?? used all_to_all method: pairwise ?? handle bytes (avg, min, max): 1666 1220 1988 ?? buffer bytes (avg, min, max): 808 624 992 ?? setupds time 9.1538E-04 seconds?? 4 10???????? 282????????? 15 setup h1 coarse grid, nx_crs=?????????? 2 call usrsetvert done :: usrsetvert ? gs_setup: 16 unique labels shared ?? pairwise times (avg, min, max): 5.17112e-06 4.7449e-06 5.40493e-06 ?? crystal router??????????????? : 4.43193e-06 4.32599e-06 4.55589e-06 ?? all reduce??????????????????? : 6.15264e-06 6.08228e-06 6.2291e-06 ?? used all_to_all method: crystal router ?? handle bytes (avg, min, max): 1515 1308 1644 ?? buffer bytes (avg, min, max): 214 192 240 done :: setup h1 coarse grid?? 6.504331249743700E-003? sec ? ?call usrdat3 done :: usrdat3 ? set initial conditions nekuic (1) for ifld??????????? 1 vmax:? 3.128112017413449E-002 call nekuic for vel? ?xyz min???? 0.0000????? -1.0000?????? 0.0000??? ?uvwpt min -0.44449E-15 -0.99263E-05?? 0.0000???? ??0.0000?????? 0.0000??? ?xyz max???? 6.2832?????? 1.0000?????? 0.0000??? ?uvwpt max? 0.99726????? 0.99769E-05?? 0.0000?????? 0.0000?????? 0.0000??? ?done :: set initial conditions ? ?call userchk chk0:?????????? 0?????????? 1? 0.000000000000000E+000 ?1.267294399195043E-009 chk0:?????????? 0?????????? 1? 0.000000000000000E+000? 1.267294399195043E-009 chk0:?????????? 0?????????? 1? 0.000000000000000E+000? 1.267294399195043E-009 chk0:?????????? 0?????????? 1? 0.000000000000000E+000? 1.267294399195043E-009 chk0:?????????? 0?????????? 1? 0.000000000000000E+000? 1.267294399195043E-009 chk0:?????????? 0?????????? 1? 0.000000000000000E+000? 1.267294399195043E-009 chk0:?????????? 0?????????? 1? 0.000000000000000E+000? 1.267294399195043E-009 chk0:??????? ???0?????????? 1? 0.000000000000000E+000? 1.267294399195043E-009 done :: userchk ? gridpoints unique/tot:????????? 2574???????? 2940 ? dofs:????????????????? 2496????????????????? 2160 ? ?Initialization successfully completed?? 0.12906???? sec ? Starting time loop ... ? ???? DT/DTCFL/DTFS/DTINIT?? 0.200E-01?? 0.000E+00?? 0.294-316?? 0.200E-01 Step????? 1, time= 2.0000000E-02, DT= 2.0000000E-02, C=? 0.475 0.0000E+00 0.0000E+00 ???????????? Solving for fluid ????????? 1? Hmholtz VELX?????? 1?? 6.7551E-07?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELX?????? 2?? 6.7015E-08?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELX?????? 3?? 1.0385E-08?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELX?? ????4?? 2.9327E-09?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELX?????? 5?? 3.8378E-10?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELX?????? 6?? 3.9996E-11?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELX?????? 7?? 3.2944E-12?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELX?????? 6?? 3.2944E-12?? 6.7551E-07?? 5.0000E-12 ????????? 1? Hmholtz VELY?????? 1?? 4.5665E-06?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELY?????? 2?? 3.9358E-08?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELY?????? 3?? 2.7778E-09?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELY?????? 4?? 4.2156E-10?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ?? ???????1? Hmholtz VELY?????? 5?? 7.7009E-11?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELY?????? 6?? 5.6563E-12?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELY?????? 7?? 4.9541E-13?? 1.4286E-04?? 5.0000E-12?? 5.0000E+01?? F ????????? 1? Hmholtz VELY?????? 6?? 4.9541E-13?? 4.5665E-06?? 5.0000E-12 ??? 1 5.00000E-12 1.59732E-07 1.61240E-07 9.90645E-01?????? 1 Divergence ??? 2 5.00000E-12 1.58558E-07 1.61240E-07 9.83365E-01?????? 1 Divergence ??? 3 5.00000E-12 1.54730E-07 1.61240E-07 9.59626E-01?????? 1 Divergence ??? 4 5.00000E-12 1.54653E-07 1.61240E-07 9.59146E-01?????? 1 Divergence ??? 5 5.00000E-12 1.54636E-07 1.61240E-07 9.59037E-01?????? 1 Divergence ??? 6 5.00000E-12 1.43472E-07 1.61240E-07 8.89799E-01?????? 1 Divergence ??? 7 5.00000E-12 1.38062E-07 1.61240E-07 8.56248E-01?????? 1 Divergence ??? 8 5.00000E-12 1.37377E-07 1.61240E-07 8.52001E-01?????? 1 Divergence ??? 9 5.00000E-12 1.09765E-07 1.61240E-07 6.80751E-01?????? 1 Divergence ??10 5.00000E-12 8.56204E-08 1.61240E-07 5.31011E-01?????? 1 Divergence ?? 11 5.00000E-12 6.13826E-08 1.61240E-07 3.80690E-01?????? 1 Divergence ?? 12 5.00000E-12 3.35784E-08 1.61240E-07 2.08250E-01?????? 1 Divergence ?? 13 5.00000E-12 2.89932E-08 1.61240E-07 1.79813E-01?????? 1 Divergence ?? 14 5.00000E-12 1.36096E-08 1.61240E-07 8.44059E-02?????? 1 Divergence ?? 15 5.00000E-12 6.17297E-09 1.61240E-07 3.82842E-02?????? 1 Divergence ?? 16 5.00000E-12 3.83161E-09 1.61240E-07 2.37633E-02?????? 1 Divergence ? ?17 5.00000E-12 2.36087E-09 1.61240E-07 1.46420E-02?????? 1 Divergence ?? 18 5.00000E-12 1.60883E-09 1.61240E-07 9.97784E-03?????? 1 Divergence ?? 19 5.00000E-12 8.99316E-10 1.61240E-07 5.57748E-03?????? 1 Divergence ?? 20 5.00000E-12 5.25463E-10 1.61240E-07 3.25888E-03?????? 1 Divergence ?? 21 5.00000E-12 3.15168E-10 1.61240E-07 1.95464E-03?????? 1 Divergence ?? 22 5.00000E-12 2.42188E-10 1.61240E-07 1.50203E-03?????? 1 Divergence ?? 23 5.00000E-12 1.70044E-10 1.61240E-07 1.05460E-03?????? 1 Divergence ?? 24 5.00000E-12 1.15207E-10 1.61240E-07 7.14503E-04?????? 1 Divergence ?? 25 5.00000E-12 3.82692E-11 1.61240E-07 2.37342E-04?????? 1 Divergence ?? 26 5.00000E-12 1.77564E-11 1.61240E-07 1.10124E-04?????? 1 Divergence ?? 27 5.00000E-12 9.30569E-12 1.61240E-07 5.77131E-05?????? 1 Divergence ?? 28 5.00000E-12 5.61156E-12 1.61240E-07 3.48025E-05?????? 1 Divergence ?? 29 5.00000E-12 3.83841E-12 1.61240E-07 2.38055E-05?????? 1 Divergence ????????? 1? U-PRES gmres????? 29?? 3.8384E-12?? 1.6124E-07?? 5.0000E-12?? 9.7656E-03?? 1.4128E-02 ????????? 1? Fluid done? 2.0000E-02? 2.2119E-02 filt amp 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0500 filt trn 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.9500 2.000000E-02???? 1? 1.71539181E-03? 1.71539181E-03? 1.00006862E+00? 1.00006862E+00? 1.92512672E-13? 2.80416536E-09 egn Step????? 2, time= 4.0000000E-02, DT= 2.0000000E-02, C=? 0.475 3.2527E-02 3.2526E-02 ???????????? Solving for fluid ????????? 2? Hmholtz VELX?????? 6?? 1.1943E-12?? 3.2477E-06?? 5.0000E-12 ????????? 2? Hmholtz VELY?????? 5?? 9.7511E-13?? 1.9934E-06?? 5.0000E-12 ????????? 2? U-PRES gmres????? 16?? 4.9607E-12?? 5.1929E-09?? 5.0000E-12?? 1.5295E-03?? 2.8241E-03 ????????? 2? Fluid done? 4.0000E-02? 3.7955E-03 4.000000E-02???? 2? 1.71539180E-03? 1.71539181E-03? 1.00013724E+00? 1.00013724E+00? 3.05755421E-13? 1.65220610E-09 egn ? _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 22 18:20:05 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Sat, 23 Jun 2018 01:20:05 +0200 (CEST) Subject: [Nek5000-users] torque calculation on airfoil Message-ID: Hello Neks, Finally I was successfully able to import mesh from ICEM to Nek5000 with periodic BCs. Now I have to set up a fluid structure interaction code in NEK5000. The test case is called self sustained pitching of an airfoil. For that I had to calculate torque about the Elastic Axis(EA). I know that using toque_calc function I can calculate torque in x and y direction. But I am bit confused with the input parameters for this function. Here I show the code, real x0(3) save x0 data x0 /3*0/ x0(1) = 0.29016 ! X- Direction (Chord wise direction where chord length = 1.56) x0(2) = 0.0 ! Y -Direction x0(3) = 0.2 ! Z- Direction. (Span wise direction where total span width = 0.4) n = nx1*ny1*nz1*nelv if (istep.eq.0) call set_obj ! define objects for surface integrals scale = 2. ! Cd = F/(.5 rho U^2 ) = 2*F call torque_calc(scale,x0,.true.,.true.) I just have to confirm that, 1) Here x0 is the Elastic Axis point right? 2) Am I correct with the Axis notations? (for example: x0(1) represents X direction?) 3)In fact, the simulation is 3D, but the thickness is just 0.4 and there is no motion in Z direction. So, to calculate torque for pitching do I have to give the value for x0(3)? If yes is that okay if I give the midpoint in z direction? Thanks in advance Sijo GEORGE -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 22 19:11:31 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Sat, 23 Jun 2018 00:11:31 +0000 Subject: [Nek5000-users] torque calculation on airfoil In-Reply-To: References: Message-ID: Hi Sijo, Torque should simply compute the torque in each direction about the 3 axes emanating from the point prescribed by the coordinates of X0. Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Friday, June 22, 2018 6:20:05 PM To: nek5000-users Subject: [Nek5000-users] torque calculation on airfoil Hello Neks, Finally I was successfully able to import mesh from ICEM to Nek5000 with periodic BCs. Now I have to set up a fluid structure interaction code in NEK5000. The test case is called self sustained pitching of an airfoil. For that I had to calculate torque about the Elastic Axis(EA). I know that using toque_calc function I can calculate torque in x and y direction. But I am bit confused with the input parameters for this function. Here I show the code, real x0(3) save x0 data x0 /3*0/ x0(1) = 0.29016 ! X- Direction (Chord wise direction where chord length = 1.56) x0(2) = 0.0 ! Y -Direction x0(3) = 0.2 ! Z- Direction. (Span wise direction where total span width = 0.4) n = nx1*ny1*nz1*nelv if (istep.eq.0) call set_obj ! define objects for surface integrals scale = 2. ! Cd = F/(.5 rho U^2 ) = 2*F call torque_calc(scale,x0,.true.,.true.) I just have to confirm that, 1) Here x0 is the Elastic Axis point right? 2) Am I correct with the Axis notations? (for example: x0(1) represents X direction?) 3)In fact, the simulation is 3D, but the thickness is just 0.4 and there is no motion in Z direction. So, to calculate torque for pitching do I have to give the value for x0(3)? If yes is that okay if I give the midpoint in z direction? Thanks in advance Sijo GEORGE -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 25 05:55:30 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 25 Jun 2018 13:55:30 +0300 Subject: [Nek5000-users] =?utf-8?q?Smoothness_of_the_derivatives?= Message-ID: Hi, Neks! 1) I am doing a DNS study of turbulent pipe jets and looking at turbulent kinetic energy budgets. I take derivatives via gradm1 subroutine, for example: call gradm1(uxdx,uxdy,uxdz,ux) After all, if I look at my dissipation field (via outpost), I see some wrong values on the surface between spectral elements. I want to filter them using: call col2( uxdx ,bm1,ntot) call dssum( uxdx ,lx1,ly1,lz1) call col2( uxdx ,binvm1,ntot) call dsavg(dxux) for every array. But conversely it leads to an increase in gaps. What am I doing wrong? 2) How does a filter-function in dssum look and how much points does it use for filtering?? ? Best regards, Vlad. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 25 08:57:38 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 25 Jun 2018 15:57:38 +0200 Subject: [Nek5000-users] Smoothness of the derivatives In-Reply-To: References: Message-ID: This is correct, derivatives in SEM are not C0. Your code forces the field to be C0 but it does not make it smooth across elements. Typically filtering doesn?t help. Why do you want a smooth derivative field? > On 25 Jun 2018, at 12:55, "nek5000-users at lists.mcs.anl.gov" wrote: > > Hi, Neks! > > 1) I am doing a DNS study of turbulent pipe jets and looking at turbulent kinetic energy budgets. > > I take derivatives via gradm1 subroutine, for example: > > call gradm1(uxdx,uxdy,uxdz,ux) > > After all, if I look at my dissipation field (via outpost), I see some wrong values on the surface between spectral elements. > I want to filter them using: > > call col2(uxdx,bm1,ntot) > call dssum(uxdx,lx1,ly1,lz1) > call col2(uxdx,binvm1,ntot) > > call dsavg(dxux) > > for every array. But conversely it leads to an increase in gaps. What am I doing wrong? > > 2) How does a filter-function in dssum look and how much points does it use for filtering? ? > > Best regards, > Vlad. > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > From nek5000-users at lists.mcs.anl.gov Mon Jun 25 10:54:18 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 25 Jun 2018 18:54:18 +0300 Subject: [Nek5000-users] =?utf-8?q?Smoothness_of_the_derivatives?= In-Reply-To: References: Message-ID: Because I need to analyze the dissipation field ???????????, 25 ???? 2018?., 20:58 +07:00 ?? nek5000-users at lists.mcs.anl.gov : >This is correct, derivatives in SEM are not C0. Your code forces the field to be C0 but it does not make it smooth across elements. Typically filtering doesn?t help. Why do you want a smooth derivative field? > > > On 25 Jun 2018, at 12:55, " nek5000-users at lists.mcs.anl.gov " < nek5000-users at lists.mcs.anl.gov> wrote: > > Hi, Neks! > > 1) I am doing a DNS study of turbulent pipe jets and looking at turbulent kinetic energy budgets. > > I take derivatives via gradm1 subroutine, for example: > > call gradm1(uxdx,uxdy,uxdz,ux) > > After all, if I look at my dissipation field (via outpost), I see some wrong values on the surface between spectral elements. > I want to filter them using: > > call col2(uxdx,bm1,ntot) > call dssum(uxdx,lx1,ly1,lz1) > call col2(uxdx,binvm1,ntot) > > call dsavg(dxux) > > for every array. But conversely it leads to an increase in gaps. What am I doing wrong? > > 2) How does a filter-function in dssum look and how much points does it use for filtering? ? > > Best regards, > Vlad. > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > >_______________________________________________ >Nek5000-users mailing list >Nek5000-users at lists.mcs.anl.gov >https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Mon Jun 25 11:03:01 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Mon, 25 Jun 2018 18:03:01 +0200 Subject: [Nek5000-users] Smoothness of the derivatives In-Reply-To: References: Message-ID: Hi, I guess your only chance is to increase the resolution, which will make the discontinuities of the derivatives decrease. This is one of the characteristics of spectral methods; you will see a lack of resolution directly in the fields. Similar resolution with other methods will not give you more accurate results, but they appear nicer (smoother). Indeed, filtering does not help much. But if you want to try, make sure you use a filter that actually goes beyond one element (e.g. using a Laplace operator). Philipp On 2018-06-25 17:54, nek5000-users at lists.mcs.anl.gov wrote: > Because I need to analyze the dissipation field > > ???????????, 25 ???? 2018?., 20:58 +07:00 ?? > nek5000-users at lists.mcs.anl.gov : > > This is correct, derivatives in SEM are not C0. Your code forces the > field to be C0 but it does not make it smooth across elements. > Typically filtering doesn?t help. Why do you want a smooth > derivative field? > > > > On 25 Jun 2018, at 12:55, "nek5000-users at lists.mcs.anl.gov > " > > wrote: > > > > Hi, Neks! > > > > 1) I am doing a DNS study of turbulent pipe jets and looking at > turbulent kinetic energy budgets. > > > > I take derivatives via gradm1 subroutine, for example: > > > > call gradm1(uxdx,uxdy,uxdz,ux) > > > > After all, if I look at my dissipation field (via outpost), I see > some wrong values on the surface between spectral elements. > > I want to filter them using: > > > > call col2(uxdx,bm1,ntot) > > call dssum(uxdx,lx1,ly1,lz1) > > call col2(uxdx,binvm1,ntot) > > > > call dsavg(dxux) > > > > for every array. But conversely it leads to an increase in gaps. > What am I doing wrong? > > > > 2) How does a filter-function in dssum look and how much points > does it use for filtering? ? > > > > Best regards, > > Vlad. > > _______________________________________________ > > > > Nek5000-users mailing list > > > > Nek5000-users at lists.mcs.anl.gov > > > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > From nek5000-users at lists.mcs.anl.gov Tue Jun 26 08:34:53 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 26 Jun 2018 16:34:53 +0300 Subject: [Nek5000-users] =?utf-8?q?Smoothness_of_the_derivatives?= In-Reply-To: References: Message-ID: Hi Philipp! Thank you for your answer! In fact I have almost the DNS resolution ( the grid spacing is comparable with the Kolmogorov scale from the literature data) and rather small error in the dissipation field. But I want to see a smooth dissipation, so I really want to try to filter it. As I understood filtering procedure is in dssum subroutine. But looking at it didn't help to me to realize the process of the filtering. So could you explain, please, how can I choose the filter to be used? Cause now I think that my filter doesn't go beyond one element and it is the reason why it makes my dissipation field worse . Best regards, Vlad >???????????, 25 ???? 2018, 23:05 +07:00 ?? nek5000-users at lists.mcs.anl.gov: > >Hi, >I guess your only chance is to increase the resolution, which will make >the discontinuities of the derivatives decrease. This is one of the >characteristics of spectral methods; you will see a lack of resolution >directly in the fields. Similar resolution with other methods will not >give you more accurate results, but they appear nicer (smoother). > >Indeed, filtering does not help much. But if you want to try, make sure >you use a filter that actually goes beyond one element (e.g. using a >Laplace operator). >Philipp > >On 2018-06-25 17:54, nek5000-users at lists.mcs.anl.gov wrote: >> Because I need to analyze the dissipation field >> >> ???????????, 25 ???? 2018?., 20:58 +07:00 ?? >> nek5000-users at lists.mcs.anl.gov : >> >> This is correct, derivatives in SEM are not C0. Your code forces the >> field to be C0 but it does not make it smooth across elements. >> Typically filtering doesn?t help. Why do you want a smooth >> derivative field? >> >> >> > On 25 Jun 2018, at 12:55, " nek5000-users at lists.mcs.anl.gov >> " >> < nek5000-users at lists.mcs.anl.gov >> > wrote: >> > >> > Hi, Neks! >> > >> > 1) I am doing a DNS study of turbulent pipe jets and looking at >> turbulent kinetic energy budgets. >> > >> > I take derivatives via gradm1 subroutine, for example: >> > >> > call gradm1(uxdx,uxdy,uxdz,ux) >> > >> > After all, if I look at my dissipation field (via outpost), I see >> some wrong values on the surface between spectral elements. >> > I want to filter them using: >> > >> > call col2(uxdx,bm1,ntot) >> > call dssum(uxdx,lx1,ly1,lz1) >> > call col2(uxdx,binvm1,ntot) >> > >> > call dsavg(dxux) >> > >> > for every array. But conversely it leads to an increase in gaps. >> What am I doing wrong? >> > >> > 2) How does a filter-function in dssum look and how much points >> does it use for filtering? ? >> > >> > Best regards, >> > Vlad. >> > _______________________________________________ >> > >> > Nek5000-users mailing list >> > >> > Nek5000-users at lists.mcs.anl.gov >> >> > >> > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >> > >> >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >> >> >> >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >> >_______________________________________________ >Nek5000-users mailing list >Nek5000-users at lists.mcs.anl.gov >https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -- ? ?????????, ???????? ?????????, ?? ?? ??? -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Tue Jun 26 09:03:12 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 26 Jun 2018 16:03:12 +0200 Subject: [Nek5000-users] Smoothness of the derivatives Message-ID: Vlad, dssum will just sum up the shared points between elements - so no filtering. Note, currently there is no easy accessable mechanism in place to make your field smooth. As pointed out already modal filtering won't help. Cheers, Stefan -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Tuesday 26th June 2018 15:34 > To: nek5000-users at lists.mcs.anl.gov > Subject: Re: [Nek5000-users] Smoothness of the derivatives > > Hi Philipp! > > Thank you for your answer! > > In fact I have almost the DNS resolution (the grid spacing is comparable with the Kolmogorov scale from the literature data) and rather small error in the dissipation field. But I want to see a smooth dissipation, so I really want to try to filter it. > > As I understood filtering procedure is in dssum subroutine. But looking at it didn't help to me to realize the process of the filtering. > So could you explain, please, how can I choose the filter to be used? Cause now I think that my filter doesn't go beyond one element and it is the reason why it makes my dissipation field worse. > > Best regards, > Vlad > > > > > ???????????, 25 ???? 2018, 23:05 +07:00 ?? nek5000-users at lists.mcs.anl.gov: > > Hi, > I guess your only chance is to increase the resolution, which will make > the discontinuities of the derivatives decrease. This is one of the > characteristics of spectral methods; you will see a lack of resolution > directly in the fields. Similar resolution with other methods will not > give you more accurate results, but they appear nicer (smoother). > > Indeed, filtering does not help much. But if you want to try, make sure > you use a filter that actually goes beyond one element (e.g. using a > Laplace operator). > Philipp > > On 2018-06-25 17:54, nek5000-users at lists.mcs.anl.gov wrote: > > Because I need to analyze the dissipation field > > > > ???????????, 25 ???? 2018?., 20:58 +07:00 ?? > > nek5000-users at lists.mcs.anl.gov : > > > > This is correct, derivatives in SEM are not C0. Your code forces the > > field to be C0 but it does not make it smooth across elements. > > Typically filtering doesn?t help. Why do you want a smooth > > derivative field? > > > > > > > On 25 Jun 2018, at 12:55, "nek5000-users at lists.mcs.anl.gov > > " > > > > > wrote: > > > > > > Hi, Neks! > > > > > > 1) I am doing a DNS study of turbulent pipe jets and looking at > > turbulent kinetic energy budgets. > > > > > > I take derivatives via gradm1 subroutine, for example: > > > > > > call gradm1(uxdx,uxdy,uxdz,ux) > > > > > > After all, if I look at my dissipation field (via outpost), I see > > some wrong values on the surface between spectral elements. > > > I want to filter them using: > > > > > > call col2(uxdx,bm1,ntot) > > > call dssum(uxdx,lx1,ly1,lz1) > > > call col2(uxdx,binvm1,ntot) > > > > > > call dsavg(dxux) > > > > > > for every array. But conversely it leads to an increase in gaps. > > What am I doing wrong? > > > > > > 2) How does a filter-function in dssum look and how much points > > does it use for filtering? ? > > > > > > Best regards, > > > Vlad. > > > _______________________________________________ > > > > > > Nek5000-users mailing list > > > > > > Nek5000-users at lists.mcs.anl.gov > > > > > > > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > > > > > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > -- > ? ?????????, > > ???????? ?????????, ?? ?? ??? > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Tue Jun 26 10:30:00 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 26 Jun 2018 16:30:00 +0100 Subject: [Nek5000-users] total volume for velocity mesh Message-ID: Hi nek, Can anyone explain how volvm1 ( total volume for velocity mesh) calculates? Can it be used for different geometries? Regards, Jian -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Tue Jun 26 10:51:12 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 26 Jun 2018 15:51:12 +0000 Subject: [Nek5000-users] total volume for velocity mesh In-Reply-To: References: Message-ID: volvm1 is the volume of the velocity mesh, computed using the velocity-based quadrature weights (m1-->velocity quadrature points; m2-->pressure quadrature points) Thus: n1 = nx1*ny1*nz1*nelv n2 = nx2*ny2*nz2*nelv ! pressure points volvm1 = glsum(bm1,n1) ! sum over all points, all processors of the mass matrix volvm2 = glsum(bm2,n2) volvm1 and volvm2 should be very close to each other. Incidentally: nt = nx1*ny1*nz1*nelt voltm1 = glsum(bm1,nt) will give the volume of the fluid + solid mesh in the case of conjugate heat transfer, where nelt > nelv Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Tuesday, June 26, 2018 10:30:00 AM To: nek5000-users at lists.mcs.anl.gov Subject: [Nek5000-users] total volume for velocity mesh Hi nek, Can anyone explain how volvm1 ( total volume for velocity mesh) calculates? Can it be used for different geometries? Regards, Jian -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Tue Jun 26 10:54:40 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 26 Jun 2018 17:54:40 +0200 Subject: [Nek5000-users] Smoothness of the derivatives In-Reply-To: References: Message-ID: Hi, as Stefan says, dssum does not do a filtering, it just makes sure that a certain quantity becomes continuous over element boundaries. It just sums up the values in the points with multiplicity>1. What you want is a filter that operates in nodal space, i.e. in physical space rather than in spectral space (nodal vs modal filter). The reason for the wiggles in the dissipation (and other statistics such as e.g. convection) is related to the specific continuity constraints by Nek5000, i.e. that only the function values (via dssum) are continuous, but not the derivatives. As I wrote earlier, this does not necessarily mean that the result is inaccurate, but it is just done in weak sense. So I guess what you want is to apply a filter in nodal space. I have not done that (recently), but I guess one could apply some controlled diffusion using the Helmholtz operator, to smoothen out the highest wavenumbers. Alternatively, you could quite easily implement an own nodal filter with a given transfer function using convolution (implemented then with a global scalar products between the function and specific weight functions). Philipp On 2018-06-26 16:03, nek5000-users at lists.mcs.anl.gov wrote: > Vlad, > > dssum will just sum up the shared points between elements - so no filtering. Note, currently there is no easy accessable mechanism in place to make your field smooth. As pointed out already modal filtering won't help. > > Cheers, > Stefan > > -----Original message----- >> From:nek5000-users at lists.mcs.anl.gov >> Sent: Tuesday 26th June 2018 15:34 >> To: nek5000-users at lists.mcs.anl.gov >> Subject: Re: [Nek5000-users] Smoothness of the derivatives >> >> Hi Philipp! >> >> Thank you for your answer! >> >> In fact I have almost the DNS resolution (the grid spacing is comparable with the Kolmogorov scale from the literature data) and rather small error in the dissipation field. But I want to see a smooth dissipation, so I really want to try to filter it. >> >> As I understood filtering procedure is in dssum subroutine. But looking at it didn't help to me to realize the process of the filtering. >> So could you explain, please, how can I choose the filter to be used? Cause now I think that my filter doesn't go beyond one element and it is the reason why it makes my dissipation field worse. >> >> Best regards, >> Vlad >> >> >> >> >> ???????????, 25 ???? 2018, 23:05 +07:00 ?? nek5000-users at lists.mcs.anl.gov: >> >> Hi, >> I guess your only chance is to increase the resolution, which will make >> the discontinuities of the derivatives decrease. This is one of the >> characteristics of spectral methods; you will see a lack of resolution >> directly in the fields. Similar resolution with other methods will not >> give you more accurate results, but they appear nicer (smoother). >> >> Indeed, filtering does not help much. But if you want to try, make sure >> you use a filter that actually goes beyond one element (e.g. using a >> Laplace operator). >> Philipp >> >> On 2018-06-25 17:54, nek5000-users at lists.mcs.anl.gov wrote: >>> Because I need to analyze the dissipation field >>> >>> ???????????, 25 ???? 2018?., 20:58 +07:00 ?? >>> nek5000-users at lists.mcs.anl.gov : >>> >>> This is correct, derivatives in SEM are not C0. Your code forces the >>> field to be C0 but it does not make it smooth across elements. >>> Typically filtering doesn?t help. Why do you want a smooth >>> derivative field? >>> >>> >>> > On 25 Jun 2018, at 12:55, "nek5000-users at lists.mcs.anl.gov >>> " >>> >>> > wrote: >>> > >>> > Hi, Neks! >>> > >>> > 1) I am doing a DNS study of turbulent pipe jets and looking at >>> turbulent kinetic energy budgets. >>> > >>> > I take derivatives via gradm1 subroutine, for example: >>> > >>> > call gradm1(uxdx,uxdy,uxdz,ux) >>> > >>> > After all, if I look at my dissipation field (via outpost), I see >>> some wrong values on the surface between spectral elements. >>> > I want to filter them using: >>> > >>> > call col2(uxdx,bm1,ntot) >>> > call dssum(uxdx,lx1,ly1,lz1) >>> > call col2(uxdx,binvm1,ntot) >>> > >>> > call dsavg(dxux) >>> > >>> > for every array. But conversely it leads to an increase in gaps. >>> What am I doing wrong? >>> > >>> > 2) How does a filter-function in dssum look and how much points >>> does it use for filtering? ? >>> > >>> > Best regards, >>> > Vlad. >>> > _______________________________________________ >>> > >>> > Nek5000-users mailing list >>> > >>> > Nek5000-users at lists.mcs.anl.gov >>> >>> > >>> > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >>> > >>> >>> _______________________________________________ >>> Nek5000-users mailing list >>> Nek5000-users at lists.mcs.anl.gov >>> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >>> >>> >>> >>> _______________________________________________ >>> Nek5000-users mailing list >>> Nek5000-users at lists.mcs.anl.gov >>> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >>> >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >> >> >> -- >> ? ?????????, >> >> ???????? ?????????, ?? ?? ??? >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > From nek5000-users at lists.mcs.anl.gov Tue Jun 26 11:05:34 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 26 Jun 2018 18:05:34 +0200 Subject: [Nek5000-users] Smoothness of the derivatives In-Reply-To: References: Message-ID: Might be helpful: https://www.ffi.no/no/Forskningen/totalforsvar/applied_fluid_mechanics/Documents/Post-processing_of_marginally_resolved_spectral_element_data.pdf -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Tuesday 26th June 2018 17:55 > To: nek5000-users at lists.mcs.anl.gov > Subject: Re: [Nek5000-users] Smoothness of the derivatives > > Hi, > as Stefan says, dssum does not do a filtering, it just makes sure that a > certain quantity becomes continuous over element boundaries. It just > sums up the values in the points with multiplicity>1. > > What you want is a filter that operates in nodal space, i.e. in physical > space rather than in spectral space (nodal vs modal filter). The reason > for the wiggles in the dissipation (and other statistics such as e.g. > convection) is related to the specific continuity constraints by > Nek5000, i.e. that only the function values (via dssum) are continuous, > but not the derivatives. As I wrote earlier, this does not necessarily > mean that the result is inaccurate, but it is just done in weak sense. > > So I guess what you want is to apply a filter in nodal space. I have not > done that (recently), but I guess one could apply some controlled > diffusion using the Helmholtz operator, to smoothen out the highest > wavenumbers. Alternatively, you could quite easily implement an own > nodal filter with a given transfer function using convolution > (implemented then with a global scalar products between the function and > specific weight functions). > > Philipp > > On 2018-06-26 16:03, nek5000-users at lists.mcs.anl.gov wrote: > > Vlad, > > > > dssum will just sum up the shared points between elements - so no filtering. Note, currently there is no easy accessable mechanism in place to make your field smooth. As pointed out already modal filtering won't help. > > > > Cheers, > > Stefan > > > > -----Original message----- > >> From:nek5000-users at lists.mcs.anl.gov > >> Sent: Tuesday 26th June 2018 15:34 > >> To: nek5000-users at lists.mcs.anl.gov > >> Subject: Re: [Nek5000-users] Smoothness of the derivatives > >> > >> Hi Philipp! > >> > >> Thank you for your answer! > >> > >> In fact I have almost the DNS resolution (the grid spacing is comparable with the Kolmogorov scale from the literature data) and rather small error in the dissipation field. But I want to see a smooth dissipation, so I really want to try to filter it. > >> > >> As I understood filtering procedure is in dssum subroutine. But looking at it didn't help to me to realize the process of the filtering. > >> So could you explain, please, how can I choose the filter to be used? Cause now I think that my filter doesn't go beyond one element and it is the reason why it makes my dissipation field worse. > >> > >> Best regards, > >> Vlad > >> > >> > >> > >> > >> ???????????, 25 ???? 2018, 23:05 +07:00 ?? nek5000-users at lists.mcs.anl.gov: > >> > >> Hi, > >> I guess your only chance is to increase the resolution, which will make > >> the discontinuities of the derivatives decrease. This is one of the > >> characteristics of spectral methods; you will see a lack of resolution > >> directly in the fields. Similar resolution with other methods will not > >> give you more accurate results, but they appear nicer (smoother). > >> > >> Indeed, filtering does not help much. But if you want to try, make sure > >> you use a filter that actually goes beyond one element (e.g. using a > >> Laplace operator). > >> Philipp > >> > >> On 2018-06-25 17:54, nek5000-users at lists.mcs.anl.gov wrote: > >>> Because I need to analyze the dissipation field > >>> > >>> ???????????, 25 ???? 2018?., 20:58 +07:00 ?? > >>> nek5000-users at lists.mcs.anl.gov : > >>> > >>> This is correct, derivatives in SEM are not C0. Your code forces the > >>> field to be C0 but it does not make it smooth across elements. > >>> Typically filtering doesn?t help. Why do you want a smooth > >>> derivative field? > >>> > >>> > >>> > On 25 Jun 2018, at 12:55, "nek5000-users at lists.mcs.anl.gov > >>> " > >>> > >>> > wrote: > >>> > > >>> > Hi, Neks! > >>> > > >>> > 1) I am doing a DNS study of turbulent pipe jets and looking at > >>> turbulent kinetic energy budgets. > >>> > > >>> > I take derivatives via gradm1 subroutine, for example: > >>> > > >>> > call gradm1(uxdx,uxdy,uxdz,ux) > >>> > > >>> > After all, if I look at my dissipation field (via outpost), I see > >>> some wrong values on the surface between spectral elements. > >>> > I want to filter them using: > >>> > > >>> > call col2(uxdx,bm1,ntot) > >>> > call dssum(uxdx,lx1,ly1,lz1) > >>> > call col2(uxdx,binvm1,ntot) > >>> > > >>> > call dsavg(dxux) > >>> > > >>> > for every array. But conversely it leads to an increase in gaps. > >>> What am I doing wrong? > >>> > > >>> > 2) How does a filter-function in dssum look and how much points > >>> does it use for filtering? ? > >>> > > >>> > Best regards, > >>> > Vlad. > >>> > _______________________________________________ > >>> > > >>> > Nek5000-users mailing list > >>> > > >>> > Nek5000-users at lists.mcs.anl.gov > >>> > >>> > > >>> > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > >>> > > >>> > >>> _______________________________________________ > >>> Nek5000-users mailing list > >>> Nek5000-users at lists.mcs.anl.gov > >>> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > >>> > >>> > >>> > >>> _______________________________________________ > >>> Nek5000-users mailing list > >>> Nek5000-users at lists.mcs.anl.gov > >>> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > >>> > >> _______________________________________________ > >> Nek5000-users mailing list > >> Nek5000-users at lists.mcs.anl.gov > >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > >> > >> > >> -- > >> ? ?????????, > >> > >> ???????? ?????????, ?? ?? ??? > >> _______________________________________________ > >> Nek5000-users mailing list > >> Nek5000-users at lists.mcs.anl.gov > >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > From nek5000-users at lists.mcs.anl.gov Tue Jun 26 11:25:44 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 26 Jun 2018 16:25:44 +0000 Subject: [Nek5000-users] Smoothness of the derivatives In-Reply-To: References: , Message-ID: Here is another, on how to filter in complex domains: 1. J.S. Mullen and P.F. Fischer, "Filtering techniques for complex geometry fluid flows" Comm. in Num. Meth. in Eng. 15 pp. 9-18 (1999). It's basically a Helmholtz solve with a prescribed filter width. Paul ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Tuesday, June 26, 2018 11:05:34 AM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Smoothness of the derivatives Might be helpful: https://www.ffi.no/no/Forskningen/totalforsvar/applied_fluid_mechanics/Documents/Post-processing_of_marginally_resolved_spectral_element_data.pdf -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Tuesday 26th June 2018 17:55 > To: nek5000-users at lists.mcs.anl.gov > Subject: Re: [Nek5000-users] Smoothness of the derivatives > > Hi, > as Stefan says, dssum does not do a filtering, it just makes sure that a > certain quantity becomes continuous over element boundaries. It just > sums up the values in the points with multiplicity>1. > > What you want is a filter that operates in nodal space, i.e. in physical > space rather than in spectral space (nodal vs modal filter). The reason > for the wiggles in the dissipation (and other statistics such as e.g. > convection) is related to the specific continuity constraints by > Nek5000, i.e. that only the function values (via dssum) are continuous, > but not the derivatives. As I wrote earlier, this does not necessarily > mean that the result is inaccurate, but it is just done in weak sense. > > So I guess what you want is to apply a filter in nodal space. I have not > done that (recently), but I guess one could apply some controlled > diffusion using the Helmholtz operator, to smoothen out the highest > wavenumbers. Alternatively, you could quite easily implement an own > nodal filter with a given transfer function using convolution > (implemented then with a global scalar products between the function and > specific weight functions). > > Philipp > > On 2018-06-26 16:03, nek5000-users at lists.mcs.anl.gov wrote: > > Vlad, > > > > dssum will just sum up the shared points between elements - so no filtering. Note, currently there is no easy accessable mechanism in place to make your field smooth. As pointed out already modal filtering won't help. > > > > Cheers, > > Stefan > > > > -----Original message----- > >> From:nek5000-users at lists.mcs.anl.gov > >> Sent: Tuesday 26th June 2018 15:34 > >> To: nek5000-users at lists.mcs.anl.gov > >> Subject: Re: [Nek5000-users] Smoothness of the derivatives > >> > >> Hi Philipp! > >> > >> Thank you for your answer! > >> > >> In fact I have almost the DNS resolution (the grid spacing is comparable with the Kolmogorov scale from the literature data) and rather small error in the dissipation field. But I want to see a smooth dissipation, so I really want to try to filter it. > >> > >> As I understood filtering procedure is in dssum subroutine. But looking at it didn't help to me to realize the process of the filtering. > >> So could you explain, please, how can I choose the filter to be used? Cause now I think that my filter doesn't go beyond one element and it is the reason why it makes my dissipation field worse. > >> > >> Best regards, > >> Vlad > >> > >> > >> > >> > >> ???????????, 25 ???? 2018, 23:05 +07:00 ?? nek5000-users at lists.mcs.anl.gov: > >> > >> Hi, > >> I guess your only chance is to increase the resolution, which will make > >> the discontinuities of the derivatives decrease. This is one of the > >> characteristics of spectral methods; you will see a lack of resolution > >> directly in the fields. Similar resolution with other methods will not > >> give you more accurate results, but they appear nicer (smoother). > >> > >> Indeed, filtering does not help much. But if you want to try, make sure > >> you use a filter that actually goes beyond one element (e.g. using a > >> Laplace operator). > >> Philipp > >> > >> On 2018-06-25 17:54, nek5000-users at lists.mcs.anl.gov wrote: > >>> Because I need to analyze the dissipation field > >>> > >>> ???????????, 25 ???? 2018?., 20:58 +07:00 ?? > >>> nek5000-users at lists.mcs.anl.gov : > >>> > >>> This is correct, derivatives in SEM are not C0. Your code forces the > >>> field to be C0 but it does not make it smooth across elements. > >>> Typically filtering doesn?t help. Why do you want a smooth > >>> derivative field? > >>> > >>> > >>> > On 25 Jun 2018, at 12:55, "nek5000-users at lists.mcs.anl.gov > >>> " > >>> > >>> > wrote: > >>> > > >>> > Hi, Neks! > >>> > > >>> > 1) I am doing a DNS study of turbulent pipe jets and looking at > >>> turbulent kinetic energy budgets. > >>> > > >>> > I take derivatives via gradm1 subroutine, for example: > >>> > > >>> > call gradm1(uxdx,uxdy,uxdz,ux) > >>> > > >>> > After all, if I look at my dissipation field (via outpost), I see > >>> some wrong values on the surface between spectral elements. > >>> > I want to filter them using: > >>> > > >>> > call col2(uxdx,bm1,ntot) > >>> > call dssum(uxdx,lx1,ly1,lz1) > >>> > call col2(uxdx,binvm1,ntot) > >>> > > >>> > call dsavg(dxux) > >>> > > >>> > for every array. But conversely it leads to an increase in gaps. > >>> What am I doing wrong? > >>> > > >>> > 2) How does a filter-function in dssum look and how much points > >>> does it use for filtering? ? > >>> > > >>> > Best regards, > >>> > Vlad. > >>> > _______________________________________________ > >>> > > >>> > Nek5000-users mailing list > >>> > > >>> > Nek5000-users at lists.mcs.anl.gov > >>> > >>> > > >>> > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > >>> > > >>> > >>> _______________________________________________ > >>> Nek5000-users mailing list > >>> Nek5000-users at lists.mcs.anl.gov > >>> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > >>> > >>> > >>> > >>> _______________________________________________ > >>> Nek5000-users mailing list > >>> Nek5000-users at lists.mcs.anl.gov > >>> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > >>> > >> _______________________________________________ > >> Nek5000-users mailing list > >> Nek5000-users at lists.mcs.anl.gov > >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > >> > >> > >> -- > >> ? ?????????, > >> > >> ???????? ?????????, ?? ?? ??? > >> _______________________________________________ > >> Nek5000-users mailing list > >> Nek5000-users at lists.mcs.anl.gov > >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Tue Jun 26 11:35:23 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 26 Jun 2018 16:35:23 +0000 Subject: [Nek5000-users] Stream function Message-ID: Hi Phillip, I am using the ?Blasius? example test outputting the streamfunction as a scalar. I included my code below. I am not sure what I am doing wrong. In userchk, I added ?compute streamfunction from vorticity? from the psi_omega example, but it does not compute the psi properly? (max_psi = min_psi = 0 in every step) c----------------------------------------------------------------------- subroutine userchk include 'SIZE' include 'TOTAL' common /myblas/ ub(lx1,ly1,lz1,lelt),vb(lx1,ly1,lz1,lelt) common /blasiusr/ u(lx1,ly1,lz1,lelv),v(lx1,ly1,lz1,lelv) common /blasiusg/ bin(lx1,ly1,lz1,lelv) common /scrns/ dum(lx1*ly1*lz1*lelv) common /xtream/ psi(lx1*ly1*lz1*lelt) $ , rhs(lx1*ly1*lz1*lelt) $ , h1 (lx1*ly1*lz1*lelt) $ , h2 (lx1*ly1*lz1*lelt) integer bin real normu(50),normv(50) real xmax,xmin,dx save xmax,xmin,dx n = nx1*ny1*nz1*nelv c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c Compute streamfunction from vorticity call col2(rhs,bm1,n) call rone (h1 ,n) call rzero(h2 ,n) tol = param(22) imsh = 1 call hmholtz('psi ',psi,rhs,h1,h2,v1mask,vmult,imsh,tol,200,1) c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . if (istep.eq.0) call outpost(vx,vy,vz,pr,psi,' ') c Compute delta* do i=1,n dum(i) = 1.-vx(i,1,1,1) enddo tot_deficit = glsc2(dum,bm1,n) xmin = glmin(xm1,n) xmax = glmax(xm1,n) delta_star = tot_deficit/(xmax-xmin) psimin = glmin(psi,n) psimax = glmax(psi,n) if (nid.eq.0) write(6,1) istep,time,delta_star,psimin,psimax 1 format(i8,1p4e13.5,' blasius: delta*') return end -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Tue Jun 26 13:22:23 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Tue, 26 Jun 2018 20:22:23 +0200 Subject: [Nek5000-users] Stream function In-Reply-To: References: Message-ID: Hi, To correctly compute the stream function, the rhs of the Poisson equation needs to be the (negative) vorticity. Therefore, the line call col2(rhs,bm1,n) is wrong, and should be something like call col3(rhs, vorticity, bm1, n) where vorticity should be the computed vorticity using comp_vort. I guess your calculation of delta* only works for parallel boundary layers. Philipp On 2018-06-26 18:35, nek5000-users at lists.mcs.anl.gov wrote: > Hi Phillip, > > I am using the ?Blasius? example test outputting the streamfunction as a > scalar. > > I included my code below. I am not sure what I am doing wrong. > > In userchk, I added ?compute streamfunction from vorticity? from the > psi_omega example, but it does not compute the psi properly? (max_psi = > min_psi = 0 in every step) > > c----------------------------------------------------------------------- > > ????? subroutine userchk > > ????? include 'SIZE' > > ????? include 'TOTAL' > > ???? ?common /myblas/ ub(lx1,ly1,lz1,lelt),vb(lx1,ly1,lz1,lelt) > > ????? common /blasiusr/ u(lx1,ly1,lz1,lelv),v(lx1,ly1,lz1,lelv) > > ????? common /blasiusg/ bin(lx1,ly1,lz1,lelv) > > ????? common /scrns/??? dum(lx1*ly1*lz1*lelv) > > ????? common /xtream/ psi(lx1*ly1*lz1*lelt) > > ???? $????????????? , rhs(lx1*ly1*lz1*lelt) > > ???? $????????????? , h1 (lx1*ly1*lz1*lelt) > > ???? $????????????? , h2 (lx1*ly1*lz1*lelt) > > ????? integer bin > > ????? real normu(50),normv(50) > > ????? real xmax,xmin,dx > > ????? save xmax,xmin,dx > > ????? n = nx1*ny1*nz1*nelv > > c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > > c???? Compute streamfunction from vorticity > > ????? call col2(rhs,bm1,n) > > ????? call rone (h1 ,n) > > ????? call rzero(h2 ,n) > > ????? tol = param(22) > > ????? imsh?? = 1 > > ????? call hmholtz('psi ',psi,rhs,h1,h2,v1mask,vmult,imsh,tol,200,1) > > c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > > ????? if (istep.eq.0) call outpost(vx,vy,vz,pr,psi,'?? ') > > c???? Compute delta* > > ????? do i=1,n > > ???????? dum(i) = 1.-vx(i,1,1,1) > > ????? enddo > > ????? tot_deficit = glsc2(dum,bm1,n) > > ????? xmin??????? = glmin(xm1,n) > > ????? xmax??????? = glmax(xm1,n) > > ????? delta_star? = tot_deficit/(xmax-xmin) > > ????? psimin????? = glmin(psi,n) > > ????? psimax????? = glmax(psi,n) > > ????? if (nid.eq.0) write(6,1) istep,time,delta_star,psimin,psimax > > ??? 1 format(i8,1p4e13.5,'? blasius: delta*') > > ????? return > > ????? end > > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > From nek5000-users at lists.mcs.anl.gov Wed Jun 27 04:39:09 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 27 Jun 2018 10:39:09 +0100 Subject: [Nek5000-users] total volume for velocity mesh Message-ID: Dear Paul, Thanks for your reply. In that way, can I say that the volume in channel can be calculated as Lx (length in x direction set in box file) * Ly * Lz? For a pipe, do you think the code is still working to obtain the volume? Besides, I am stuck with finding pipe cells where particles exist in lagragian particle tracking. Do you have any suggestion, I can give a limit of pipe cell to determine which particle belongs to? Kind regards, Jian -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 27 04:53:07 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 27 Jun 2018 10:53:07 +0100 Subject: [Nek5000-users] cell coordinates in the pipe mesh Message-ID: Hi nek, Is there anyone know what the cell coordinates refer to in the pipe mesh? In the channel, I can understand the cell coordinates are the ones of rectangual cell centre. For the pipe which has a squished cell in the mesh, what does the cooridate refer to? kind regards, Jian -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 27 05:26:15 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 27 Jun 2018 12:26:15 +0200 Subject: [Nek5000-users] cell coordinates in the pipe mesh Message-ID: Not sure what you are looking for. You'll find the GLL gridpoints of all (local) elements in XM1,YM1,ZM1. There is nothing special when your elements are deformed like in pipe. Stefan -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Wednesday 27th June 2018 11:53 > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] cell coordinates in the pipe mesh > > Hi nek, > > Is there anyone know what the cell coordinates refer to in the pipe mesh? In the channel, I can understand the cell coordinates are the ones of rectangual cell centre. For the pipe which has a? > squished cell in the mesh, what does the cooridate refer to? > > kind regards, > > Jian? > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Wed Jun 27 05:30:28 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 27 Jun 2018 12:30:28 +0200 Subject: [Nek5000-users] total volume for velocity mesh Message-ID: Yes, the code works for arbitrary meshes! findpts() returns (iel,nid,r,s,t) for a given position X. Check the hemi example. Stefan -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Wednesday 27th June 2018 11:40 > To: nek5000-users at lists.mcs.anl.gov > Subject: Re: [Nek5000-users] total volume for velocity mesh > > Dear Paul, > > Thanks for your reply. In that way, can I say that the volume in channel can be calculated as Lx (length in x direction set in box file) * Ly * Lz? For a pipe, do you think the code is still working to obtain the volume? > > Besides, I am stuck with finding pipe cells where particles exist in lagragian particle tracking. Do you have any suggestion, I can give a limit of pipe cell to determine which particle belongs to? > > Kind regards, > > Jian? > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Wed Jun 27 04:54:07 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 27 Jun 2018 11:54:07 +0200 Subject: [Nek5000-users] Running genmap Message-ID: Good morning to all users, I've created a mesh on GAMBIT and then converted it to Nek using a Matlab software that I found in this community. The conversion seems to have worked fine, but right now I want to launch the simulation with several processors. Therefore, I need to run the "genmap" function and I am having trouble with it. Could anyone explain me how to create the .map file? I've tried writing the command "genmap" in the terminal with the corresponding directories but it's not working. The .rea/.usr/SIZE, etc files are in directory /home3/Desktop/R0025 While the genmap file is in the directory /home3/Programmi/nek5_svn/trunk/tools/genmap. What should I exactly write in the terminal as a command? Thank you very much, Roger -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 27 08:03:42 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 27 Jun 2018 13:03:42 +0000 Subject: [Nek5000-users] Running genmap In-Reply-To: References: Message-ID: Roger, did you build genmap? If you did you should see a ?bin? directory under the nek5000 directory that contains executables like genmap, genbox, ? All executable are build by running './maketools' all in the tools directory. Marco > On Jun 27, 2018, at 5:54 AM, nek5000-users at lists.mcs.anl.gov wrote: > > Good morning to all users, > > I've created a mesh on GAMBIT and then converted it to Nek using a Matlab software that I found in this community. > > The conversion seems to have worked fine, but right now I want to launch the simulation with several processors. Therefore, I need to run the "genmap" function and I am having trouble with it. > > Could anyone explain me how to create the .map file? I've tried writing the command "genmap" in the terminal with the corresponding directories but it's not working. > > The .rea/.usr/SIZE, etc files are in directory /home3/Desktop/R0025 > While the genmap file is in the directory /home3/Programmi/nek5_svn/trunk/tools/genmap. > > What should I exactly write in the terminal as a command? > > Thank you very much, > > Roger > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Wed Jun 27 14:46:54 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 27 Jun 2018 21:46:54 +0200 Subject: [Nek5000-users] Genmap, Periodic Condition and Matlab converter Message-ID: Good afternoon community, I am having a problem running a simulation on Nek5000. I will try to summarize the steps so that maybe you can easily identify a solution to the problem: 1. Mesh creation using Gambit with Inlet, Outlet, Wall and Periodic Boundary conditions. The mesh has a total of about 120,000 elements. 2. Mesh converstion to Nek format using a Matlab converter. More precisely, the one I found in this link: https://lists.mcs.anl.gov/pipermail/nek5000-users/2010-June/000645.html 3. Running genmap to create the partitions. At this point, I get the following error: PERIODIC MISMATCH 2. I've tried eliminating the boundary conditions and the map file is done correctly, which means that the error is probably on the boundary conditions. I've also checked mesh and every periodic boundary condition seems to be applied properly. The only thing that makes me think is wrong is the matlab conversion from Gambit to Nek5000. In the output mesh, the Periodic Condition is defined as follows (the following is an example): P 5470 2 0 0.00000 0.00000 0.00000 0.00000 Which esentially means that face 2 from element 5470 is periodic with face 0 of element 0. The 3rd and 4th column should represent the face and number of element which is periodic with the first one. In the output mesh after the matlab conversion, these two elements are always 0 and I believe this is a mistake. Has any of you had any experience with this matlab conversor and periodic boundary conditions? Could any of you guide me towards a solution for this problem? Thank you very much, Roger -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Wed Jun 27 16:10:21 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Wed, 27 Jun 2018 23:10:21 +0200 Subject: [Nek5000-users] Running genmap In-Reply-To: References: Message-ID: Thanks for the answer Marco, Unfortunately I am pretty new to the software so I didn't know these kind of basic things. The problem is solved now. Thanks. El dc., 27 de juny 2018, 15:05, va escriure: > Roger, > > did you build genmap? If you did you should see a ?bin? directory under > the nek5000 directory that contains executables like genmap, genbox, ? > > All executable are build by running './maketools' all in the tools > directory. > > Marco > > > On Jun 27, 2018, at 5:54 AM, nek5000-users at lists.mcs.anl.gov wrote: > > > > Good morning to all users, > > > > I've created a mesh on GAMBIT and then converted it to Nek using a > Matlab software that I found in this community. > > > > The conversion seems to have worked fine, but right now I want to launch > the simulation with several processors. Therefore, I need to run the > "genmap" function and I am having trouble with it. > > > > Could anyone explain me how to create the .map file? I've tried writing > the command "genmap" in the terminal with the corresponding directories but > it's not working. > > > > The .rea/.usr/SIZE, etc files are in directory /home3/Desktop/R0025 > > While the genmap file is in the directory > /home3/Programmi/nek5_svn/trunk/tools/genmap. > > > > What should I exactly write in the terminal as a command? > > > > Thank you very much, > > > > Roger > > _______________________________________________ > > Nek5000-users mailing list > > Nek5000-users at lists.mcs.anl.gov > > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Thu Jun 28 08:38:04 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 28 Jun 2018 14:38:04 +0100 Subject: [Nek5000-users] total volume for velocity mesh Message-ID: Hi Stefan, I used findpts() in interp_v and interp_v3v to find the velocities in particles' positions. Can you please tell me how I can return the cell coordinates that particles belong to because I didn't find any subroutine in the hemi example. Kind regards, Jian -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Thu Jun 28 08:47:31 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 28 Jun 2018 15:47:31 +0200 Subject: [Nek5000-users] total volume for velocity mesh Message-ID: What are you looking for if you say cell coordinates? It's trivial to find the coordinates of the say 8 (in 3D) element vortices as findpts returns iel and nid for a given position X. -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Thursday 28th June 2018 15:38 > To: nek5000-users at lists.mcs.anl.gov > Subject: Re: [Nek5000-users] total volume for velocity mesh > > Hi Stefan, > > I used findpts() in interp_v and interp_v3v to find the velocities in particles positions. Can you please tell me how I can return the cell coordinates that particles belong to because I didnt find any subroutine in the hemi example. > > Kind regards, > > Jian > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Thu Jun 28 14:41:53 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Thu, 28 Jun 2018 19:41:53 +0000 Subject: [Nek5000-users] Stream function In-Reply-To: References: , Message-ID: Hi Philipp, Thanks very much for your comments. Yes, the delta* works only for the parallel plate. The streamfunction computation with the Blasius example is still not working. I suspect I am not using the correct mask (vmult /tmult, imsh as well). Using the Blasius example, v1mask, vmult (imsh = 1), I dumped the streamfuntion to the temperature field. However, it only contains negative values and does not look physical (I pasted userchk below). Another Nek Example, ?mv_wall?, computes the streamfunction from the Possison equation using vorticity. It uses tmask, tmult, and imsh = 2. I tried implementing what was done in the ?mv_wall? example in the Blasius example, but the computed streamfunction is zero everywhere. Any ideas what I might be doing wrong? Any advice would be appreciated! Thanks again, Hannah c----------------------------------------------------------------------- subroutine userchk include 'SIZE' include 'TOTAL' common /myblas/ ub(lx1,ly1,lz1,lelt),vb(lx1,ly1,lz1,lelt) common /blasiusr/ u(lx1,ly1,lz1,lelv),v(lx1,ly1,lz1,lelv) common /blasiusg/ bin(lx1,ly1,lz1,lelv) common /scrns/ dum(lx1*ly1*lz1*lelv) common /xtream/ psi(lx1*ly1*lz1*lelt) $ , rhs(lx1*ly1*lz1*lelt) $ , h1 (lx1*ly1*lz1*lelt) $ , h2 (lx1*ly1*lz1*lelt) parameter (lt=lx1*ly1*lz1*lelt) common /scrns/ vort(lt,3),w1(lt),w2(lt) integer bin real normu(50),normv(50) real xmax,xmin,dx save xmax,xmin,dx n = nx1*ny1*nz1*nelv ifheat=.false. call comp_vort3(vort , w1, w2, vx, vy, vz) call copy (t,vort,n) ! Vorticity --> T ifto = .true. ! Dump vorticity as T c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c Compute streamfunction from vorticity call col3 (rhs,t,bm1,n) ! B*omega call rone (h1,n) call rzero(h2,n) ifield = 1 tol = param(22) imsh = 1 call hmholtz('psi ',psi,rhs,h1,h2,v1mask,vmult,imsh, $ tol,200,1) call copy (t,psi,n) ! Psi --> T (for output) c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . nfldt = 1 + npscal if (istep.eq.0) call outpost2(vx,vy,vz,pr,t,nfldt,' ') do i=1,n dum(i) = 1.-vx(i,1,1,1) enddo tot_deficit = glsc2(dum,bm1,n) xmin = glmin(xm1,n) xmax = glmax(xm1,n) delta_star = tot_deficit/(xmax-xmin) tmin = glmin(t,n) tmax = glmax(t,n) vortmin = glmin(vort,n) vortmax = glmax(vort,n) if (nid.eq.0) write(6,1) istep,time,delta_star,vortmin,vortmax if (nid.eq.0) write(6,1) istep,tmin,tmax 1 format(i8,1p4e13.5,' blasius: delta*') return end c----------------------------------------------------------------------- ________________________________________ From: Nek5000-users [nek5000-users-bounces at lists.mcs.anl.gov] on behalf of nek5000-users at lists.mcs.anl.gov [nek5000-users at lists.mcs.anl.gov] Sent: Tuesday, June 26, 2018 1:22 PM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Stream function Hi, To correctly compute the stream function, the rhs of the Poisson equation needs to be the (negative) vorticity. Therefore, the line call col2(rhs,bm1,n) is wrong, and should be something like call col3(rhs, vorticity, bm1, n) where vorticity should be the computed vorticity using comp_vort. I guess your calculation of delta* only works for parallel boundary layers. Philipp On 2018-06-26 18:35, nek5000-users at lists.mcs.anl.gov wrote: > Hi Phillip, > > I am using the ?Blasius? example test outputting the streamfunction as a > scalar. > > I included my code below. I am not sure what I am doing wrong. > > In userchk, I added ?compute streamfunction from vorticity? from the > psi_omega example, but it does not compute the psi properly? (max_psi = > min_psi = 0 in every step) > > c----------------------------------------------------------------------- > > subroutine userchk > > include 'SIZE' > > include 'TOTAL' > > common /myblas/ ub(lx1,ly1,lz1,lelt),vb(lx1,ly1,lz1,lelt) > > common /blasiusr/ u(lx1,ly1,lz1,lelv),v(lx1,ly1,lz1,lelv) > > common /blasiusg/ bin(lx1,ly1,lz1,lelv) > > common /scrns/ dum(lx1*ly1*lz1*lelv) > > common /xtream/ psi(lx1*ly1*lz1*lelt) > > $ , rhs(lx1*ly1*lz1*lelt) > > $ , h1 (lx1*ly1*lz1*lelt) > > $ , h2 (lx1*ly1*lz1*lelt) > > integer bin > > real normu(50),normv(50) > > real xmax,xmin,dx > > save xmax,xmin,dx > > n = nx1*ny1*nz1*nelv > > c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > > c Compute streamfunction from vorticity > > call col2(rhs,bm1,n) > > call rone (h1 ,n) > > call rzero(h2 ,n) > > tol = param(22) > > imsh = 1 > > call hmholtz('psi ',psi,rhs,h1,h2,v1mask,vmult,imsh,tol,200,1) > > c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > > if (istep.eq.0) call outpost(vx,vy,vz,pr,psi,' ') > > c Compute delta* > > do i=1,n > > dum(i) = 1.-vx(i,1,1,1) > > enddo > > tot_deficit = glsc2(dum,bm1,n) > > xmin = glmin(xm1,n) > > xmax = glmax(xm1,n) > > delta_star = tot_deficit/(xmax-xmin) > > psimin = glmin(psi,n) > > psimax = glmax(psi,n) > > if (nid.eq.0) write(6,1) istep,time,delta_star,psimin,psimax > > 1 format(i8,1p4e13.5,' blasius: delta*') > > return > > end > > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Fri Jun 29 03:47:01 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 29 Jun 2018 10:47:01 +0200 Subject: [Nek5000-users] Stream function In-Reply-To: References: Message-ID: Hi Hannah, I tried to implement the streamfunction as well (for a 2D cylinder flow) and it would appear that, doing na?vely, the tmask is set to zero everywhere. Hence, when rhs * tmask is computed in the hmholtz subroutine, rhs is set to zero everywhere and it then makes sense that the returned streamfunction is zero everywhere as well. Not sure how to do fix this properly though. Any help would be appreciated indeed :) ++ JC On 06/28/2018 09:41 PM, nek5000-users at lists.mcs.anl.gov wrote: > Hi Philipp, > > Thanks very much for your comments. Yes, the delta* works only for the parallel plate. > > The streamfunction computation with the Blasius example is still not working. I suspect I am not using the correct mask (vmult /tmult, imsh as well). > > Using the Blasius example, v1mask, vmult (imsh = 1), I dumped the streamfuntion to the temperature field. However, it only contains negative values and does not look physical (I pasted userchk below). > > Another Nek Example, ?mv_wall?, computes the streamfunction from the Possison equation using vorticity. It uses tmask, tmult, and imsh = 2. > > I tried implementing what was done in the ?mv_wall? example in the Blasius example, but the computed streamfunction is zero everywhere. > > Any ideas what I might be doing wrong? > > Any advice would be appreciated! > > Thanks again, > > Hannah > > c----------------------------------------------------------------------- > subroutine userchk > include 'SIZE' > include 'TOTAL' > > common /myblas/ ub(lx1,ly1,lz1,lelt),vb(lx1,ly1,lz1,lelt) > > common /blasiusr/ u(lx1,ly1,lz1,lelv),v(lx1,ly1,lz1,lelv) > common /blasiusg/ bin(lx1,ly1,lz1,lelv) > common /scrns/ dum(lx1*ly1*lz1*lelv) > > common /xtream/ psi(lx1*ly1*lz1*lelt) > $ , rhs(lx1*ly1*lz1*lelt) > $ , h1 (lx1*ly1*lz1*lelt) > $ , h2 (lx1*ly1*lz1*lelt) > > parameter (lt=lx1*ly1*lz1*lelt) > common /scrns/ vort(lt,3),w1(lt),w2(lt) > > integer bin > real normu(50),normv(50) > > real xmax,xmin,dx > save xmax,xmin,dx > > n = nx1*ny1*nz1*nelv > ifheat=.false. > call comp_vort3(vort , w1, w2, vx, vy, vz) > call copy (t,vort,n) ! Vorticity --> T > ifto = .true. ! Dump vorticity as T > c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > c Compute streamfunction from vorticity > call col3 (rhs,t,bm1,n) ! B*omega > call rone (h1,n) > call rzero(h2,n) > > ifield = 1 > tol = param(22) > imsh = 1 > call hmholtz('psi ',psi,rhs,h1,h2,v1mask,vmult,imsh, > $ tol,200,1) > call copy (t,psi,n) ! Psi --> T (for output) > c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > > nfldt = 1 + npscal > > if (istep.eq.0) call outpost2(vx,vy,vz,pr,t,nfldt,' ') > > do i=1,n > dum(i) = 1.-vx(i,1,1,1) > enddo > tot_deficit = glsc2(dum,bm1,n) > xmin = glmin(xm1,n) > xmax = glmax(xm1,n) > delta_star = tot_deficit/(xmax-xmin) > tmin = glmin(t,n) > tmax = glmax(t,n) > vortmin = glmin(vort,n) > vortmax = glmax(vort,n) > if (nid.eq.0) write(6,1) istep,time,delta_star,vortmin,vortmax > if (nid.eq.0) write(6,1) istep,tmin,tmax > 1 format(i8,1p4e13.5,' blasius: delta*') > > return > end > c----------------------------------------------------------------------- > > > ________________________________________ > From: Nek5000-users [nek5000-users-bounces at lists.mcs.anl.gov] on behalf of nek5000-users at lists.mcs.anl.gov [nek5000-users at lists.mcs.anl.gov] > Sent: Tuesday, June 26, 2018 1:22 PM > To: nek5000-users at lists.mcs.anl.gov > Subject: Re: [Nek5000-users] Stream function > > Hi, > To correctly compute the stream function, the rhs of the Poisson > equation needs to be the (negative) vorticity. Therefore, the line > > call col2(rhs,bm1,n) > > is wrong, and should be something like > > call col3(rhs, vorticity, bm1, n) > > where vorticity should be the computed vorticity using comp_vort. > > I guess your calculation of delta* only works for parallel boundary layers. > > Philipp > > > > On 2018-06-26 18:35, nek5000-users at lists.mcs.anl.gov wrote: >> Hi Phillip, >> >> I am using the ?Blasius? example test outputting the streamfunction as a >> scalar. >> >> I included my code below. I am not sure what I am doing wrong. >> >> In userchk, I added ?compute streamfunction from vorticity? from the >> psi_omega example, but it does not compute the psi properly? (max_psi = >> min_psi = 0 in every step) >> >> c----------------------------------------------------------------------- >> >> subroutine userchk >> >> include 'SIZE' >> >> include 'TOTAL' >> >> common /myblas/ ub(lx1,ly1,lz1,lelt),vb(lx1,ly1,lz1,lelt) >> >> common /blasiusr/ u(lx1,ly1,lz1,lelv),v(lx1,ly1,lz1,lelv) >> >> common /blasiusg/ bin(lx1,ly1,lz1,lelv) >> >> common /scrns/ dum(lx1*ly1*lz1*lelv) >> >> common /xtream/ psi(lx1*ly1*lz1*lelt) >> >> $ , rhs(lx1*ly1*lz1*lelt) >> >> $ , h1 (lx1*ly1*lz1*lelt) >> >> $ , h2 (lx1*ly1*lz1*lelt) >> >> integer bin >> >> real normu(50),normv(50) >> >> real xmax,xmin,dx >> >> save xmax,xmin,dx >> >> n = nx1*ny1*nz1*nelv >> >> c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >> >> c Compute streamfunction from vorticity >> >> call col2(rhs,bm1,n) >> >> call rone (h1 ,n) >> >> call rzero(h2 ,n) >> >> tol = param(22) >> >> imsh = 1 >> >> call hmholtz('psi ',psi,rhs,h1,h2,v1mask,vmult,imsh,tol,200,1) >> >> c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >> >> if (istep.eq.0) call outpost(vx,vy,vz,pr,psi,' ') >> >> c Compute delta* >> >> do i=1,n >> >> dum(i) = 1.-vx(i,1,1,1) >> >> enddo >> >> tot_deficit = glsc2(dum,bm1,n) >> >> xmin = glmin(xm1,n) >> >> xmax = glmax(xm1,n) >> >> delta_star = tot_deficit/(xmax-xmin) >> >> psimin = glmin(psi,n) >> >> psimax = glmax(psi,n) >> >> if (nid.eq.0) write(6,1) istep,time,delta_star,psimin,psimax >> >> 1 format(i8,1p4e13.5,' blasius: delta*') >> >> return >> >> end >> >> >> >> _______________________________________________ >> Nek5000-users mailing list >> Nek5000-users at lists.mcs.anl.gov >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users >> > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Fri Jun 29 08:38:03 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 29 Jun 2018 15:38:03 +0200 Subject: [Nek5000-users] Wall models Message-ID: Dear Neks, Do any of you have experience in turbulent wall modeling for smooth or rough regime in Nek ? One would have to fix the velocities of a determined number of points above the boundary at each time step. Is that feasible ? Sincerely, Armand. From nek5000-users at lists.mcs.anl.gov Fri Jun 29 10:44:36 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 29 Jun 2018 15:44:36 +0000 Subject: [Nek5000-users] Measure resolution for simulations with low-diffusivity scalars Message-ID: Hi, I want to evolve a scalar field \phi in my simulation with as low diffusivity (conductivity/(rhocp)) as possible. I have performed simulations with sequentially reduced diffusivity D: Simulation 1: D = 1*2.17*10^-5 m^2/s, polynomial order 7 Simulation 2: D = (1/4)*10^-5 m^2/s, polynomial order 7 Simulation 3: D = (1/4)*2.17*10^-5 m^2/s, polynomial order 11 Simulation 4: D = (1/8)*2.17*10^-5 m^2/s, polynomial order 11 Reducing the diffusivity, I keep the ratio D/dt constant, where dt is the time step. At t = 0 \phi is bounded to 0 <= \phi <= 1, and it has no sources or sinks. Currently, I check the resolution of the simulation after 25 s, by observing the range of \phi. I find these values: Simulation 1: -0.01 < \phi < 0.06 Simulation 2: -0.23 < \phi < 0.61 Simulation 3: -0.044 < \phi < 0.16 Simulation 4: -0.4 < \phi < 0.91 Indeed, the smaller the diffusivity D becomes, the worse resolution of \phi becomes. Also, it seems as increasing the polynomial order improves the resolution of \phi. However, the Courant numbers in my simulations are (on average): Simulation 1: C = 0.31 Simulation 2: C = 0.06 Simulation 3: C = 0.14 Simulation 4: C = 0.06 That the Courant number goes down with increasing diffusivity is (I think) just a consequence of reducing the time step (keeping the ratio D/dt constant). According to the Courant number, I have really great resolution in Simulation 4, but according to the range of \phi I have not. Also, the Helmholtz solver seem to reach the tolerance in fewer iterations for low values of D. Can somehow Nek output a measure of the resolution of a scalar field? How can I improve the resolution at a low D/allow for lower D and keep a good resolution? Best, Johan -------------- next part -------------- An HTML attachment was scrubbed... URL: From nek5000-users at lists.mcs.anl.gov Fri Jun 29 12:06:22 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 29 Jun 2018 19:06:22 +0200 Subject: [Nek5000-users] Measure resolution for simulations with low-diffusivity scalars Message-ID: What are you looking for? How can I get a bounded scalar solution for a given (low) diffusivity and resolution? Stefan -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Friday 29th June 2018 17:44 > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] Measure resolution for simulations with low-diffusivity scalars > > Hi, > > I want to evolve a scalar field \phi in my simulation with as low diffusivity (conductivity/(rhocp)) as possible. > I have performed simulations with sequentially reduced diffusivity D: > > Simulation 1: D = 1*2.17*10^-5 m^2/s, polynomial order 7 > Simulation 2: D = (1/4)*10^-5 m^2/s, polynomial order 7 > Simulation 3: D = (1/4)*2.17*10^-5 m^2/s, polynomial order 11 > Simulation 4: D = (1/8)*2.17*10^-5 m^2/s, polynomial order 11 > > Reducing the diffusivity, I keep the ratio D/dt constant, where dt is the time step. > At t = 0 \phi is bounded to 0 <= \phi <= 1, and it has no sources or sinks. > Currently, I check the resolution of the simulation after 25 s, by observing the range of \phi. > I find these values: > > Simulation 1: -0.01 < \phi?< 0.06 > Simulation 2: -0.23 < \phi?< 0.61 > Simulation 3: -0.044 < \phi?< 0.16 > Simulation 4: -0.4 < \phi?< 0.91 > > Indeed, the smaller the diffusivity D becomes, the worse resolution of \phi becomes. > Also, it seems as increasing the polynomial order improves the resolution of \phi. > However, the Courant numbers in my simulations are (on average): > > Simulation 1: C = 0.31 > Simulation 2: C = 0.06 > Simulation 3: C = 0.14 > Simulation 4: C = 0.06 > > That the Courant number goes down with increasing diffusivity is (I think) just? a consequence of reducing the time step (keeping the ratio D/dt constant). > According to the Courant number, I have really great resolution in Simulation > 4, but according to the range of \phi I have not. Also, the Helmholtz solver seem to reach the tolerance in fewer iterations for low values of D. > > Can somehow Nek output a measure of the resolution of a scalar field? > How can I improve the resolution at a low D/allow for lower D and keep a good resolution? > > Best, > > Johan > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users From nek5000-users at lists.mcs.anl.gov Fri Jun 29 16:46:19 2018 From: nek5000-users at lists.mcs.anl.gov (nek5000-users at lists.mcs.anl.gov) Date: Fri, 29 Jun 2018 21:46:19 +0000 Subject: [Nek5000-users] Measure resolution for simulations with low-diffusivity scalars In-Reply-To: References: Message-ID: For a high Reynolds number simulation I can check the numerical accuracy of the velocity field by checking the Courant numer in the logfile (I use a fixed time step) - how can I check the numerical accurary when simulating low-diffusivity scalars? Johan ________________________________ From: Nek5000-users on behalf of nek5000-users at lists.mcs.anl.gov Sent: Friday, June 29, 2018 7:06:22 PM To: nek5000-users at lists.mcs.anl.gov Subject: Re: [Nek5000-users] Measure resolution for simulations with low-diffusivity scalars What are you looking for? How can I get a bounded scalar solution for a given (low) diffusivity and resolution? Stefan -----Original message----- > From:nek5000-users at lists.mcs.anl.gov > Sent: Friday 29th June 2018 17:44 > To: nek5000-users at lists.mcs.anl.gov > Subject: [Nek5000-users] Measure resolution for simulations with low-diffusivity scalars > > Hi, > > I want to evolve a scalar field \phi in my simulation with as low diffusivity (conductivity/(rhocp)) as possible. > I have performed simulations with sequentially reduced diffusivity D: > > Simulation 1: D = 1*2.17*10^-5 m^2/s, polynomial order 7 > Simulation 2: D = (1/4)*10^-5 m^2/s, polynomial order 7 > Simulation 3: D = (1/4)*2.17*10^-5 m^2/s, polynomial order 11 > Simulation 4: D = (1/8)*2.17*10^-5 m^2/s, polynomial order 11 > > Reducing the diffusivity, I keep the ratio D/dt constant, where dt is the time step. > At t = 0 \phi is bounded to 0 <= \phi <= 1, and it has no sources or sinks. > Currently, I check the resolution of the simulation after 25 s, by observing the range of \phi. > I find these values: > > Simulation 1: -0.01 < \phi < 0.06 > Simulation 2: -0.23 < \phi < 0.61 > Simulation 3: -0.044 < \phi < 0.16 > Simulation 4: -0.4 < \phi < 0.91 > > Indeed, the smaller the diffusivity D becomes, the worse resolution of \phi becomes. > Also, it seems as increasing the polynomial order improves the resolution of \phi. > However, the Courant numbers in my simulations are (on average): > > Simulation 1: C = 0.31 > Simulation 2: C = 0.06 > Simulation 3: C = 0.14 > Simulation 4: C = 0.06 > > That the Courant number goes down with increasing diffusivity is (I think) just a consequence of reducing the time step (keeping the ratio D/dt constant). > According to the Courant number, I have really great resolution in Simulation > 4, but according to the range of \phi I have not. Also, the Helmholtz solver seem to reach the tolerance in fewer iterations for low values of D. > > Can somehow Nek output a measure of the resolution of a scalar field? > How can I improve the resolution at a low D/allow for lower D and keep a good resolution? > > Best, > > Johan > > > _______________________________________________ > Nek5000-users mailing list > Nek5000-users at lists.mcs.anl.gov > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users _______________________________________________ Nek5000-users mailing list Nek5000-users at lists.mcs.anl.gov https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users -------------- next part -------------- An HTML attachment was scrubbed... URL: