|
[Sponsors] |
Moving boundary problem based on calculated data |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
June 23, 2016, 13:18 |
dissolFoam
|
#41 |
Member
Tony Ladd
Join Date: Aug 2013
Posts: 48
Rep Power: 13 |
For those interested in solving moving boundary problems I would like to draw your attention to a package developed by my colleague Vitaliy Starchenko. Starting with Frederic Heckman's posting (#3) we have been studying the opening of fractures due to dissolution; a paper is under review at the present time.
dissolFoam is the solver Vitaliy developed for this work and the the latest snapshot is available at https://github.com/vitst/dissol240. The main features are: dissolFoam - the solver (including normal surface motion due to dissolution) dissolMeshRelax - for surface mesh relaxation - this is still under development but it is essential for a simulation of any relevant duration. Right now it is specific to a geometry with parallel inlet and outlet planes for the flow nonLinear - a boundary condition for nonlinear dissolution kinetics (based on mixed) danckwerts - a Danckwerts bc (also based on mixed) coupledPatchInterpolation - this fixes the faceToPoint interpolation across coupled patches, such as cyclic and processor. This has been discussed at several points on this thread steadyStateControl - a modification of simpleControl so the time counter does not increment every loop (annoying in steady state flows). patches - There are a couple of patches to the OF source code that should be compiled in. One of them is needed for steadyStateControl the other fixes a bug (in our opinion) in the solver convergence tests. Vectors are normed component by component which can lead to non-convergence if one of the components is zero (or near zero). The patch norms each component by the norm for the whole vector (or tensor). cases - there are some sample case files, but none of them are that quick to run docs - there is a longer description of the software in dissol240/docs/SI.pdf examples - sample movies from dissolFoam simulations The attached pdf illustrates what the simulations look like. The fracture is a narrow slot running through soluble rock. There are small random displacements in the initial surface positions. The large channels grow from that. Tony PS: dissolFoam is based on OpenFOAM-v2.4.0 Last edited by tladd; June 23, 2016 at 14:36. Reason: Additional info |
|
August 4, 2017, 09:27 |
|
#42 |
New Member
dario
Join Date: Dec 2016
Posts: 24
Rep Power: 10 |
I'm trying to do the same in OF 4.1
I got the following error: error: no match for ‘operator==’ (operand types are ‘const Foam:ointPatchField<Foam::Vector<double> >’ and ‘Foam::vectorField {aka Foam::Field<Foam::Vector<double> >}’) PointDisplacement.boundaryField()[patchI] == displacements; it shows up even when I try to compile your example. I understand that I should change pointVectorField in pointPatchField, but I didn't find a way to make it work. Anyone tried this in later versions of OF? Thanks |
|
August 4, 2017, 09:42 |
|
#43 |
Member
Tony Ladd
Join Date: Aug 2013
Posts: 48
Rep Power: 13 |
Hi Dario
That package was tested in OF 2.4.0 so you need to install that version (2.x should work). There was a major rewrite of the OF internals in 3.0. That breaks a lot of the things in the code. OF is developing very rapidly so its a bit of a moving target. Vitaliy's codes do work with 4.1 but we do not have a bundled release. You can obtain development snapshots of the various pieces at https://github.com/vitst?tab=repositories The important repositories are: dissolFoam - the solver libsFoamAux - additional libraries patches-OpenFOAM-v3.xPlus-unofficial - this still works for 4.x dissolFoamTestCases - The README will tell you the commits for dissolFoam and libsFoamAux that were used to generate the results. The input files might be a bit different for different commits. Hope this helps. Good luck Tony |
|
April 5, 2018, 11:15 |
dissolFoam-v1706
|
#44 |
Member
Tony Ladd
Join Date: Aug 2013
Posts: 48
Rep Power: 13 |
My colleague Vitaliy has released a new set of source codes and case files for moving boundary simulations based on OpenFoam-v1706
dissolFoam release The release contains a solver, additional libraries, utilities and case files. A packaged release can be found at https://github.com/vitst/dissolFoam/releases/tag/v1706 Regards Tony PS: I added some images from one of the cases (dissolCirc). They shows a soluble cylinder dissolving: Initial mesh (snappyHex), an expanded view of the trailing edge of the cylinder, mesh at time 50 (dt = 0.2), an expanded view of the trailing edge of the cylinder at t=50 Last edited by tladd; April 5, 2018 at 14:16. Reason: Adding images |
|
June 28, 2018, 04:06 |
Oscillating cylinderField
|
#45 |
Member
Ben 017
Join Date: Nov 2017
Posts: 70
Rep Power: 9 |
Hello Foamers,
I have read this thread and trusted you that you may help. Indeed, I want to move cylindrical Field created using topoSetDict to follow a certain path (x) in Cartesian grid. I wrote a C++ program that is giving me the value of x at each time step(see attached). Does it sound possible to code and move that cylindrical Field following that path? If yes how? where should I start from? which tutorial would help? How to make that c++ working in OpenFoam? Thank you! |
|
June 28, 2018, 06:31 |
|
#46 | |
Member
Tony Ladd
Join Date: Aug 2013
Posts: 48
Rep Power: 13 |
Quote:
Ben DissolFoam was designed to move a boundary patch in the direction of the local surface normal. If you want to move a field this is not what you want. It is not clear to me what equations you are trying to solve, but what dissolFoam does is described in the attached document. Tony Tony |
||
October 9, 2018, 08:08 |
|
#47 |
Member
Massachusetts
Join Date: Jun 2015
Posts: 46
Rep Power: 11 |
Hello everybody,
What boundary condition should I set in the pointDisplacement file if I have a complex surface and I cannot define only one normal vector for every points? |
|
October 9, 2018, 10:05 |
|
#48 |
Member
Tony Ladd
Join Date: Aug 2013
Posts: 48
Rep Power: 13 |
Can you give some details. Are you trying to implement a moving boundary condition?
If you are using dissolFoam-v1706 then the PMU file should point to the normalSurfaceMotion boundary condition. There are case files in the release (#44) that will show you how to do that. Tony |
|
October 9, 2018, 12:19 |
|
#49 | |
Member
Massachusetts
Join Date: Jun 2015
Posts: 46
Rep Power: 11 |
Quote:
What I would like to do it's deforming the surface geometry applying a displacement field at the nodes proportional to some scalar field. If you need further details, I opened a thread here. moveDynamicMesh BCs Thank you for help, best regards |
||
April 3, 2020, 01:18 |
|
#50 | |
Senior Member
|
Quote:
Interesting findings! I wonder if the latest version of OF still has the same problem regarding empty boundary. |
||
September 4, 2020, 15:05 |
|
#51 | |
New Member
Armin Alavi
Join Date: May 2019
Location: Tehran
Posts: 22
Rep Power: 7 |
Hello Frederic
I am struggling with a problem you answered in post #3. I use your exact code but I get the following error message: Quote:
Thank you Armin |
||
October 17, 2023, 10:01 |
|
#52 | |
New Member
Shannon Leakey
Join Date: Mar 2019
Posts: 10
Rep Power: 7 |
Quote:
Code:
vectorField &pDisp=refCast<vectorField>(PointDisplacement.boundaryField()[patchWallID]); |
||
October 28, 2023, 14:10 |
|
#53 |
Member
Tony Ladd
Join Date: Aug 2013
Posts: 48
Rep Power: 13 |
Armin
Vitaliy released a version of dissolFoam for OF 6. I did not see your message until now. Hope you found a solution. Tony |
|
October 11, 2024, 09:50 |
const_cast
|
#54 |
New Member
okay
Join Date: Jan 2022
Posts: 2
Rep Power: 0 |
Hi everyone!!
What is const_cast.This is causing problem when i running this code as "error: cannot dynamic_cast ‘r’ to type ‘class Foam::Field<Foam::Vector<double> >&’ (conversion casts away constness) return dynamic_cast<To&>(r);" I have read that this can cause error if the declared variable is not modifiable.Please help me.I am stuck on this code.I am running in openfoam-6 version |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
An error has occurred in cfx5solve: | volo87 | CFX | 5 | June 14, 2013 18:44 |
domain imbalance for enrgy equation | happy | CFX | 14 | September 6, 2012 02:54 |
Framework for moving mesh based on 2D-computation as a boundary condition | Arnoldinho | OpenFOAM Running, Solving & CFD | 0 | May 17, 2011 13:48 |
RPM in Wind Turbine | Pankaj | CFX | 9 | November 23, 2009 05:05 |
How to update polyPatchbs localPoints | liu | OpenFOAM Running, Solving & CFD | 6 | December 30, 2005 18:27 |