NonlinearPoisson
Published configurations
Prescribed-state semilinear residual and tangent assembly.
Measured operation
Measures the volume assembly used by semilinear Poisson Newton steps.
The benchmark separates residual and tangent costs at a fixed discrete state.
Architecture
On the unit box, a public DOF interpolation prescribes \(q=s(1+x_0)\). Separate public forms assemble \(R(q;v)=\int\nabla q\cdot\nabla v+(q+q^3)v\) and \(J(q;w,v)=\int\nabla w\cdot\nabla v+(1+3q^2)wv\). Untimed gates compare the tangent with the original quadrature loop, check analytic actions, and differentiate the assembled residual. Warm replacement assembly is timed; a post-timing state change checks cache invalidation. There are no constraints, boundary integrals, source terms, nonlinear iterations, or linear solves in this scope. Curved Q2 cases use the existing volume-preserving quadratic shear in dimensions two and three. Its first coordinate is unchanged, so the same affine state and analytic actions apply without a geometry-dependent reference solve.
Recorded results
Each case retains its original inputs, iteration policy and correctness checks. Raw reports preserve counters, repetitions and the Google Benchmark context. CPU, wall and manually supplied times are labeled separately; unlike operations and configurations are not averaged together.
Timing history
RodinNonlinearPoissonAssemblyBenchmarks · auto · regular · ranks: 1
No timing history has been published for this component.
Benchmark machine and measurement conditions
Published CI benchmarks run on standard GitHub-hosted ubuntu-24.04
virtual machines for public repositories.
| System | CPU | Memory | SSD |
|---|---|---|---|
| Ubuntu 24.04, x64 | 4 vCPUs | 16 GB | 14 GB |
The benchmark builds use GCC 14 and Release mode. Each job runs one benchmark executable at a time. OpenMP, OpenBLAS and MKL use one thread; MPI ranks share the same runner. The selected configuration identifies the build and rank count.
The CPU model and host load can vary between virtual machines, so small timing differences should be checked across repeated runs. GitHub runner specifications describe the available hardware. The source workflow is BenchmarkGroup.yml.