CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Why are pointVectorFields not mapped using mapFields? (https://www.cfd-online.com/Forums/openfoam-solving/101882-why-pointvectorfields-not-mapped-using-mapfields.html)

maxof May 16, 2012 07:22

Why are pointVectorFields not mapped using mapFields?
 
Hi all,
I am simulating boats which are free to heave and trim using interDyMFoam (OF-2.1.0). To make my simulations more efficient, I want to map a coarse mesh solution onto a fine mesh. I works perfectly as long as the object isnt moving. For some reason pointVectorFields (ie the pointDisplacement file) do not get mapped, even though they are required to run the simulation in the the target directory. I tried to grep the orientation (of the moving object) from the source directories pointDisplacement file and chucked it into the target directories file, but that is obviously not working. That draw a few questions regarding my understanding of mapFields and interDyMFoam:

Q1: Why are pointVectorFields not mapped?
Q2: How do I map the mesh deformation correctly?
Q3: Why is there a pointDisplacement AND cellDisplacement file, isnt that redundant information? Latter one is mapped OK.

Grateful for any advice!

Cheers, Max

maxof May 16, 2012 19:54

Well I just figured out how to solve Q2: You simply specify (deformed) orientation and centreOfMass AND initialOrientation and initialCentreOfMass. The actual points will be moved accordingly by the solver and the cellDisplacement too. Too easy!

Cheers, Max

Henning86 April 23, 2014 08:44

hi


i have a similar problem with interDyMFoam (moving mesh) and mapFields. I just want to map from a coarse to a fine mesh but the solver crashes probably caused by the cell movement.

How did you solve the problem?

i use the command:

mapFields -sourceTime latestTime -consistent


Best regards

Henning

Henning86 April 23, 2014 11:35

solved
 
hi,


i figured it out.


mapFields doesn't take moving meshes into account. The domains of both cases dont match since the displacement isn't considered resulting in a crash.

It can be solved by using a dynamicMesh instead of fvmesh in mapFields

1. replace all fvmesh with solidBodyMotionFvMesh

2. update Header

3 compile

If you map the fields from the sourcecase to the target case the time folders need to be identical and the target case folder needs to be empty.


best regards

Henning

wyldckat April 25, 2014 15:31

Greetings Henning,

It might make sense to report this issue on the bug tracker: http://www.openfoam.org/bugs/ - specially since you've already found the solution ;)

Although, there is a limitation to this: if you change all "fvMesh" references to "solidBodyMotionFvMesh" or similar, then mapFields will only work if the file "constant/dynamicMeshDict" exists.

Best regards,
Bruno

quarkz December 25, 2022 10:49

Quote:

Originally Posted by Henning86 (Post 487752)
hi,


i figured it out.


mapFields doesn't take moving meshes into account. The domains of both cases dont match since the displacement isn't considered resulting in a crash.

It can be solved by using a dynamicMesh instead of fvmesh in mapFields

1. replace all fvmesh with solidBodyMotionFvMesh

2. update Header

3 compile

If you map the fields from the sourcecase to the target case the time folders need to be identical and the target case folder needs to be empty.


best regards

Henning

Hi Henning86 (or anyone),

Can you explain more clearly how it is done?

What do you mean by:

1. replace all fvmesh with solidBodyMotionFvMesh

2. update Header

3 compile

Thanks!

quarkz June 19, 2023 11:50

Hi,

I just tried to give it a go.

I'm not sure how to create a new mapField application so I took the easy way out. I simply edit the mapField.* source code and recompile a new OF.

However, I don't think I did it right. I simply search and replace all "fvmesh" with "solidBodyMotionFvMesh" in the 3 source codes:

mapFields.C
mapFields.H
mapFieldsTemplates.C

During compile, the error is:

Code:

In file included from mapFields/mapFields.H:224,
                from mapFields/mapFields.C:28:
mapFields/mapFieldsTemplates.C:28:10: fatal error: solidBodyMotionFvMesh.H: No such file or directory
 #include "solidBodyMotionFvMesh.H"
          ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [/home/users/nus/tsltaywb/scratch/OpenFOAM/OpenFOAM-v2212/wmake/rules/General/transform:38: /home/users/nus/tsltaywb/scratch/OpenFOAM/OpenFOAM-v2212/build/linux64Gcc841DPInt32Opt/src/functionObjects/field/mapFields/mapFields.o] Error 1

Can anyone help?


All times are GMT -4. The time now is 07:47.