Skip to content

better timing directory creation#914

Merged
PhilipDeegan merged 1 commit intoPHAREHUB:masterfrom
PhilipDeegan:deranked
Oct 24, 2024
Merged

better timing directory creation#914
PhilipDeegan merged 1 commit intoPHAREHUB:masterfrom
PhilipDeegan:deranked

Conversation

@PhilipDeegan
Copy link
Member

@PhilipDeegan PhilipDeegan commented Oct 23, 2024

Summary by CodeRabbit

  • New Features
    • Introduced a new function for timing data management, enhancing monitoring capabilities.
  • Improvements
    • Updated logging mechanisms for better control over log file creation and integration with monitoring tools.

@coderabbitai
Copy link

coderabbitai bot commented Oct 23, 2024

📝 Walkthrough

Walkthrough

The pull request introduces changes primarily to the monitoring.py and simulator.py files within the pyphare/simulator module. A new function, timing_setup(cpplib), is added to handle the creation of a directory for timing data, including error logging for failures. Additionally, the make_cpp_simulator function in simulator.py is updated to utilize this new timing setup function. The logging mechanism in the Simulator class is refined to prevent unnecessary directory creation when logging is disabled. Overall, the changes enhance monitoring and logging capabilities without altering existing functionalities.

Changes

File Path Change Summary
pyphare/pyphare/simulator/monitoring.py Added function timing_setup(cpplib) for creating timing data directory with error handling. Updated imports for logging.
pyphare/pyphare/simulator/simulator.py Modified make_cpp_simulator to call mon.timing_setup(cpp_lib()). Enhanced _log_to_file to create logging directory conditionally.

Possibly related PRs

  • phlop runtime process monitoring #881: The changes in this PR involve modifications to the monitoring.py file, which is directly related to the new timing_setup(cpplib) function introduced in the main PR, as both PRs focus on enhancing monitoring capabilities within the same file.

Suggested reviewers

  • nicolasaunai

📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between c262a75 and ec895f8.

📒 Files selected for processing (2)
  • pyphare/pyphare/simulator/monitoring.py (2 hunks)
  • pyphare/pyphare/simulator/simulator.py (1 hunks)
🧰 Additional context used
🔇 Additional comments (4)
pyphare/pyphare/simulator/monitoring.py (2)

5-5: LGTM: Clean import additions and logger setup

The new imports and logger initialization follow Python best practices and are necessary for the new functionality.

Also applies to: 8-10


60-65: 🛠️ Refactor suggestion

Several improvements needed for the timing_setup function

  1. Missing docstring to explain the function's purpose and parameters
  2. Error message could be more informative about the root cause
  3. Consider returning a status to indicate success/failure
  4. Potential race condition in multi-node setups

Here's a suggested improvement:

 def timing_setup(cpplib):
+    """Create directory for timing data in multi-node environment.
+
+    Args:
+        cpplib: C++ library interface with MPI rank information
+
+    Returns:
+        bool: True if directory creation was successful, False otherwise
+    """
     if cpplib.mpi_rank() == 0:
         try:
             Path(".phare/timings").mkdir(parents=True, exist_ok=True)
+            return True
         except FileNotFoundError:
-            logger.error(f"Couldn't find timing dir from {os.getcwd() }")
+            logger.error(
+                f"Failed to create timing directory '.phare/timings' from {os.getcwd()}. "
+                "Please ensure parent directory exists and has write permissions."
+            )
+    return False

Let's verify the multi-node usage of this function:

pyphare/pyphare/simulator/simulator.py (2)

33-33: LGTM! Good separation of concerns.

Moving the timing directory creation to monitoring.py through timing_setup improves code organization and maintainability.


Line range hint 332-333: Verify concurrent directory creation behavior.

While the exist_ok=True flag helps prevent race conditions, let's verify that the directory creation is properly synchronized across MPI ranks.

✅ Verification successful

Based on the search results, I can now generate the final response as we have sufficient information about directory creation patterns in the codebase.

Directory creation is properly synchronized with MPI ranks

The .log directory creation is safe because:

  • It only occurs on MPI rank 0 (as per the review context)
  • The exist_ok=True flag is consistently used across the codebase for directory creation
  • The codebase shows a pattern of proper MPI synchronization, evident in cpp/validate.py where mpi_barrier() is used after directory creation
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for potential race conditions in .log directory creation

# Test: Search for other places where .log directory is created/accessed
rg -A 5 '\.log.*mkdir'

# Test: Check if there are any error handling for directory creation
rg -A 5 'mkdir.*exist_ok'

Length of output: 3784


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@PhilipDeegan PhilipDeegan merged commit 296f0f8 into PHAREHUB:master Oct 24, 2024
@PhilipDeegan PhilipDeegan deleted the deranked branch October 24, 2024 08:09
UCaromel pushed a commit to UCaromel/PHARE that referenced this pull request Nov 13, 2024
UCaromel pushed a commit to UCaromel/PHARE that referenced this pull request Nov 13, 2024
UCaromel added a commit to UCaromel/PHARE that referenced this pull request Jan 6, 2025
…putation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (PHAREHUB#914)

safer nu (PHAREHUB#911)

try fallback for dl on keyerror + ruffage (PHAREHUB#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (PHAREHUB#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem
UCaromel added a commit to UCaromel/PHARE that referenced this pull request Jan 6, 2025
…putation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (PHAREHUB#914)

safer nu (PHAREHUB#911)

try fallback for dl on keyerror + ruffage (PHAREHUB#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (PHAREHUB#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem
UCaromel added a commit to UCaromel/PHARE that referenced this pull request Jan 10, 2025
…putation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (PHAREHUB#914)

safer nu (PHAREHUB#911)

try fallback for dl on keyerror + ruffage (PHAREHUB#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (PHAREHUB#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem
UCaromel added a commit to UCaromel/PHARE that referenced this pull request Jan 10, 2025
…putation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (PHAREHUB#914)

safer nu (PHAREHUB#911)

try fallback for dl on keyerror + ruffage (PHAREHUB#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (PHAREHUB#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem
UCaromel added a commit to UCaromel/PHARE that referenced this pull request Jan 10, 2025
…putation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (PHAREHUB#914)

safer nu (PHAREHUB#911)

try fallback for dl on keyerror + ruffage (PHAREHUB#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (PHAREHUB#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem
UCaromel added a commit to UCaromel/PHARE that referenced this pull request Jan 10, 2025
…putation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (PHAREHUB#914)

safer nu (PHAREHUB#911)

try fallback for dl on keyerror + ruffage (PHAREHUB#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (PHAREHUB#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem
UCaromel pushed a commit to UCaromel/PHARE that referenced this pull request Jan 13, 2025
UCaromel added a commit to UCaromel/PHARE that referenced this pull request Jan 13, 2025
updated + tested mhd_state, updated mhd_model

revert back my typo on hybrid_tagger

fixed typo in test_mhd_state

preparing mhd usablevecfield

new field initialisation logic

Added end of file newline in  field_user_initializer.hpp

added mhd state fixture

wrote test for mhd_state_fixtures

added mhd yee grid, modified gridlayout to handle both hybrid and mhd

up

init_functions

MHD solver

solver mhd update

more solver updates

preparing rebase

formatting

riemann reconstruction

quick commit fix

solved conflict

more solver updates

initial branch commit: new architecture for reconstruction + flux computation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (PHAREHUB#914)

safer nu (PHAREHUB#911)

try fallback for dl on keyerror + ruffage (PHAREHUB#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (PHAREHUB#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem

added time integration

added projection functions for centering, primitive/conservetive converter

added projection functions for centering, primitive/conservetive converter

solver ref binding in a lambda issue

added template deduction guide on for macOS compile on a struct of MHDSolver

New approach for template deduction for the struct in MHDSolver

added usable ghost cells

syntaxe fixes for Werror

full boundary conditions in solver

changed ghost cells function names to be more consistant with hybrid

corrected dummyhierarchy in testmhdsolver (operation on nullptr)

MHDMock simulator setup

added pybind wrappers and first tests

successful orszag-tang test

fixed typo

fixed typo

fixed typo

bug fixes (wrong usage of prevIndex nextIndex)
UCaromel added a commit to UCaromel/PHARE that referenced this pull request Jan 13, 2025
updated + tested mhd_state, updated mhd_model

revert back my typo on hybrid_tagger

fixed typo in test_mhd_state

preparing mhd usablevecfield

new field initialisation logic

Added end of file newline in  field_user_initializer.hpp

added mhd state fixture

wrote test for mhd_state_fixtures

added mhd yee grid, modified gridlayout to handle both hybrid and mhd

up

init_functions

MHD solver

solver mhd update

more solver updates

preparing rebase

formatting

riemann reconstruction

quick commit fix

solved conflict

more solver updates

initial branch commit: new architecture for reconstruction + flux computation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (PHAREHUB#914)

safer nu (PHAREHUB#911)

try fallback for dl on keyerror + ruffage (PHAREHUB#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (PHAREHUB#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem

added time integration

added projection functions for centering, primitive/conservetive converter

added projection functions for centering, primitive/conservetive converter

solver ref binding in a lambda issue

added template deduction guide on for macOS compile on a struct of MHDSolver

New approach for template deduction for the struct in MHDSolver

added usable ghost cells

syntaxe fixes for Werror

full boundary conditions in solver

changed ghost cells function names to be more consistant with hybrid

corrected dummyhierarchy in testmhdsolver (operation on nullptr)

MHDMock simulator setup

added pybind wrappers and first tests

successful orszag-tang test

fixed typo

fixed typo

fixed typo

bug fixes (wrong usage of prevIndex nextIndex)
nicolasaunai pushed a commit that referenced this pull request Mar 6, 2025
updated + tested mhd_state, updated mhd_model

revert back my typo on hybrid_tagger

fixed typo in test_mhd_state

preparing mhd usablevecfield

new field initialisation logic

Added end of file newline in  field_user_initializer.hpp

added mhd state fixture

wrote test for mhd_state_fixtures

added mhd yee grid, modified gridlayout to handle both hybrid and mhd

up

init_functions

MHD solver

solver mhd update

more solver updates

preparing rebase

formatting

riemann reconstruction

quick commit fix

solved conflict

more solver updates

initial branch commit: new architecture for reconstruction + flux computation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (#914)

safer nu (#911)

try fallback for dl on keyerror + ruffage (#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem

added time integration

added projection functions for centering, primitive/conservetive converter

added projection functions for centering, primitive/conservetive converter

solver ref binding in a lambda issue

added template deduction guide on for macOS compile on a struct of MHDSolver

New approach for template deduction for the struct in MHDSolver

added usable ghost cells

syntaxe fixes for Werror

full boundary conditions in solver

changed ghost cells function names to be more consistant with hybrid

corrected dummyhierarchy in testmhdsolver (operation on nullptr)

MHDMock simulator setup

added pybind wrappers and first tests

successful orszag-tang test

fixed typo

fixed typo

fixed typo

bug fixes (wrong usage of prevIndex nextIndex)
UCaromel added a commit to UCaromel/PHARE that referenced this pull request Mar 12, 2025
updated + tested mhd_state, updated mhd_model

revert back my typo on hybrid_tagger

fixed typo in test_mhd_state

preparing mhd usablevecfield

new field initialisation logic

Added end of file newline in  field_user_initializer.hpp

added mhd state fixture

wrote test for mhd_state_fixtures

added mhd yee grid, modified gridlayout to handle both hybrid and mhd

up

init_functions

MHD solver

solver mhd update

more solver updates

preparing rebase

formatting

riemann reconstruction

quick commit fix

solved conflict

more solver updates

initial branch commit: new architecture for reconstruction + flux computation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (PHAREHUB#914)

safer nu (PHAREHUB#911)

try fallback for dl on keyerror + ruffage (PHAREHUB#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (PHAREHUB#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem

added time integration

added projection functions for centering, primitive/conservetive converter

added projection functions for centering, primitive/conservetive converter

solver ref binding in a lambda issue

added template deduction guide on for macOS compile on a struct of MHDSolver

New approach for template deduction for the struct in MHDSolver

added usable ghost cells

syntaxe fixes for Werror

full boundary conditions in solver

changed ghost cells function names to be more consistant with hybrid

corrected dummyhierarchy in testmhdsolver (operation on nullptr)

MHDMock simulator setup

added pybind wrappers and first tests

successful orszag-tang test

fixed typo

fixed typo

fixed typo

bug fixes (wrong usage of prevIndex nextIndex)
nicolasaunai pushed a commit that referenced this pull request Mar 13, 2025
updated + tested mhd_state, updated mhd_model

revert back my typo on hybrid_tagger

fixed typo in test_mhd_state

preparing mhd usablevecfield

new field initialisation logic

Added end of file newline in  field_user_initializer.hpp

added mhd state fixture

wrote test for mhd_state_fixtures

added mhd yee grid, modified gridlayout to handle both hybrid and mhd

up

init_functions

MHD solver

solver mhd update

more solver updates

preparing rebase

formatting

riemann reconstruction

quick commit fix

solved conflict

more solver updates

initial branch commit: new architecture for reconstruction + flux computation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (#914)

safer nu (#911)

try fallback for dl on keyerror + ruffage (#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem

added time integration

added projection functions for centering, primitive/conservetive converter

added projection functions for centering, primitive/conservetive converter

solver ref binding in a lambda issue

added template deduction guide on for macOS compile on a struct of MHDSolver

New approach for template deduction for the struct in MHDSolver

added usable ghost cells

syntaxe fixes for Werror

full boundary conditions in solver

changed ghost cells function names to be more consistant with hybrid

corrected dummyhierarchy in testmhdsolver (operation on nullptr)

MHDMock simulator setup

added pybind wrappers and first tests

successful orszag-tang test

fixed typo

fixed typo

fixed typo

bug fixes (wrong usage of prevIndex nextIndex)
UCaromel added a commit to UCaromel/PHARE that referenced this pull request Apr 15, 2025
updated + tested mhd_state, updated mhd_model

revert back my typo on hybrid_tagger

fixed typo in test_mhd_state

preparing mhd usablevecfield

new field initialisation logic

Added end of file newline in  field_user_initializer.hpp

added mhd state fixture

wrote test for mhd_state_fixtures

added mhd yee grid, modified gridlayout to handle both hybrid and mhd

up

init_functions

MHD solver

solver mhd update

more solver updates

preparing rebase

formatting

riemann reconstruction

quick commit fix

solved conflict

more solver updates

initial branch commit: new architecture for reconstruction + flux computation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (PHAREHUB#914)

safer nu (PHAREHUB#911)

try fallback for dl on keyerror + ruffage (PHAREHUB#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (PHAREHUB#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem

added time integration

added projection functions for centering, primitive/conservetive converter

added projection functions for centering, primitive/conservetive converter

solver ref binding in a lambda issue

added template deduction guide on for macOS compile on a struct of MHDSolver

New approach for template deduction for the struct in MHDSolver

added usable ghost cells

syntaxe fixes for Werror

full boundary conditions in solver

changed ghost cells function names to be more consistant with hybrid

corrected dummyhierarchy in testmhdsolver (operation on nullptr)

MHDMock simulator setup

added pybind wrappers and first tests

successful orszag-tang test

fixed typo

fixed typo

fixed typo

bug fixes (wrong usage of prevIndex nextIndex)
nicolasaunai pushed a commit that referenced this pull request Apr 16, 2025
updated + tested mhd_state, updated mhd_model

revert back my typo on hybrid_tagger

fixed typo in test_mhd_state

preparing mhd usablevecfield

new field initialisation logic

Added end of file newline in  field_user_initializer.hpp

added mhd state fixture

wrote test for mhd_state_fixtures

added mhd yee grid, modified gridlayout to handle both hybrid and mhd

up

init_functions

MHD solver

solver mhd update

more solver updates

preparing rebase

formatting

riemann reconstruction

quick commit fix

solved conflict

more solver updates

initial branch commit: new architecture for reconstruction + flux computation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (#914)

safer nu (#911)

try fallback for dl on keyerror + ruffage (#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem

added time integration

added projection functions for centering, primitive/conservetive converter

added projection functions for centering, primitive/conservetive converter

solver ref binding in a lambda issue

added template deduction guide on for macOS compile on a struct of MHDSolver

New approach for template deduction for the struct in MHDSolver

added usable ghost cells

syntaxe fixes for Werror

full boundary conditions in solver

changed ghost cells function names to be more consistant with hybrid

corrected dummyhierarchy in testmhdsolver (operation on nullptr)

MHDMock simulator setup

added pybind wrappers and first tests

successful orszag-tang test

fixed typo

fixed typo

fixed typo

bug fixes (wrong usage of prevIndex nextIndex)
UCaromel added a commit to UCaromel/PHARE that referenced this pull request Jul 11, 2025
updated + tested mhd_state, updated mhd_model

revert back my typo on hybrid_tagger

fixed typo in test_mhd_state

preparing mhd usablevecfield

new field initialisation logic

Added end of file newline in  field_user_initializer.hpp

added mhd state fixture

wrote test for mhd_state_fixtures

added mhd yee grid, modified gridlayout to handle both hybrid and mhd

up

init_functions

MHD solver

solver mhd update

more solver updates

preparing rebase

formatting

riemann reconstruction

quick commit fix

solved conflict

more solver updates

initial branch commit: new architecture for reconstruction + flux computation

improved test, fixed some bugs in godunov-fluxes

better timing directory creation (PHAREHUB#914)

safer nu (PHAREHUB#911)

try fallback for dl on keyerror + ruffage (PHAREHUB#916)

convenient utils for mpi/hierarchies

keep pyattrs on compute_from_hier

nan min/max to handle possible nan ghosts (PHAREHUB#923)

* nan min/max to handle possible nan ghosts

* flatten

rm atefact file

fixed missing template keyword for macos-12 build

more explicit unwrapping in godunov fluxes with variadic arguments of unclear size

fixed lambda capture problem

fixed lambda capture problem

added time integration

added projection functions for centering, primitive/conservetive converter

added projection functions for centering, primitive/conservetive converter

solver ref binding in a lambda issue

added template deduction guide on for macOS compile on a struct of MHDSolver

New approach for template deduction for the struct in MHDSolver

added usable ghost cells

syntaxe fixes for Werror

full boundary conditions in solver

changed ghost cells function names to be more consistant with hybrid

corrected dummyhierarchy in testmhdsolver (operation on nullptr)

MHDMock simulator setup

added pybind wrappers and first tests

successful orszag-tang test

fixed typo

fixed typo

fixed typo

bug fixes (wrong usage of prevIndex nextIndex)
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