moose icon indicating copy to clipboard operation
moose copied to clipboard

Add a framework level component leveraging Actions

Open GiudGiud opened this issue 1 year ago • 2 comments

refs #24103 A few things to figure out

to try:

  • virtual inheritance from mooseobject & action to see if that fixes the auto-complete

Requirements

  • [ ] what characteristics of THM should be kept?
  • [ ] inter-component dependency resolution. Either use multiple tasks, or ?

Names & syntax

  • [x] find a good name for the base class. ComponentAction? ActionComponent? MooseComponent?
  • [x] find a good name for the syntax. Can't be [Components]!
  • [x] Current syntax is good right? Components/name/type=component_type

Workflow items

  • [x] register additional tasks when registering new components that have them (instead of registering everything in Components/). This is because we are using meta actions
  • [x] proper input auto-complete works?: nope, not working

Code organization

  • [ ] how to do different types of components. THM did by dimension: 1D/2D/file meshes. This would be kind of limiting since a lot of the things I m trying to do are dimension-agnostic. Maybe the solution is to not use inheritance?
  • [ ] make a list of all the components we could want, and write down an inheritance tree for that

Types of components

  • [ ] physics-components (components that define their own physics for convenience, for example SAM & THM ones)
  • [x] components that spawn their own mesh
  • [x] components from whole meshes output of mesh-generators (using saved mesh, we would have to be careful for duplicates if we do that)
  • [ ] components on a block of a mesh

Junctions

  • [ ] how to make them modify the mesh for physics that require contiguous treatment
  • [ ] then add the various UOs for THM-like junction?
  • [ ] or no mesh-stitiching and just add sidesets for things like heat radiation?

GiudGiud avatar May 10 '24 00:05 GiudGiud

imo as long as there are no component ordering issues in creation / setup, then this is enough. If there are, then I had a commit (removed for now) to introduce tasks and dependencies on-the-fly during construction

GiudGiud avatar Jun 25 '24 21:06 GiudGiud

Job Documentation on f7f78c9 wanted to post the following:

View the site here

This comment will be updated on new commits.

moosebuild avatar Jun 26 '24 02:06 moosebuild

This should be ready for review now. If it's too big I can remove the new multi-species diffusion physics. It's for TMAP but it fits fine in the scalar transport module imo. In the process of making it I found a lot of improvements for working with the single-species one

EDIT: I will add a test for the new physics in the coming days

GiudGiud avatar Jul 17 '24 22:07 GiudGiud

Job Coverage on f7f78c9 wanted to post the following:

Framework coverage

04c90e #27593 f7f78c
Total Total +/- New
Rate 85.03% 85.02% -0.01% 77.18%
Hits 105273 105569 +296 301
Misses 18532 18606 +74 89

Diff coverage report

Full coverage report

Modules coverage

Navier stokes

04c90e #27593 f7f78c
Total Total +/- New
Rate 84.57% 84.57% - 100.00%
Hits 16350 16350 - 2
Misses 2984 2984 - 0

Diff coverage report

Full coverage report

Scalar transport

04c90e #27593 f7f78c
Total Total +/- New
Rate 85.49% 81.31% -4.18% 77.34%
Hits 165 322 +157 157
Misses 28 74 +46 46

Diff coverage report

Full coverage report

Full coverage reports

Reports

Warnings

  • framework new line coverage rate 77.18% is less than the suggested 90.0%
  • scalar_transport new line coverage rate 77.34% is less than the suggested 90.0%

This comment will be updated on new commits.

moosebuild avatar Jul 18 '24 00:07 moosebuild

I can't remember, but I thought we were going with "ComponentAction" rather than "ActionComponent". The former indicates it's a type of Action, where the latter suggests it's a type of Component.

joshuahansel avatar Aug 05 '24 13:08 joshuahansel

We want those to serve as components. The Action part of the name is just to differentiate them for now. I used Component as the suffix as this is what I'd like to use as the suffix for the derived classes

GiudGiud avatar Aug 06 '24 11:08 GiudGiud

Ok, and to recap, is the plan to eventually convert the existing Component system to this, and then drop the old Component system and rename "ActionComponent" to "Component"?

joshuahansel avatar Aug 06 '24 12:08 joshuahansel

in the theoretical world where we have funding to this next year, yes

GiudGiud avatar Aug 06 '24 12:08 GiudGiud

Reviews should be addressed @joshuahansel @pbehne Sorry I missed a couple comments on Patrick's first round but I should have addressed everything now

GiudGiud avatar Aug 30 '24 14:08 GiudGiud

Job Coverage on f7f78c9 wanted to post the following:

The following coverage requirement(s) failed:

  • scalar_transport coverage rate 81.31% is less than the required 85.0%

moosebuild avatar Sep 08 '24 02:09 moosebuild

thank you both for the reviews!

GiudGiud avatar Sep 12 '24 18:09 GiudGiud