|
[Sponsors] | |||||
|
|
|
#1 |
|
Senior Member
Maka Mohu
Join Date: Mar 2009
Posts: 305
Rep Power: 19 ![]() |
I do the following operation but it gives wrong result (1.22005e-312):
const scalarField& ry = patch().deltaCoeffs(); // magnitude of patch-normal distance from face to cell centers: const scalarField& yn= 1.0/ry; but if I make a loop and use: const scalarField& yn= 1.0/ry[facei]; it gives correct result. How can I do mathematical operations that contain scalarFields and scalars without looping? Thanks. Best regards, Maka |
|
|
|
|
|
|
|
|
#2 |
|
Senior Member
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,908
Rep Power: 34 ![]() |
Classic mistake: reference to a temporary: if you do:
scalarField yn= 1.0/ry; all will be well. Operation 1/ry will return a COPY, i.e. a new field. You took a reference to it, which is a memory error - that's the little & bit after the scalarField. I bet you already know this - if not, time for a careful look at a good C++ book. Got it? Hrv
__________________
Hrvoje Jasak Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk |
|
|
|
|
|
|
|
|
#3 |
|
Senior Member
Maka Mohu
Join Date: Mar 2009
Posts: 305
Rep Power: 19 ![]() |
Thanks Hrv for the explanation.
Best regards, Maka. |
|
|
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| How to sum up scalarField | wese | OpenFOAM Running, Solving & CFD | 2 | August 19, 2019 18:30 |
| How to set up an AUTO_WRITE scalarField | xiao | OpenFOAM Running, Solving & CFD | 9 | July 22, 2010 04:23 |
| max for scalarField | maka | OpenFOAM Bugs | 9 | February 19, 2009 10:43 |
| Division by zero | vitke | OpenFOAM Running, Solving & CFD | 5 | September 1, 2008 06:35 |
| [CGNS] Computing a cellcentered scalarField from a vertexcentered scalarField | mbeaudoin | OpenFOAM Meshing & Mesh Conversion | 10 | February 22, 2007 08:43 |