mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
added sourceTime option to mapFields
This commit is contained in:
@ -43,6 +43,31 @@ Description
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
int getTimeIndex
|
||||||
|
(
|
||||||
|
const instantList& times,
|
||||||
|
const scalar t
|
||||||
|
)
|
||||||
|
{
|
||||||
|
int nearestIndex = -1;
|
||||||
|
scalar nearestDiff = Foam::GREAT;
|
||||||
|
|
||||||
|
forAll(times, timeIndex)
|
||||||
|
{
|
||||||
|
if (times[timeIndex].name() == "constant") continue;
|
||||||
|
|
||||||
|
scalar diff = fabs(times[timeIndex].value() - t);
|
||||||
|
if (diff < nearestDiff)
|
||||||
|
{
|
||||||
|
nearestDiff = diff;
|
||||||
|
nearestIndex = timeIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nearestIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void mapConsistentMesh
|
void mapConsistentMesh
|
||||||
(
|
(
|
||||||
const fvMesh& meshSource,
|
const fvMesh& meshSource,
|
||||||
@ -97,7 +122,7 @@ void mapConsistentMesh
|
|||||||
void mapSubMesh
|
void mapSubMesh
|
||||||
(
|
(
|
||||||
const fvMesh& meshSource,
|
const fvMesh& meshSource,
|
||||||
const fvMesh& meshTarget,
|
const fvMesh& meshTarget,
|
||||||
const HashTable<word>& patchMap,
|
const HashTable<word>& patchMap,
|
||||||
const wordList& cuttingPatches
|
const wordList& cuttingPatches
|
||||||
)
|
)
|
||||||
@ -203,7 +228,7 @@ wordList addProcessorPatches
|
|||||||
{
|
{
|
||||||
if (typeid(meshTarget.boundary()[patchi]) == typeid(processorFvPatch))
|
if (typeid(meshTarget.boundary()[patchi]) == typeid(processorFvPatch))
|
||||||
{
|
{
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
!cuttingPatchTable.found
|
!cuttingPatchTable.found
|
||||||
(
|
(
|
||||||
@ -219,7 +244,7 @@ wordList addProcessorPatches
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return cuttingPatchTable.toc();
|
return cuttingPatchTable.toc();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,7 +257,9 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
# include "createTimes.H"
|
# include "createTimes.H"
|
||||||
|
|
||||||
runTimeSource.setTime(runTimeTarget);
|
# include "setTimeIndex.H"
|
||||||
|
|
||||||
|
runTimeSource.setTime(sourceTimes[sourceTimeIndex], sourceTimeIndex);
|
||||||
|
|
||||||
Info<< "\nSource time: " << runTimeSource.value()
|
Info<< "\nSource time: " << runTimeSource.value()
|
||||||
<< "\nTarget time: " << runTimeTarget.value()
|
<< "\nTarget time: " << runTimeTarget.value()
|
||||||
@ -255,9 +282,9 @@ int main(int argc, char *argv[])
|
|||||||
false
|
false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
mapFieldsDict.lookup("patchMap") >> patchMap;
|
mapFieldsDict.lookup("patchMap") >> patchMap;
|
||||||
|
|
||||||
mapFieldsDict.lookup("cuttingPatches") >> cuttingPatches;
|
mapFieldsDict.lookup("cuttingPatches") >> cuttingPatches;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,7 +329,11 @@ int main(int argc, char *argv[])
|
|||||||
caseDirSource/fileName(word("processor") + name(procI))
|
caseDirSource/fileName(word("processor") + name(procI))
|
||||||
);
|
);
|
||||||
|
|
||||||
runTimeSource.setTime(runTimeTarget);
|
runTimeSource.setTime
|
||||||
|
(
|
||||||
|
sourceTimes[sourceTimeIndex],
|
||||||
|
sourceTimeIndex
|
||||||
|
);
|
||||||
|
|
||||||
fvMesh meshSource
|
fvMesh meshSource
|
||||||
(
|
(
|
||||||
@ -446,7 +477,11 @@ int main(int argc, char *argv[])
|
|||||||
caseDirSource/fileName(word("processor") + name(procISource))
|
caseDirSource/fileName(word("processor") + name(procISource))
|
||||||
);
|
);
|
||||||
|
|
||||||
runTimeSource.setTime(runTimeTarget);
|
runTimeSource.setTime
|
||||||
|
(
|
||||||
|
sourceTimes[sourceTimeIndex],
|
||||||
|
sourceTimeIndex
|
||||||
|
);
|
||||||
|
|
||||||
fvMesh meshSource
|
fvMesh meshSource
|
||||||
(
|
(
|
||||||
@ -464,7 +499,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
for (int procITarget=0; procITarget<nProcsTarget; procITarget++)
|
for (int procITarget=0; procITarget<nProcsTarget; procITarget++)
|
||||||
{
|
{
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
!bbsTargetSet[procITarget]
|
!bbsTargetSet[procITarget]
|
||||||
|| (
|
|| (
|
||||||
@ -542,7 +577,7 @@ int main(int argc, char *argv[])
|
|||||||
runTimeTarget
|
runTimeTarget
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
Info<< "Source mesh size: " << meshSource.nCells() << tab
|
Info<< "Source mesh size: " << meshSource.nCells() << tab
|
||||||
<< "Target mesh size: " << meshTarget.nCells() << nl << endl;
|
<< "Target mesh size: " << meshTarget.nCells() << nl << endl;
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
argList::validArgs.clear();
|
argList::validArgs.clear();
|
||||||
|
|
||||||
argList::validOptions.insert("source", "dir");
|
argList::validOptions.insert("source", "dir");
|
||||||
|
argList::validOptions.insert("sourceTime", "scalar");
|
||||||
|
|
||||||
argList::validOptions.erase(argList::validOptions.find("parallel"));
|
argList::validOptions.erase(argList::validOptions.find("parallel"));
|
||||||
argList::validOptions.insert("parallelSource", "");
|
argList::validOptions.insert("parallelSource", "");
|
||||||
|
|||||||
Reference in New Issue
Block a user