caneMultiphysics is a MATLAB-based research code for finite element and isogeometric multiphysics analysis developed at the Chair of Structural Analysis, Technical University of Munich. The repository contains classical FEM solvers, NURBS-based isogeometric solvers, fluid and structural dynamics coupling, contact mechanics, thermal analysis, uncertainty quantification, and shape optimization examples.
The executable examples live under main/. The implementation modules live beside it, for example FEMThermalConductionAnalysis/, FEMComputationalFluidDynamicsAnalysis/, isogeometricThinStructureAnalysis/, and MonteCarloSimulationAnalysis/.
Start MATLAB in the cane repository root, then add the project to the path:
addpath(genpath(pwd))Run a single application script:
run('main/main_FEMThermalConductionAnalysis/main_steadyStateThermalConductionAnalysis.m')The main/ folder is the application catalog. Each subfolder groups runnable scripts by analysis area. To run another application, keep the repository on the MATLAB path and replace the path in run(...) with the desired script under main/.
The unit-test driver main_runUnitTests.m covers quadrature, utility functions, isogeometric beam and membrane analysis, Kirchhoff-Love shells, FEM thermal conduction, plate in membrane action, contact, IGA/FEM CFD, FSI, and shape optimization.
run('main/main_unitTests/main_runUnitTests.m')| Application area | Representative script | Output |
|---|---|---|
| FEM thermal conduction | main_thermalConductionBenchmarks.m | 2 figures |
| FEM plane stress | main_convergenceStudyInfinitePlateWithHole.m | 4 figures |
| FEM contact mechanics | main_HertzConvergenceStudy.m | 4 figures |
| FEM incompressible CFD | main_steadyStateIncompressibleNavierStokesFlow.m | VTK output |
| FEM fluid-structure interaction | main_plotFluidStructureAndInterfaceDiscretizations.m | setup and interface figures |
| FEM shape optimization | main_unconstrainedCFDShapeOptimizationDrag.m | 2 figures |
| IGA membrane with embedded cables | main_steadyStateDDMFourPointSail.m | benchmark driver |
| IGA Kirchhoff-Love shell | main_scordelisLoRoof.m | 3 figures |
| IGA incompressible CFD | main_steadyStateStokesFlowInUnitSquareDomain.m | velocity field |
| Monte Carlo simulation | main_monteCarloSimpleBenchmark.m | 1 figure |
A practical minimum target is MATLAB R2015b or newer for the core examples, with the relevant domain toolboxes installed when a script asks for them. The Monte Carlo benchmark uses parfor and norminv, so it benefits from Parallel Computing Toolbox and requires Statistics and Machine Learning Toolbox for that example.
| Path | Role |
|---|---|
main/ |
Runner scripts and benchmark applications. Start here. |
inputGiD/ and gid_cases/ |
GiD model input data for FEM examples. |
outputVTK/ |
VTK output written by CFD and other postprocessors. |
basisFunctions/ |
Classical finite element basis functions and quadrature utilities. |
CAGDKernel/ |
B-spline and NURBS geometry, refinement, base-vector, and graphics utilities. |
equationSystemSolvers/ |
Linear-system solvers and iterative solver wrappers. |
efficientComputation/ |
Pagewise and vectorized kernels used by larger analyses. |
parsers/ |
GiD and model parsers. |
unitTest/ |
MATLAB unit-test classes used by main/main_unitTests. |
documentation/ |
Public README images and project documentation. |
Main application folders:
| Path | Application area |
|---|---|
main/main_FEMThermalConductionAnalysis/ |
FEM thermal conduction |
main/main_FEMPlateInMembraneActionAnalysis/ |
FEM plane stress and membrane action |
main/main_FEMContactMechanicsAnalysis/ |
FEM contact mechanics |
main/main_FEMComputationalFluidDynamicsAnalysis/ |
FEM computational fluid dynamics |
main/main_FEMComputationalFluidStructureInteractionAnalysis/ |
FEM fluid-structure interaction |
main/main_shapeOptimization/ |
CFD shape optimization |
main/main_isogeometricBeamAnalysis/ |
IGA beam analysis |
main/main_isogeometricMembraneAnalysis/ |
IGA membranes and embedded cables |
main/main_isogeometricKirchhoffLoveShellAnalysis/ |
IGA Kirchhoff-Love shells |
main/main_isogeometricComputationalFluidDynamicsAnalysis/ |
IGA computational fluid dynamics |
main/main_MonteCarloSimulationAnalysis/ |
Monte Carlo simulation |
main/main_unitTests/ |
Unit-test runner |
Representative scripts:
- main_steadyStateThermalConductionAnalysis.m
- main_transientThermalConductionAnalysis.m
- main_thermalConductionBenchmarks.m
The thermal module solves steady and transient heat-transfer problems,
Benchmark script: main_thermalConductionBenchmarks.m. See [1] for the finite element formulation background.
Representative scripts:
- main_convergenceStudyInfinitePlateWithHole.m
- main_steadyStateGeometricallyLinearPlateInMembraneAction.m
- main_modalAnalysisPlateInMembraneAction.m
For linear plane stress,
Benchmark script: main_convergenceStudyInfinitePlateWithHole.m. The plotted convergence lines connect only the actual computed GiD refinement cases. See [1] for the finite element formulation background.
Representative scripts:
- main_HertzConvergenceStudy.m
- main_FEMContactLinearPlateInMembraneAction.m
The contact module handles frictionless Signorini contact,
Benchmark script: main_HertzConvergenceStudy.m. The circular markers are the actual GiD refinement cases and MATLAB connects them with straight line segments.
Representative scripts:
- main_steadyStateIncompressibleNavierStokesFlow.m
- main_transientIncompressibleNavierStokesFlow.m
- main_transientNavierStokesFlowTaylorGreenVortices.m
The FEM CFD module solves incompressible Navier-Stokes problems using a residual-based Variational Multiscale Method (VMS) [2-4]. In strong form,
With test functions
where
and a residual-based VMS stabilization can be expressed as
The VMS split separates resolved and unresolved velocity and pressure scales,
and models the unresolved scales from the momentum and continuity residuals,
Here,
Benchmark script: main_steadyStateIncompressibleNavierStokesFlow.m. The script writes VTK output under outputVTK/FEMComputationalFluidDynamicsAnalysis/.
Representative scripts:
- main_plotFluidStructureAndInterfaceDiscretizations.m
- main_FSIFlexibleElasticStructure.m
- main_FSIRigidCylinderOnSpring.m
The FSI examples combine a Navier-Stokes fluid domain, a structural domain, and an interface Gamma_FSI where kinematic and traction compatibility are enforced:
Benchmark script: main_plotFluidStructureAndInterfaceDiscretizations.m. See [5-7] for the Turek FSI benchmark and related FSI/interface studies produced with this code base.
Representative script:
- main_unconstrainedCFDShapeOptimizationDrag.m
The shape optimization example minimizes drag for a 2D cylinder-flow problem by perturbing the cylinder radius,
Benchmark script: main_unconstrainedCFDShapeOptimizationDrag.m. See [8] for risk-aware CFD shape optimization work produced with this code base.
Representative script:
- main_curvedBeamTipShear.m
- main_IGACurvedBeamTipShearConvergence.m
This benchmark uses exact NURBS geometry for a curved beam modeled as a plate in membrane action. It compares the stress field against a closed-form reference solution. The convergence plots repeat the same analytical error computation over several h-refinement levels. Related isogeometric coupling and domain-decomposition formulations are given in [9,10].
Benchmark script: main_curvedBeamTipShear.m.
Representative scripts:
- main_steadyStateDDMFourPointSail.m
- main_FoFiFourPointSail.m
- main_modalAnalysisFourPointSail.m
The membrane module covers single-patch and multipatch NURBS membranes, weak Dirichlet boundary conditions, domain decomposition, form-finding, modal analysis, transient response, and cable-coupled membrane models [9,11].
Representative scripts:
- main_scordelisLoRoof.m
- main_cantileverPlate.m
The shell examples use Kirchhoff-Love kinematics, where the mid-surface is represented by a NURBS surface and rotations are implied by the surface normal:
Benchmark script: main_scordelisLoRoof.m. The contour shows the first principal membrane stress resultant n^1 on the geometrically nonlinear solution; the deformation is scaled for visualization. See [10,12,13] for nonlinear isogeometric shell analysis, multipatch shell coupling, and penalty-parameter studies.
Representative scripts:
- main_steadyStateStokesFlowInUnitSquareDomain.m
- main_steadyStateStokesFlowShearCavity.m
- main_transientNavierStokesFlowTaylorGreenVortices.m
IGA CFD uses the same residual-based VMS idea [2-4] together with smooth NURBS spaces for velocity and pressure fields:
The discrete trial fields are expanded directly in the NURBS basis,
while unresolved scales are again introduced through residual-based VMS stabilization.
Benchmark script: main_steadyStateStokesFlowInUnitSquareDomain.m.
Representative scripts:
- main_monteCarloSimpleBenchmark.m
- main_monteCarloSteadyStateFEMPlateInMembraneAction.m
- main_monteCarloSteadyStateIncompressibleNavierStokesFlow.m
The simple benchmark estimates statistics of
for which the exact mean is sqrt(e).
Benchmark script: main_monteCarloSimpleBenchmark.m. See [8] for uncertainty-aware design work connected to the stochastic-analysis functionality.
- Some scripts write VTK files under
outputVTK/. These outputs can be inspected in ParaView. - Several examples use GiD input models from
inputGiD/. If a parser error appears first, check that the expected case directory exists there.
caneMultiphysics is distributed under the BSD-style license in license.txt.
[1] T. J. R. Hughes, The Finite Element Method: Linear Static and Dynamic Finite Element Analysis, Dover Publications, 2000.
[2] T. J. R. Hughes, "Multiscale phenomena: Green's functions, the Dirichlet-to-Neumann formulation, subgrid scale models, bubbles and the origins of stabilized methods," Computer Methods in Applied Mechanics and Engineering 127, 387-401, 1995.
[3] Y. Bazilevs, V. M. Calo, J. A. Cottrell, T. J. R. Hughes and A. Reali, "Variational multiscale residual-based turbulence modeling for large eddy simulation of incompressible flows," Computer Methods in Applied Mechanics and Engineering 197, 173-201, 2007.
[4] E. Oñate, "Derivation of stabilized equations for numerical solution of advective-diffusive transport and fluid flow problems," Computer Methods in Applied Mechanics and Engineering 151, 233-265, 1998.
[5] S. Turek and J. Hron, "Proposal for numerical benchmarking of fluid-structure interaction between an elastic object and laminar incompressible flow," in Fluid-Structure Interaction, Lecture Notes in Computational Science and Engineering 53, 371-385, 2006.



















