|
[Sponsors] |
June 7, 2011, 10:46 |
get position of interface and store it
|
#1 |
Senior Member
Join Date: Nov 2010
Posts: 113
Rep Power: 15 |
Hi all,
I am wondering if it might be possible to get and store the interface position to have it avaible for the next time step. The reason is that it would be interesting to have the distance the interface moved within one timestep. With this information the contact line velocity used in the dynamicAlphaContactAngle could be more precise as it is independent of the mesh. I would be glad for any suggestions or comments. Thank you! |
|
June 8, 2011, 12:27 |
|
#2 |
Senior Member
Pablo Higuera
Join Date: Jan 2011
Location: Auckland
Posts: 627
Rep Power: 19 |
Hi
you can try to store the alpha1 = 0.5 isosurface and then compare it. Just add the following code to the controlDict file. You can also change the surfaceFormat to raw (easier to read). Code:
functions { elevation { type surfaces; functionObjectLibs ( "libsampling.so" ); outputControl outputTime; surfaceFormat vtk; fields ( alpha1 ); surfaces ( topFreeSurface { type isoSurface; isoField alpha1; isoValue 0.5; interpolate true; } ); } } |
|
June 9, 2011, 04:06 |
|
#3 |
Senior Member
Join Date: Nov 2010
Posts: 113
Rep Power: 15 |
Thanks for the hint. So you mean that I then should read the output file from the dynamicAlphaContactAngle..C. Ok, I'll givr it a try and maybe come back with new questions thanks!
|
|
June 9, 2011, 10:37 |
|
#4 |
Senior Member
Join Date: Nov 2010
Posts: 113
Rep Power: 15 |
Hi Phicau,
thanks again for your suggestion, it works actually as you said. Do you think it would be possible to get the data as an array e.g. within my C functions? Another problem is, that I only get these information at the timesteps i print out my data, but I need them for every timestep. Thanks in advance! |
|
June 9, 2011, 11:10 |
|
#5 |
Senior Member
Pablo Higuera
Join Date: Jan 2011
Location: Auckland
Posts: 627
Rep Power: 19 |
Hi
yes, sorry for that, you can change the outputControl value to match your needs: Code:
outputControl timeStep; outputInterval 1; Reading the files will be easy, since the first line states the number of points and the second one states the format (x, y, z, alpha=0.5). The most difficult part is to calculate the displacement between the surfaces, I hope someone can help you with that. |
|
June 9, 2011, 11:33 |
|
#6 |
Senior Member
Join Date: Nov 2010
Posts: 113
Rep Power: 15 |
Hi!
Ok I get what you mean, so I delete all the results after getting my information except every 1e-05 step for example.. Yeah your right. After having the data from the timestep before I have the difficulty to compute the distance to the current timestep. So maybe I need sth like the 0.5 isosurface of the current timestep.. I'll think about that. Thanks again! |
|
June 14, 2011, 08:36 |
|
#7 |
Senior Member
Join Date: Nov 2010
Posts: 113
Rep Power: 15 |
Hi again,
maybe someone can help me with that question again: in the dynamicAlphaContactAngleFvPatchScalarField.C in the function Foam::dynamicAlphaContactAngleFvPatchScalarField:: theta we start by extracting some values Code:
const fvPatchVectorField& Up, const fvsPatchVectorField& nHat Code:
const fvPatchScalarField& alpha1 ... scalarField alpha1wall = alpha1.patchInternalField(); |
|
June 14, 2011, 10:41 |
|
#8 |
Senior Member
Pablo Higuera
Join Date: Jan 2011
Location: Auckland
Posts: 627
Rep Power: 19 |
Hi
I guess that might be possible, you can load the alpha field within the BC by: Code:
const volScalarField& alpha = db().lookupObject<volScalarField>("alpha1"); |
|
June 14, 2011, 10:53 |
|
#9 |
Senior Member
Join Date: Nov 2010
Posts: 113
Rep Power: 15 |
Hi again
thanks for your hint! Then I need to extract the values from the desired patch and delete the other lines.. Allright, I'll give that a try! That's similar to what andrea said. Thanks! |
|
November 1, 2020, 19:44 |
interface height along a slant wall
|
#10 |
New Member
A P
Join Date: Feb 2020
Location: Indiana, USA
Posts: 10
Rep Power: 6 |
I am working to obtain contact line motion in a container. I am thinking of obtaining interface height along a wall and then for velocity, I will take the difference of the location of 2 subsequent timestep divided by time difference. But I am unable to get the location of interface along the slant wall. It would be helpful if anyone can provide any suggestion regarding it.
I have used this code in controldict functions { #includeFunc residuals #includeFunc interfaceHeight interfaceHeight1 { type interfaceHeight; libs ("libfieldFunctionObjects.so"); alpha alpha.water; locations ((0 0 0)); direction (0.0064 0.024 0); } } direction in this I assumed it to be ray from ( 0 0 0) to (0.0064 0.024 0). That's my slant wall direction. Thanks Regards |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
interface tension question with interFoam solver | openTom | OpenFOAM Running, Solving & CFD | 4 | May 29, 2009 13:18 |