TopOpt.jl currently supports only Dirichlet (Ferrite.Dirichlet) and Neumann (surface load / heat-flux) boundary conditions. Robin (mixed/convective) boundary conditions of the form a·u + b·∂u/∂n = g are not supported.
Robin BCs matter for two physics:
- Heat transfer: convective heat transfer (Newton's law of cooling),
-k ∇T·n = h (T - T_∞), i.e. h·T + k ∂T/∂n = h·T_∞.
- Structural mechanics: elastic foundations / spring supports (Winkler boundary), where a boundary reaction is proportional to the displacement.
Implementing them requires:
- adding the Robin term as a boundary integral over the Robin facets, contributing to both the stiffness/conductivity matrix and the load vector,
- keeping the added matrix/vector contributions differentiable via Zygote,
- wiring them into the
HeatConductionProblem and/or StiffnessTopOptProblem constructors and the FEA assembly path (src/TopOptProblems/matrices_and_vectors.jl, src/TopOptProblems/assemble.jl),
- distinguishing the Robin (external, non-penalized) contribution from penalized loads, consistent with the existing
weights/fes vs dloads/fixedload/cload convention.
Prepared with assistance from deepseek-v4-pro via opencode.
TopOpt.jl currently supports only Dirichlet (
Ferrite.Dirichlet) and Neumann (surface load / heat-flux) boundary conditions. Robin (mixed/convective) boundary conditions of the forma·u + b·∂u/∂n = gare not supported.Robin BCs matter for two physics:
-k ∇T·n = h (T - T_∞), i.e.h·T + k ∂T/∂n = h·T_∞.Implementing them requires:
HeatConductionProblemand/orStiffnessTopOptProblemconstructors and the FEA assembly path (src/TopOptProblems/matrices_and_vectors.jl,src/TopOptProblems/assemble.jl),weights/fesvsdloads/fixedload/cloadconvention.Prepared with assistance from deepseek-v4-pro via opencode.