Jukka Aho
|
e67c888c4d
|
feat(physics): Add concrete Physics implementation with boundary conditions
Create src/physics.jl with concrete Physics struct implementation:
- Physics{Formulation, Field, Mesh, Material} parameterized struct
- DirichletBC for essential BCs (prescribed displacements/temperatures)
- NeumannBC for natural BCs (surface tractions/heat flux)
- Constraint placeholder for future constraint handling
- Constructor with automatic type inference
- add_dirichlet!(physics, nodes, components, value) implementation
- add_neumann!(physics, surfaces, tractions) implementation
Physics references Mesh (does not own it) for memory efficiency and
multiphysics coupling. Type parameter order optimized for dispatch:
formulation × field determines assembly method specialization.
Example:
physics = Physics(mesh, :all, Displacement{3}(),
ContinuumFormulation{FullThreeD}(), steel)
Uses abstract interface from src/physics/api.jl.
Part of systematic modular API architecture.
|
2025-11-15 18:40:47 +02:00 |
|