HPC FEniCS
Treat FEniCS as a family with two main stacks: classic FEniCS and DOLFINx.
Start
- Read
references/runtime-selection.mdfirst. - Read
references/dolfinx-boundary-workflow.mdwhen targeting DOLFINx boundary conditions. - Read
references/ufl-and-solver-patterns.mdwhen translating PDEs, choosing spaces, or building forms. - Read
references/pde-template-cookbook.mdwhen mapping common PDE classes to known formulation patterns. - Read
references/time-dependent-and-nonlinear-patterns.mdwhen building transient or nonlinear solvers. - Read
references/implementation-skeletons.mdwhen you need a concrete script shape for classic FEniCS or DOLFINx. - Read
references/petsc-solver-playbook.mdwhen choosing linear, nonlinear, or block solver settings. - Read
references/mixed-problems-and-output.mdwhen working with mixed spaces, XDMF, or post-processing. - Read
references/cluster-execution-playbook.mdwhen staging a FEniCS or DOLFINx script for scheduler-backed cluster execution. - Read
references/boundary-io-and-errors.mdwhen repairing runtime failures or resolving IO issues.
Work sequence
- Choose one stack and stay consistent:
- classic FEniCS:
fenicsordolfin - modern stack:
dolfinx
- classic FEniCS:
- Translate the PDE into the correct weak form before writing code.
- Match unknown type and space:
- scalar field -> scalar space
- vector field -> vector space
- mixed formulation -> mixed space with explicit subspace handling
- For linear problems, use
TrialFunctionandTestFunction. - For nonlinear problems, use a
Functionfor the unknown and solve a residual form. - Write outputs in a format the expected post-processor can open, usually XDMF for mesh-coupled fields.
Guardrails
- Do not mix classic FEniCS imports with DOLFINx APIs in one script.
- Do not use
TrialFunctionfor a nonlinear unknown. - Do not guess a boundary condition if the PDE is under-constrained; say what is missing.
- Do not ignore shape and rank mismatches in UFL expressions.
Additional References
Load these on demand:
references/gmsh-meshtags-and-refinement.mdfor imported meshes, physical groups, markers, and refinement transferreferences/io-visualization-and-writers.mdfor XDMF, VTK, VTX, and visualization-safe outputreferences/parallel-and-mpi-caveats.mdfor ownership, boundary marking, and parallel consistencyreferences/space-boundary-output-matrix.mdfor function-space, boundary-condition, and writer-selection matricesreferences/cluster-execution-playbook.mdfor MPI launch, environment pinning, and cluster-side IO planning
Reusable Templates
Use assets/templates/ when a concrete script scaffold is needed, especially:
poisson_dolfinx.pytransient_diffusion_dolfinx.pyfenics-dolfinx-slurm.sh
Outputs
Report:
- chosen stack and version family if known
- PDE form and space selection
- boundary conditions applied
- expected output files
- the exact failure class if the script is being repaired
微信扫一扫