PhysicalGradient

Published configurations

Reference-to-physical derivative preparation through H1 expressions.

Measured operation

Measures public physical derivative expressions used by generic integrators.

Architecture

One retained affine cell and its owned mapped quadrature are used. The inverse Jacobians and reference table are warmed before timing. Changing the integration-point index requires physical-gradient preparation at every sample, not a repeated-point cache-hit measurement. Basis extraction and mesh/element queries inside the expression remain included; mapped quadrature construction, local matrix contraction and assembly are not. Specialized diffusion rules perform their own transformation loops, so this expression scope is not a timing decomposition of those rules.

An affine physical field \(f(x)=\eta(1+\sum_j(j+1)x_j)\) is represented through element DOF functionals. The scalar gradient must recover \(\eta(1,\ldots,d)\). Vector scopes use \(u_c=(c+1)f\), with \((\nabla u)_{cj}=\eta(c+1)(j+1)\) and \(\operatorname{div}u=\eta\sum_j(j+1)^2\). Perturbing one contributing basis must fail. Every physical basis component is also retained before timing and must remain exactly unchanged after the sweep. Native P1 scopes additionally compare every indexed basis derivative with fresh direct-point evaluation. Identity-map scopes distinguish geometric map order from reference-basis sample dependence. On affine simplices the warmed native P1 cache is intentionally reused throughout timing; the transform-product counter is a logical work proxy, not an instruction count. Native P1 basis access is materialized into an owned value before the mutable benchmark barrier; no deprecated const-reference barrier is used. The retained H1 value-return protocol is unchanged.

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

RodinPhysicalGradientBenchmarks · 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.

SystemCPUMemorySSD
Ubuntu 24.04, x644 vCPUs16 GB14 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.