Feat: Core Physics Engine for Fluid-Thermal Topology Optimization (Fixes #86) - #230
Open
rainerrodrigues wants to merge 3 commits into
Open
Feat: Core Physics Engine for Fluid-Thermal Topology Optimization (Fixes #86)#230rainerrodrigues wants to merge 3 commits into
rainerrodrigues wants to merge 3 commits into
Conversation
…liaTopOpt#86) Implements P1-P1-P1 mixed element Stokes flow with Brinkman penalization and advection-diffusion coupling. Includes sequential Picard iteration solver and test suite.
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.
Description
This PR introduces the core finite element physics architecture required for Fluid-Thermal Topology Optimization, addressing the foundational requirements of Issue #86.
It implements a monolithic, one-way coupled solver tracking Velocity (
:u), Pressure (:p), and Temperature (:T) usingMixedDofHandlerinFerrite.jl.Key Mathematical & Architectural Implementations:
1e-6) into the pressure block to bypass the Ladyzhenskaya-Babuška-Brezzi (LBB) checkerboard instability inherent to P1-P1 Stokes flow.solve_fluid_thermal): Executes a two-step Picard iteration (solving the pure fluid domain first, then passing the velocity field into the coupled advection-diffusion matrix).Testing
test_fluid_thermal.jladded to the test suite.T < 0.0) characteristic of high-Péclet number advection-dominated flows without SUPG stabilization, as mathematically expected (Brooks & Hughes, 1982).Next Steps (Out of Scope for this PR)
Wiring this sequential solver into
Nonconvex.jlvia an objective function (e.g., Power Dissipation) and providing the adjoint sensitivities viaChainRulesCore. I will open a separate tracking issue for this integration.