CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   mapField: the same mesh, with one more patch (https://www.cfd-online.com/Forums/openfoam/105787-mapfield-same-mesh-one-more-patch.html)

samiam1000 August 9, 2012 03:15

mapField: the same mesh, with one more patch
 
Dear All,

I am trying to use the mapField command in order to transfer the solution between 2 meshes that are identical.

There is only a difference: in the targetMesh I have added a patch.

How can I solve this?

Thanks a lot,

Samuele

wyldckat August 9, 2012 06:24

Greetings Samuele,

A quick solution might be to use createPatch on the first case. You can find examples by running:
Code:

find $FOAM_TUTORIALS -name createPatchDict
find $FOAM_UTILITIES -name createPatchDict

Best regards,
Bruno

samiam1000 August 9, 2012 06:31

Hi Bruno and thanks for answering,

actually I thought about creating a patch.

The point is that in case one I have a patch called wall-part_3-solid and I split this patch in two patches for case two: wall-part_3-solid and wall_back.

The point is that I have already the solution for case one.

Is it possible to add a patch on a solved case? Or I should run again the simulation?

wyldckat August 9, 2012 06:33

Quote:

Originally Posted by samiam1000 (Post 376178)
Is it possible to add a patch on a solved case? Or I should run again the simulation?

I honestly don't know and never tried it on a case that already has a solution... but I think it should work :)
If it doesn't, then it's possibly a bug or missing feature :D

mgdenno August 10, 2012 20:59

Have you tried using the mapFieldsDict instead of use the -consistent flag?

samiam1000 October 29, 2012 05:36

Dear all,

just one more question.

What can I do if - instead of adding a patch - I'd like to remove a patch?

This is the case: I study a steady solution of a room woth a door.

Suddenly, the door desappears. Hence, I have 2 identical mesh, without the patch ``door''.

I am looking for the removePatch feature. Does this exist?

Thanks a lot,
Samuele

wyldckat October 31, 2012 13:29

Hi Samuele,

I believe you still have to use createPatch!

But still, you don't need to remove a patch. You can simply define that patch as a wall and set parameters/boundary conditions as if it were a wall!

Best regards,
Bruno

ripudaman January 8, 2014 19:01

Did you find a solution to this problem?
 
Samuele,

I have a problem very similar to yours. Were you able to find a solution to the problem you discuss in this thread?

Thank you.
Ripu

Quote:

Originally Posted by samiam1000 (Post 376137)
Dear All,

I am trying to use the mapField command in order to transfer the solution between 2 meshes that are identical.

There is only a difference: in the targetMesh I have added a patch.

How can I solve this?

Thanks a lot,

Samuele


lukasf September 16, 2022 09:11

Use the mapFields command:

Code:

mapFields "pathToSourceCase" -mapMethod mapNearest -targetRegion region0 -sourceTime 'latestTime'
My example:

Source Case: Has a patch called: lowerWall
New Case: Here the patch "lowerWall" is split into: WALL1, WALL2 and lowerWall.

Content of mapFieldsDict.
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.1.x                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    object      mapFieldsDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //


// List of pairs of source/target patches for mapping
patchMap
(
inlet inlet
outlet outlet
upperWall upperWall
lowerWall WALL1
lowerWall WALL2
lowerWall lowerWall
frontAndBack frontAndBack
);

// List of target patches cutting the source domain (these need to be
// handled specially e.g. interpolated from internal values)
cuttingPatches
(
);


lukasf January 19, 2023 02:44

The target case needs a time directory with the correct (empty) fields (boundary conditions and patch-names) prepared.



This way the results from the source file can be interpolated onto the target case.

Quote:

Originally Posted by lukasf (Post 835976)
Use the mapFields command:

Code:

mapFields "pathToSourceCase" -mapMethod mapNearest -targetRegion region0 -sourceTime 'latestTime'
My example:

Source Case: Has a patch called: lowerWall
New Case: Here the patch "lowerWall" is split into: WALL1, WALL2 and lowerWall.

Content of mapFieldsDict.
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.1.x                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    object      mapFieldsDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //


// List of pairs of source/target patches for mapping
patchMap
(
inlet inlet
outlet outlet
upperWall upperWall
lowerWall WALL1
lowerWall WALL2
lowerWall lowerWall
frontAndBack frontAndBack
);

// List of target patches cutting the source domain (these need to be
// handled specially e.g. interpolated from internal values)
cuttingPatches
(
);




All times are GMT -4. The time now is 16:18.