Skip to content

User source terms - #138

Merged
pdmullen merged 9 commits into
developfrom
dempsey/user
Jul 28, 2026
Merged

User source terms#138
pdmullen merged 9 commits into
developfrom
dempsey/user

Conversation

@adamdempsey90

Copy link
Copy Markdown
Collaborator

Background

This adds a simple mechanism for enrolling "user" source tasks into the driver. Disk wave-killing was added as an example.

This supersedes #114

Description of Changes

Checklist

  • New features are documented
  • Tests added for bug fixes and new features
  • (@lanl.gov employees) Update copyright on changed files
  • Any contribution that was created or modified with the assistance of generative AI must have a comment disclosing this such as // This file was created in part or in whole by generative AI

… disk pgen as an example. This could be expanded to other registries for tasks in different parts of the operator split in the future
@adamdempsey90
adamdempsey90 requested a review from pdmullen July 23, 2026 15:11
Comment thread src/artemis_driver.cpp Outdated
// Apply problem-generator source terms in registration order
TaskID user_src = rframe_src;
for (const auto &task : GetUserSourceTasks()) {
user_src = tl.AddTask(user_src, task.name, task.function, u0.get(), time, bdt);

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't know you could pass names to tasks

@pdmullen pdmullen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the enrollment function name reflect that this is an "unsplit" source term enveloped in the temporal integrator logic --- that is, NOT an operator split source term enrolled after an e.g., rk2 advance?

Comment thread src/pgen/problem_modifier.hpp Outdated
@adamdempsey90

Copy link
Copy Markdown
Collaborator Author

Should the enrollment function name reflect that this is an "unsplit" source term enveloped in the temporal integrator logic --- that is, NOT an operator split source term enrolled after an e.g., rk2 advance?

I think that clarification is good if we have more than one type of user source term, but if we only have one, then it should be clear from the documentation what it's for (the current documentation is not clear / non-existent).

I could just add a few of these registries for the different flavors (explicit, implicit, operator-split, etc.)

@adamdempsey90

Copy link
Copy Markdown
Collaborator Author

Should the enrollment function name reflect that this is an "unsplit" source term enveloped in the temporal integrator logic --- that is, NOT an operator split source term enrolled after an e.g., rk2 advance?

I think that clarification is good if we have more than one type of user source term, but if we only have one, then it should be clear from the documentation what it's for (the current documentation is not clear / non-existent).

I could just add a few of these registries for the different flavors (explicit, implicit, operator-split, etc.)

I added 3 collections, 1 for explicit unsplit tasks, 1 for implicit unsplit tasks ("implicit" in the IMEX sense in terms of ordering), and 1 for split task lists.

@pdmullen
pdmullen merged commit 93f5d2f into develop Jul 28, 2026
6 checks passed
@pdmullen
pdmullen deleted the dempsey/user branch July 28, 2026 18:21
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.

2 participants