Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: Implementation of STS algorithm #36

Open
wants to merge 6 commits into
base: develop
Choose a base branch
from

Conversation

doraemonho
Copy link
Collaborator

@doraemonho doraemonho commented Jan 6, 2025

Background

This is an ongoing and not yet finish development to implement the Super-Time-Stepping (STS) algorithm in Artemis to optimize diffusion calculations with relaxed timestep constraints.

Description of Changes

Core Changes

  • Modified core components to integrate STS functionality:
    • artemis_driver.cpp and artemis_driver.hpp: Added STS control parameters and initialization logic
    • artemis.cpp and artemis.hpp: Implemented STS integration points and modified timestep handling
    • gas.cpp: Modified the timestep calculation for STS timestep management

New Components

  • Added new sts/ directory containing implementation files for the STS algorithm
  • Introduced new configuration parameters for STS control
  • STS-specific utility functions and numerical solvers

Implementation Status

This is a work in progress, with the following features currently under development:

  • STS Integrator
  • Validation and testing pgen for STS implementation
  • flux correction term for different coordinates.

Checklist

  • New features are documented
  • Tests added for bug fixes and new features
  • (@lanl.gov employees) Update copyright on changed files

1.  Added sts folder and files to handle the update.

2. artemis.cpp/hpp modified
a) added sts flag
b) added Initialize for sts

3. artemis_driver.hpp
a) added sts flag
b) added the entry for sts in PreStepTasks() fn
c) added the entry for sts in PostStepTasks() fn
d) Added a check to remove diffusion from main step if sts is enabled

4. gas.cpp
a) Added the sts flag
b) Added the diffusion timetep for paramters
c) Modified the timestep compuation
- changed `sts.cpp/hpp` for implmenting the RKL1
- Bug Fixed in enterting sts_integrator section in `artemis_driver.cpp`
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.

1 participant