- **OpenFOAM Programming & Development**
(*https://www.cfd-online.com/Forums/openfoam-programming-development/*)

- - **calculate surface area**
(*https://www.cfd-online.com/Forums/openfoam-programming-development/82797-calculate-surface-area.html*)

calculate surface areaDeal OpenFOAM User,
I am implementing PLIC in interFOAM. Then I need to find the way to calculate the volume of each liquid occupied in each cell. I found in the primitiveMesh class two functions that can help me: void Foam: primitiveMesh::makeFaceCentresAndAreas ( const pointField& p, vectorField& fCtrs, vectorField& fAreas ) and void Foam: primitiveMesh::makeCellCentresAndVols ( const vectorField& fCtrs, const vectorField& fAreas, vectorField& cellCtrs, scalarField& cellVols ) However, I have a problem with construct pointField p in function makeFaceCentresAndAreas. Let's say we have four points: (1 0 0) (2 0 0) (2 1 0) (1 2 0) Does anyone have ideas about how to construct variable p from these four points for the input of this function? Regards, Duong |

Hi Duong, what about doing,
volScalarField alpha1Vol=mesh.V()*alpha1; volScalarField alpha2Vol=mesh.V()*(scalar(1)-alpha1); or something like this. Best. |

Hi Santiago,
Thanks for the suggestion. However, since I want to construct the interface which has a form n.x+const = 0 (n is the normal vector and x is the point), I should find value of the constant to ensure the conservation of volume fraction. Then, I must find a way to use those function. Btw, I found how to construct this pointField p. What you can do is: pointField& p(4,point(0,0,0)); p[0] = point(1,0,0); p[1] = point(2,1,0); etc.. That's how we define pointField in OpenFOAM. Regards, Duong |

Aha, I see. My answer was related to "then I need to find the way to calculate the volume of each liquid occupied in each cell". I understand that you need to calculate a plane within a cell such as the sub-volumes would be equal to those are calculated by the formulas I exposed before...
Bye. |

All times are GMT -4. The time now is 13:52. |