|
[Sponsors] |
Possible error in fvOption actuationDiskSource |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
November 4, 2023, 08:29 |
Possible error in fvOption actuationDiskSource
|
#1 |
Member
Marķa Rosales
Join Date: Mar 2023
Location: Spain
Posts: 48
Rep Power: 3 |
Hello community, I have a doubt how Usource from Froude’s method is assigned to matrix because I found what I think is a mismatch compared to variableScaling method in OpenFOAM ESI class actuationDiskSource .
This class actuationDiskSource for both of its methods only computes thrust and assigned uniform contribution (loading) to each cell without taking in consideration the location of each cell in radius of the disk, as the derived class radialActuationDiskSource does. Source Codes of actuationDiskSource are: https://www.openfoam.com/documentati...8H_source.html https://www.openfoam.com/documentati...8C_source.html https://www.openfoam.com/documentati...8C_source.html If we go to function actuationDiskSource::calcFroudeMethod (in Template file) we can notice there is not calculation of scalar totalV that is total volume of cells of the disk (from the cellSet), and Usource in this method is calculated between lines 114 and 119 as: const scalar T = 2.0*rhoRef*diskArea_*magSqr(Uref & diskDir_)*a*(1 - a); for (const label celli : cells_) { Usource[celli] += ((cellsV[celli]/V())*T)*diskDir_; } As actuationDiskSource is linked to fvMesh, I think V() will be the same as cellsV[celli], and if so, that division equals to 1, so 100% of scalar T’s magnitude is assigned to each cell and not partially. I take the reference of V() being equal to cellsV from line 75: const scalarField& cellsV = mesh_.V(); And that V() is a function from fvMesh (https://www.openfoam.com/documentati...8H_source.html) that returns scalarField: //- Return cell volumes const DimensionedField<scalar, volMesh>& V() const; If we check in the other side variableScaling, totalV is calculated in lines 176 and finally Usource is defined as: for (const label celli : cells_) { Usource[celli] += (cellsV[celli]/totalV*T)*diskDir_; } Here we see that each cell will receive a contribution of T proportional to the rate between the cell volume and the total volume of the disk. Please someone review this point and clarify if in fact, there should be for Froude’s method a consideration of cellsV[celli]/totalV and not (cellsV[celli]/V()), or I’m not reading properly the code. Notes: 1) even though this links are from v2112, I'm running v2306 and it's the same code 2) from cellSetOption.H (https://www.openfoam.com/documentati...SetOption.html) there is a member function called V_() that returns SUM of volume cells, maybe we have here a typo error because a '_' missing? |
|
Tags |
actuationdisksource, actuatordisk, fvoptions, sinks |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
The role of fvoption | wjchoi | OpenFOAM Running, Solving & CFD | 2 | January 13, 2022 21:50 |
Access to Ubar_ in fvOption (Urgent Help) | mostanad | OpenFOAM Programming & Development | 18 | November 9, 2020 03:59 |
Using fvOption for adding momentum | farzadmech | OpenFOAM Programming & Development | 11 | October 20, 2020 13:55 |
use fvOption to set high temperature zone | renzhaoxin1989 | OpenFOAM | 0 | August 4, 2020 14:26 |
Using fvOption file | Raza Javed | OpenFOAM Pre-Processing | 3 | April 17, 2019 12:02 |