arXiv Science⌕ Search

arXiv · 1103.6248

DOLFIN: Automated Finite Element Computing

Abstract

We describe here a library aimed at automating the solution of partial differential equations using the finite element method. By employing novel techniques for automated code generation, the library combines a high level of expressiveness with efficient computation. Finite element variational forms may be expressed in near mathematical notation, from which low-level code is automatically generated, compiled and seamlessly integrated with efficient implementations of computational meshes and high-performance linear algebra. Easy-to-use object-oriented interfaces to the library are provided in the form of a C++ library and a Python module. This paper discusses the mathematical abstractions and methods used in the design of the library and its implementation. A number of examples are presented to demonstrate the use of the library in application code.

Explore related subjects

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Anders Logg, Garth N. Wells. 2011-03-31. DOLFIN: Automated Finite Element Computing. https://doi.org/10.1145/1731022.1731030

Cite the original work for its findings. Save a collection to share your selection of sources.

KEEP EXPLORING

Related papers

A 55-Addition Rank-23 Scheme for $3\times3$ Matrix Multiplication via Exact Two-Sided Minimization

We give a scheme that multiplies two $3\times3$ matrices with 23 multiplications and 55 additions over any ring, one addition below the previous record of 56 (Sun, 2026) and the first below 56 for exact non-commutative $3\times3$ multiplication without a change of basis. The scheme forms 13 signed combinations of the entries of A and 14 of B, takes 23 products, and recombines them with 28 further additions; its correctness is machine-checked in Lean 4. The previous records, from 60 down to 56, were obtained by greedy common-subexpression elimination, which only bounds each side of a scheme from above. We minimize both input sides exactly by chain covering, and the output side exactly through the transposition principle: the 9-by-23 output map costs its transpose plus 14, and the transpose is a 9-input map that the input-side minimizer solves exactly. Applied to Perminov's cn122 scheme (class i19w225c4efh, published at 58 additions) this gives 55 = 13 + 14 + 28, where greedy elimination reaches only 29 on the output side. The same method shows that Sun's representative is output-optimal at 56, and an exact orbit-wide computation over the Heule-Kauers-Seidl database shows that the record class is the only database class attaining 55.

cs.MS↗

Finite-Dimensional Type I von Neumann Algebras in PyTorch: A GPU-Accelerated Framework for Random Block-Diagonal Operators

torch_vn_algebra is a PyTorch library for numerical work with finite-dimensional von Neumann algebras, i.e. direct sums of matrix algebras. These algebras are central to operator algebra theory and, via commutants of symmetries, describe quantum systems with conserved charges or superselection rules. To our knowledge, no numerical software treats them as a data type with their centre, family of traces, conditional expectations, inclusions and functional calculus. The library fills the gap between computer algebra (exact but small-scale) and quantum simulators (large-scale but limited to Hilbert-space matrices): it handles batches of operators on CPUs and GPUs with automatic differentiation, and converts operators, states and channels. Key features: Compact tensor representation: 4D tensor (B, C, kmax, kmax), where B is batch size (e.g. Monte Carlo samples), C is the number of summands, and kmax is the max block size, enabling batched GPU processing. Lazy evaluation: matrix data materialized only on access, avoiding memory waste. Random operator generation: custom eigenvalue distributions; Haar, SU(n), COE, CSE unitary ensembles. Functional calculus and spectral methods: matrix absolute value, square root, inverse, entropy via SVD; automatic switch between exact diagonalization (block size up to 256) and power iteration for extreme eigenvalues. Three trace functionals: Tr_blunt (sum of block traces), Tr_norm (dimension-normalized), tau_vN (faithful normal tracial state). Performance: on a Tesla P100 GPU, processing 20,000 samples of 100x100 operators yields up to 30x speedup over traditional CPU workflows. Availability: open-source at https://gitlab.com/a.hobukob/von_neumann_type_i/

cs.MS↗

Emulating DGEMM and ZGEMM with INT8 Matrix Engines on Intel Arc GPUs: Ozaki Scheme II on the Xe2 Architecture

Double-precision matrix multiplication, real (DGEMM) and complex (ZGEMM), dominates the run time of dense linear algebra and electronic-structure codes. On affordable GPUs, however, FP64 throughput is a small and shrinking fraction of the throughput of the low-precision matrix engines. Ozaki scheme II closes this gap by reducing a floating-point matrix product to a handful of exact INT8 products followed by a Chinese-remainder reconstruction; the number of products sets the accuracy. We present what is, to our knowledge, the first implementation of Ozaki scheme II for Intel GPUs. Written in SYCL on top of oneMKL, it runs entirely on the device and exposes the full BLAS dgemm/zgemm interface. Making the scheme fast on the Xe2 (Battlemage) architecture required keeping FP64 arithmetic out of all memory-bound kernels, a branch-free residue computation, an FP32 evaluation of the CRT quotient with a proven safety margin, 16-bit limb arithmetic in the reconstruction, and work-arounds for performance cliffs of the vendor INT8 GEMM. On an Intel Arc Pro B60 (24 GB) the emulated DGEMM reaches 17.3, 12.1 and 9.3 TFLOP/s with $s=8$, 12 and 16 moduli at $N=8192$, and up to 21.1 TFLOP/s overall, i.e. 12-28x the native FP64 DGEMM of the same board. The emulated ZGEMM, which uses the 3M form exactly in integer arithmetic, reaches up to 27.4 TFLOP/s and is 13.7-17.8x faster than native ZGEMM for $N\ge4096$ at $s=16$. With $s\ge16$ the results are correctly rounded for well-scaled inputs and, using an extended-width residue path ($s=20$-24), also for inputs with wide exponent ranges, whereas native DGEMM rounds only 2-13% of the entries correctly. We also report worst-case accuracy, phase breakdowns, energy, an ablation study, a comparison with Ozaki scheme I, and a validated performance model.

cs.MS↗