trilinos / Trilinos

Primary repository for the Trilinos Project
https://trilinos.org/
Other
1.22k stars 569 forks source link

Panzer: Write a sideset field to an Exodus file #13612

Open delcmo opened 4 days ago

delcmo commented 4 days ago

Hello,

We compute fields like the shear stress that are only defined at the boundaries since it requires the normals. Is there a way to write that field to the Exodus file?

Marco

ccober6 commented 3 days ago

@rppawlo , @gdsjaar

gsjaardema commented 3 days ago

If the boundary is defined as a sideset (Or, you define a sideset to match your boundary), then you can output transient variables on a sideset in the same way that you would output them on an element block...

Note that this is at the exodus API level, so I'm not sure how that has been hooked up at the higher-level application level.

delcmo commented 3 days ago

Greg,

Thanks for your email. When I look at the documentation https://docs.trilinos.org/dev/packages/panzer/doc/html/classpanzer__stk_1_1STK__Interface.html, I see three functions of interest:

What is a bit confusing to me, is that addEdgeField and addFaceField take a block_id as an input argument. I tried to pass a sideset name to these functions but got an invalid block id error message at runtime. I looked at other functions available in the same class but none of them seem to be of use for what I want to do.

Thanks,

Marco

On Mon, Nov 18, 2024 at 5:46 PM Greg Sjaardema @.***> wrote:

If the boundary is defined as a sideset (Or, you define a sideset to match your boundary), then you can output transient variables on a sideset in the same way that you would output them on an element block...

— Reply to this email directly, view it on GitHub https://github.com/trilinos/Trilinos/issues/13612#issuecomment-2484292066, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABD4GCW5PBVCZHDSTH2AE4T2BJU57AVCNFSM6AAAAABR6BLTVWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBUGI4TEMBWGY . You are receiving this because you authored the thread.Message ID: @.***>

-- Marc-Olivier Delchini

rppawlo commented 2 days ago

@delcmo - there currently is no support through the panzer interfaces for adding sideset values to an exodus mesh. We wrap a stk mesh object and write all data directly into stk. The stk_io package pushes the data to SEACAS/IOSS which uses SEACAS/Exodus to write the exodus format. The exodus mesh supports it as Greg noted, but It's not clear if all of the underlying IO layers STK->STK_IO->IOSS->Exodus support that. It probably does, but we have never had a request for that. @alanw0 - can we store sideset tensor data directly in stk and have it automatically write to exodus?

alanw0 commented 2 days ago

@rppawlo yes that is supported. To see an example, take a look at packages/stk/stk_doc_tests/stk_io/howToCreateAndWriteNodesetOrSideset.cpp. The sideset test starts around line 220 and shows how to create the field on a sideset part. Writing out the mesh is done down in the function 'verify_sidesetField_in_file', which ends up calling stk::io::write_mesh_with_fields a couple layers down. Now that I look at it, this "doc test" is kind of convoluted. We'll try to clean that up and make it easier to follow. But it works. :-)

delcmo commented 2 days ago

Thanks Roger and Alan for the quick response. I will give it a try and get back to you if I have any questions.

Marco

On Tue, Nov 19, 2024 at 8:11 AM Alan Williams @.***> wrote:

@rppawlo https://github.com/rppawlo yes that is supported. To see an example, take a look at packages/stk/stk_doc_tests/stk_io/howToCreateAndWriteNodesetOrSideset.cpp. The sideset test starts around line 220 and shows how to create the field on a sideset part. Writing out the mesh is done down in the function 'verify_sidesetField_in_file', which ends up calling stk::io::write_mesh_with_fields a couple layers down. Now that I look at it, this "doc test" is kind of convoluted. We'll try to clean that up and make it easier to follow. But it works. :-)

— Reply to this email directly, view it on GitHub https://github.com/trilinos/Trilinos/issues/13612#issuecomment-2485677392, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABD4GCQXI5Z2RLUR4L3QVBD2BM2JJAVCNFSM6AAAAABR6BLTVWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBVGY3TOMZZGI . You are receiving this because you were mentioned.Message ID: @.***>

-- Marc-Olivier Delchini

rppawlo commented 2 days ago

Thanks @alanw0 !