`TimeHistory` cannot gather the same field from different locations
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 287
- Forks
- 109
- Avg merge
- 4d 41m
- Merged PRs (30d)
- 5
Description
It’s possible for TimeHistory to gather multiple sources of information into one unique file.
But it’s not possible for the TimeHistory/PackCollection pair to extract the same field on multiple locations and save them into the same file.
Consider the PoroElastic_Mandel test case.
For convenience, generate the cubic mesh with two different cell blocks (here cb1 and cb2):
<Mesh>
<InternalMesh
name="mesh1"
elementTypes="{ C3D8 }"
xCoords="{ 0.0, 0.5, 1.0 }"
yCoords="{ 0.0, 0.1 }"
zCoords="{ 0.0, 1.0 }"
nx="{ 10, 10 }"
ny="{ 1 }"
nz="{ 20 }"
cellBlockNames="{ cb1, cb2 }"/>
</Mesh>
and accordingly
<ElementRegions>
<CellElementRegion
name="Domain"
cellBlocks="{ cb1, cb2 }"
materialList="{ shale, water }"/>
</ElementRegions>
Then create/update the Tasks
<PackCollection
name="pressureCollection"
objectPath="ElementRegions/Domain/cb1"
fieldName="pressure"/>
<PackCollection
name="pressureCollection2"
objectPath="ElementRegions/Domain/cb2"
fieldName="pressure"/>
and the TimeHistory
<TimeHistory
name="pressureHistoryOutput"
sources="{/Tasks/pressureCollection, /Tasks/pressureCollection2}"
filename="pressure_history"/>
Do not forget to trigger
<PeriodicEvent
name="pressureCollection"
target="/Tasks/pressureCollection"/>
<PeriodicEvent
name="pressureCollection2"
target="/Tasks/pressureCollection2"/>
<PeriodicEvent
name="pressureOutput"
targetExactTimestep="0"
target="/Outputs/pressureHistoryOutput"/>
The case described does not work as TimeHistory does not know how to “merge” the same field into the same file.
Additionally, we can provide one set, but if this set is spread over two sub regions, then the process fails since they can't be merged.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the TimeHistory and PackCollection handling described in the PoroElastic_Mandel example, reproducing the configuration with cb1 and cb2. Done means pressure from both locations, including fields split across subregions, can be merged into one pressure_history file.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- data, hpc
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100