Merged
Conversation
- Refactor method interface to include Laasonen scheme - Add Laasonen class with time-stepping logic - Update factory method to create LaasonenMethod instance - Modify HeatSolver to support Laasonen scheme execution - Enhance main program to test Laasonen scheme and save results as CSV
…e its step signature and Thomas algorithm, and add method naming.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a full implementation and integration of the Laasonen implicit numerical scheme for solving the 1D heat equation. It refactors the method interface to support multiple schemes, updates the solver to use the new method factory, and adds functionality for saving simulation results as CSV files. The main program is reworked to drive a Laasonen test simulation and output results. Below are the most important changes grouped by theme:
Numerical Method Infrastructure
method.hppto support multiple schemes (Richardson,DuFortFrankel,Laasonen) via theSchemeKindenum, and updated the abstractMethodclass to clarify the interface and allow for both two-level and three-level schemes. The factory functionmake_methodnow creates the appropriate scheme instance.methods/laasonen.hppandmethods/laasonen.cpp, including the Thomas algorithm for solving the tridiagonal system at each time step. [1] [2]src/method.cppto construct aLaasonenobject when requested, and to throw clear errors for unsupported schemes.Solver and Simulation Driver
solver.cppto use the new method factory, clarified the initialization and time-marching logic, and ensured proper boundary condition handling and field bootstrapping for both two-level and three-level schemes.main.cppto drive a Laasonen simulation, prompt for user parameters, select the numerical method, and run the solver, saving results at regular intervals.Output and File Handling
main.cppto save temperature profiles as CSV files in a structured output directory, and updatedio.cppto support flexible output paths. [1] [2]io.cppto clean up includes and improve file path handling for result output.These changes collectively enable running and exporting results from the Laasonen scheme for the 1D heat equation.