Skip to content

Diffusion bits #311

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

Open
wants to merge 4 commits into
base: development
Choose a base branch
from
Open

Conversation

bknight1
Copy link
Member

@bknight1 bknight1 commented May 1, 2025

Add in:

  • A diffusion solver
  • A generic flux constitutive model (for setting up multi-component diffusion, but should be flexible for any flux term)
  • Anisotropic diffusion CM
  • Eulerian and Symbolic history manager

solver updates
-Add a diffusion solver
-symbolic ddt
-Eulerian ddt
CM updates
-Anisotropic diffusion CM
-Flux CM, allowing flux terms to be passed directly into the solver
Functions now appear correctly in the view() function
@bknight1 bknight1 requested a review from Copilot May 8, 2025 04:51
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR introduces new diffusion functionality, including a diffusion solver, a generic flux constitutive model, and an anisotropic diffusion constitutive model, along with Eulerian and symbolic strategies for history management.

  • Adds SNES_Diffusion class and integrates Eulerian and Symbolic history methods in solvers.
  • Updates module initializers to expose the new diffusion solver.
  • Extends maths functions with an L2_norm function and introduces new constitutive models for anisotropic diffusion and generic flux.

Reviewed Changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/underworld3/systems/solvers.py Adds SNES_Diffusion with new history management and solver setup
src/underworld3/systems/init.py Exposes the new diffusion-only solver and relevant DDt imports
src/underworld3/maths/functions.py Introduces a new L2_norm function for norm computations
src/underworld3/maths/init.py Imports the new L2_norm function
src/underworld3/constitutive_models.py Adds AnisotropicDiffusionModel and GenericFluxModel to support diffusion properties
Comments suppressed due to low confidence (1)

src/underworld3/systems/init.py:37

  • The module imports 'SemiLagragian_DDt' but elsewhere the union types and similar imports use the name 'SemiLagrangian_DDt'. Consider aligning the naming for consistency.
from .ddt import SemiLagragian_DDt

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