CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Bugs

Possible error in fvOption actuationDiskSource

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 4, 2023, 08:29
Default Possible error in fvOption actuationDiskSource
  #1
Member
 
Marķa Rosales
Join Date: Mar 2023
Location: Spain
Posts: 48
Rep Power: 3
MMRC is on a distinguished road
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?
MMRC is offline   Reply With Quote

Reply

Tags
actuationdisksource, actuatordisk, fvoptions, sinks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


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


All times are GMT -4. The time now is 16:43.