How to combine dynamic mesh and static mesh
Is it possible to combine the dynamic mesh and static mesh in one simulation case?
I want to use dynamic mesh based on dynamicMotionSolverFvMesh according to the prescribed motion of boundary in one part of the computational domain. At the same time, static mesh are wanted in the other side part of the computational domain because I need to use porous material etc. over there. Is there any solution for my requirement? How shall I define dynamicMeshDict and blockMeshDict? If not possible, is there any alternatives for this problem? |
One possibility is to set the point motion diffusivity to zero in the region you don't want to move.
|
Thank you, can you provide the method to define different diffusivity coefficients in different regions?
Quote:
|
This is the setting I'm using right now, can you give suggestions how to change it?
dynamicFvMesh dynamicMotionSolverFvMesh; motionSolverLibs ("libfvMotionSolvers.so"); solver velocityLaplacian; velocityLaplacianCoeffs { diffusivity motionDirectional (10 10 0); } Quote:
|
For all motionSolvers, you can change the diffusivity to "file", which is a surfaceScalarField in the constant directory that provides the face diffusivity. You will need to create this yourself. This is your only option if you are using velocityLaplacian.
If you are using displacement motion solvers, you can specify an additional "frozenPointsZone" that is the name of a pointZone for non-moving points. This is probably the easiest, but is restricted to displacement motion solvers. |
thanks for your reply
I have switched to displacement motion solvers, but still don't get how to define a frozenPointsZone as you suggested. Do you mean create a pointZone file in polymesh folder, and define the frozenPointsZone inside of it like /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.2.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class regIOobject; location "constant/polyMesh"; object pointZones; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 1 ( frozenPointsZone { type pointZone; pointLabels List<label> 83646 ( 48 49 50 51 ....... Or, do you mean create another file named frozenPointsZone under polymesh folder and define the points inside? Quote:
|
You should define the points as a pointZone with whatever name you want them to have, then add the keyword frozenPointsZone to your dynamicMeshDict with the name of pointZone you want frozen.
|
Thanks you. However, I follow your instructions, but still cannot succeed.
The dynamicMeshDict file is FoamFile { version 2.0; format binary; class dictionary; location "constant"; object dynamicMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // //dynamicFvMesh staticFvMesh; dynamicFvMesh dynamicMotionSolverFvMesh; motionSolverLibs ("libfvMotionSolvers.so"); solver displacementLaplacian; displacementLaplacianCoeffs { diffusivity inverseDistance (inlet); } frozenPointsZone farfield; The pointZone file is FoamFile { version 2.0; format ascii; class regIOobject; location "constant/polyMesh"; object pointZones; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 1 ( farfield { type pointZone; pointLabels List<label> 83646 ( 48 49 50 51 52 53 ...... Any further suggestions? Quote:
|
You need to put the frozenPointsZone inside the displacementLaplacianCoeffs, as that is where the solver is looking for it. Try that and let me know if there are any error messages.
|
the interDyMFoam is still running as the frozenPointsZone has not been defined
Quote:
|
Sorry, I think I was unclear. Your dictionary should look like:
Code:
FoamFile |
I believe that is exactly what I have done
FoamFile { version 2.0; format binary; class dictionary; location "constant"; object dynamicMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // //dynamicFvMesh staticFvMesh; dynamicFvMesh dynamicMotionSolverFvMesh; motionSolverLibs ("libfvMotionSolvers.so"); solver displacementLaplacian; displacementLaplacianCoeffs { diffusivity inverseDistance (inlet); frozenPointsZone farfield; } The simulation runs smoothly, but the points hasn't been frozen. Quote:
|
That's odd. If you turn on the debug option for fvMotionSolvers in the global controlDict, you should get a message that re-states the motionsolver diffusivity and frozenPointsZone. Can you tell me what message you get with the debug option activated?
|
I did exactly as you have done, and the mesh points still moved. So I want know whether you have solved this problem.
Thank U. |
Quote:
Hi mturcios777, I wonder if you have a case working with "frozenPointZone". I cannot find any cases in the tutorials folder. I have searched a few posts. It seems no one gets this option work. The source code shows it will not change the displacement if "frozenPointZone" exists in dynamicMeshDict, but the points still move. I confrim the fixed points desired in paraview and the existence of the file "constant/polyMesh/pointZones". The output has nothing to do with 'frozenPointZone" when the debug option is switched on as shown below: Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // HTML Code:
motionSolverLibs ("libfvMotionSolvers.so"); Anyone share your experience? Regards, Michael |
how to setup frozenPointsZone with displacementLaplacian
Hello,
Might be a bit late, but maybe it can help somebody. In the case I am using, I have managed to use frozenPointsZone by doing the following: 1. Create a pointZone in your topoSetDict dictionary. As an example, mine looks like this: Code:
xsep 1.0; Code:
dynamicFvMesh dynamicMotionSolverFvMesh; $FOAM_SRC/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.C At line 96, you can see the following code : Code:
frozenPointsZone_ Code:
if (debug) As an example, this is what it looks like for me, when my pointZone is correctly set up: Code:
Create time Cheers, Victor |
Quote:
|
Do you know the debug switch name to be activated without the need to modify the code? I have generated the point zone but the points are still moved
Thanks a lot |
All times are GMT -4. The time now is 05:41. |