Cloned SEACAS for EXODUS library with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.8 KiB

2 years ago
After a look and run through the debugger; I'm not sure how the nodal
variable interpolation *ever* worked in the past. It looks totally
wrong and I can understand why it isn’t working now; I just can't
understand how it ever worked correctly for multi-element block
models.
As I see it, it does the following for the interpolation:
* For all blocks
* For all time steps
* For all nodal variables
* Iterate all nodes in this block; map from A->B
* Write values for *all* B nodes at this step for this variable
* For all time steps
* For all element variables
* Iterate all elements in this block; map from A->B
* Write values for all elements in this block at this step for this variable
This works for element variables since the exodus API can output
elements a block and variable at a time. For nodes, it doesn't work
and you will end up with the values at the last step for all
nodes/variables except for nodes which are only in the last element
block which seems to be what you are seeing.
Fixing this would be a major undertaking and I'm not sure it would get
prioritized (although you are welcome to try).
This *should* work OK if you only do a single timestep or if you only
have a single element block. With a single timestep and multiple
element blocks, there is an issue of what happens if the node is
shared between multiple element blocks -- it will only get the
interpolated value from the last block.
Now, what to do...
* I think that the Percept code can do some mapping from mesh to mesh...
* Klugy, but can do a timestep at a time and then rejoin all timesteps using `conjoin`
* Klugy, but can subset down to one block / mesh and then run mapvar on each submesh and then join using `ejoin`
Sorry for the bearer of bad news, but hopefully there is a path to get
done what you need...