Skip to content

feat(thesis): add capabilities to capture interlayer heat accumulation#179

Draft
gknapp1 wants to merge 6 commits intomainfrom
feat/thesis/eol-temp
Draft

feat(thesis): add capabilities to capture interlayer heat accumulation#179
gknapp1 wants to merge 6 commits intomainfrom
feat/thesis/eol-temp

Conversation

@gknapp1
Copy link
Copy Markdown
Collaborator

@gknapp1 gknapp1 commented Apr 29, 2026

Summary

This pull request adds functionality to the main Thesis(MynaApp) class to allow for part+layer simulations to approximate the heat accumulation between layers.

Related issues

Details

This PR adds two new features:

  • New simulation app thesis/temperature_surface_part and associated core features
  • New options in other part+layer-type thesis simulation apps to leverage layer-wise end of layer temperatures (i.e., from temperature_surface_part) to initialize the layer temperature. Example provided.

Having the lightweight thesis/temperature_surface_part pre-compute the layer-wise heat accumulation for all layers of interest in serial allows for other more expensive layer-wise simulations to remain independent (i.e., embarrassingly parallel).

Impact

This is a low/medium impact change. User behavior for existing apps and workflows shouldn't change, but it does add an additional thesis app and component type that add features for the tradeoff of increased maintenance costs.

Testing strategy

CI was written to cover these changes (Codex-generated, I reviewed). I manually tested the new example and checked output to ensure expected behavior (with a spack/thesis installation on a Ubuntu system).

gknapp1 added 3 commits April 29, 2026 14:35
- app calculates the surface temperature at the end of the layer
- if previous layer results exist, use the average layer temperature for the current layer, otherwise use preheat temp
- adds examples and tests
… sim or CSV file

- Workflow is shown in new `melt_pool_geometry_part_heat_accumulation` example
- Puts in functionality in the base Thesis class to handle updating the initial temperature based on provided settings. Deafults to checking for a previous temperature_surface_part step, then tries a user provided file, then falls back on previous behavior (T_0 = T_preheat from build data)
- Adds tests for checking the added behavior and example work
@gknapp1 gknapp1 requested a review from streeve as a code owner April 29, 2026 18:54
@gknapp1 gknapp1 marked this pull request as draft May 1, 2026 13:18
@gknapp1
Copy link
Copy Markdown
Collaborator Author

gknapp1 commented May 1, 2026

@streeve ignore this until it goes out of draft. I'm using it as a dev branch for a specific application, so will have to cherry pick some commits into different PRs before I'm done.

gknapp1 added 2 commits May 1, 2026 10:48
- runtime paths in cases and the configured myna input file are now converted to relative in `myna config`
- this allows for cases to be moved to a new location once configured
- while `myna run` does not require the path to the database to be valid, `myna sync` will still require the path to be valid, so the completed myna case directory will need to be moved back to the original location to sync with the database or the path to the database will need to be updated
- One way that multi-parameter parts can be built is by breaking up the geometry into multiple parts
- Original preheating logic did not support that, so utilities were added to allow interfaces between parts to be specified
- Part interface specification is optional and specified at the build data level
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Layer-wise heat accumulation application

1 participant