|
[Sponsors] | |||||
|
|
|
#1 |
|
New Member
Guillaume
Join Date: Nov 2012
Posts: 8
Rep Power: 2 ![]() |
Hi everybody,
I try to create a field for my variable alphath. The value I want to set for this variable depends on space. Finally, the algorithm should look like : For all cells If ( x < xmax and x > xmin) alphath = f(x) In order to go step by step in the coding process (I'm not really a senior coder in openFoam ...), for the moment, I just try to impose, for all cells, alphath(x,y,z) = x I coded this stuff like that : forAll (mesh.cells(),celli) { alphath[celli] = mesh.C().component(vector::X)()[celli]; } Adding these lines in the code REALLY slows it down ... As a simple test, I replaced "mesh.C().component(vector::X)()[celli]" by "1.0" and the code is quick again. Do you know why the added lines slow the code down ? Would you have an alternative coding ? Thanks in advance for your help. Guillaume |
|
|
|
|
|
|
|
|
#2 |
|
Senior Member
Niels Gjoel Jacobsen
Join Date: Mar 2009
Location: Rotterdam, The Netherlands
Posts: 1,191
Rep Power: 19 ![]() |
Hi Guillaume,
I have a small guess, since you are first extracting the x-coordinate from the cell centres and then you get the i'th index (checked the code and a new volScalarField is constructed). This actually means that you make a copy of all of the x-values every time you only need one; so in the end of the day you have a process, which scales with N^2 rather than N. This should be faster: Code:
forAll( alphath, celli )
alphath[celli] = mesh.C()[celli].x();
Code:
alphath.internalField() = mesh.C().component(vector::X); Niels |
|
|
|
|
|
|
|
|
#3 |
|
New Member
Guillaume
Join Date: Nov 2012
Posts: 8
Rep Power: 2 ![]() |
Hey Niels,
thanks a lot for having taken some of your time for my problem ! Your answer was quick, detailed and (after a test just performed) very efficient ! Thanks again. Kind regards, Guillaume Last edited by Gloq; February 6, 2013 at 04:42. |
|
|
|
|
|
|
|
|
#4 |
|
Senior Member
Niels Gjoel Jacobsen
Join Date: Mar 2009
Location: Rotterdam, The Netherlands
Posts: 1,191
Rep Power: 19 ![]() |
Good!
/ Niels |
|
|
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| snappyHexMesh in parallel - FOAM Fatal IO Error | mturcios777 | OpenFOAM Running, Solving & CFD | 4 | August 10, 2012 19:18 |
| my stl surface is seen as just a line | rcastilla | OpenFOAM Meshing & Mesh Conversion | 2 | January 6, 2010 01:30 |
| Problem with Gmsh | nishant_hull | Open Source Meshers: Gmsh, Netgen, CGNS, ... | 17 | December 7, 2007 01:33 |
| for loop inside a cell_loop? | MHDWill | FLUENT | 0 | September 26, 2007 21:24 |
| NACA0012 geometry/design software needed | Franny | Main CFD Forum | 13 | July 7, 2007 15:57 |