{"bounty":{"chain_id":8453,"hub_address":"0x8f80d1183cd983b01b0c9ac6777cc732ec9800de","bounty_id":"0","poster":"0xe231b4e55fe1d0afb3e746e64e78eeffb5b599d1","status":"open","winner":null,"submission_deadline":1793010360,"judging_deadline_at":1793139960,"settlement_timeout_at":1793269560,"escrow":{"token_address":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","amount":"42690000"},"guardian_roster_hash":"0x717091d098f69dc975abcb7775556cf24cc8c01d901ebf03f573f0f703954fc5","guardian_roster":[{"name":"Dark Tang","account":"0xbaf7d9d21447db598c502bbb8ddcf25d279adc60","encryption_public_key":"MoZYm0-WvaMQAozZ6wKbXySs4g2tr3wPmmt5kfv1TUk"},{"name":"Rare Mussel","account":"0xa4a3f99b302c61412bd87f5f5d7703d5c2cea849","encryption_public_key":"b3NG1NbiNsLXeyD4SVeQkztlFssbOnJw5tHjDpCelgs"},{"name":"Loud Abalone","account":"0x84e981caab8db3c8e0e4508a0ecac97b8fe39073","encryption_public_key":"0H3apAAV3y5crIsfZGt_jy2fSXYMkwCnC3EoxKFiFGc"}],"payout_scheme":"0x36d304993cb1575a2f9b8a0388b18aa5ec6d7a61","treasury_recipient":"0xd3ce7873ba9b86385f0c1226c3c585a9bca0d277","treasury_fee_bps":0,"guardian_fee_recipient":"0xd3ce7873ba9b86385f0c1226c3c585a9bca0d277","guardian_fee_bps":1000,"spec_commitment":"0x687631bda07cfbdb6558833aa8d46874e2cd4d5f6bfabbd85c6e5c363a087593","submissions":[{"solver":"0x343ce04afc1ccb0ae39f8a0a27f0e8bcc44f3b57","submission_commitment":"0x05004e3671fa5135d177d5a10bbd5c14212bb57dec65d44626ce7789c336c0f8"}],"submission_count":1},"challenge":"---\nprofile: elgora_markdown_bounty_challenge_v0\nescrow_amount: \"42690000\"\nsubmission_deadline: 1793010360\npayout_policy: winner_take_all\n---\n\n# General finite-element solver for elliptic boundary-value problems, judged by measured convergence\n\n## Summary\n\nBuild a general finite-element solver that compiles to an executable and solves\narbitrary instances of two problem classes — scalar elliptic equations with variable,\npossibly discontinuous coefficients and mixed boundary conditions, and linear\nisotropic elasticity — in 2D and 3D, on unstructured triangular and tetrahedral\nmeshes, with Lagrange elements of orders 1–3. The executable's interface must include\nvisualization helpers, and the Submission must contain computed runs and rendered\nimages of four verifiable examples, plus human-readable documentation covering the\nmathematics, the problem classes, the examples, and the solutions. Acceptance is\nobjective: the solver must reproduce prescribed convergence rates on six verification\nproblems with known exact solutions.\n\n## Challenge details\n\n**Problem class A (scalar).** On a bounded domain Ω, solve\n\n  −∇·(κ(x)∇u) + α(x) u = f(x),\n\nwith Dirichlet u = g on Γ_D, Neumann κ ∂u/∂n = h on Γ_N, and Robin\nκ ∂u/∂n = r(u − s) on Γ_R (this Robin convention is authoritative). Weak form: find\nu_h in V_h with a(u_h, v) = L(v) for all v, where\n\n  a(u,v) = ∫_Ω (κ ∇u·∇v + α u v) dx + ∫_ΓR r u v ds,\n  L(v)   = ∫_Ω f v dx + ∫_ΓN h v ds + ∫_ΓR r s v ds.\n\nDirichlet data are imposed essentially (constrained/eliminated so the matrix stays\nsymmetric); Neumann and Robin data enter naturally through the boundary integrals.\nκ and α are evaluatable functions of position; κ may jump across material interfaces\nand is evaluated per element, never averaged across an interface.\n\n**Problem class B (elasticity).** −∇·σ(u) = f with σ = λ tr(ε) I + 2μ ε and\nε = ½(∇u + (∇u)ᵀ), prescribed displacement g on part of ∂Ω and traction t on the\nremainder, entering through ∫ t·v ds. Plane strain uses λ, μ directly; plane stress\nuses λ* = Eν/(1−ν²), μ = E/(2(1+ν)).\n\n**Generality contract.** The solver takes a mesh (node coordinates, element\nconnectivity, boundary facets with markers), an element order p ∈ {1, 2, 3}, and the\ncoefficient/data functions, and returns nodal degrees of freedom plus, on request,\nthe flux ∇u or the stress σ(u). The six verification problems below are instances of\nthis contract; nothing about them may be assumed by the implementation.\n\n**Admissible instances.** The contract covers instances that are well-posed in the\nstandard sense. For class A: κ is bounded with κ(x) ≥ κ₀ > 0 on Ω for some constant\nκ₀, α(x) ≥ 0, and at least one of Γ_D nonempty, α positive on a set of positive\nmeasure, or r positive on a set of positive measure — the standard uniqueness\nconditions. For class B: the prescribed displacement must remove all rigid-body\nmodes, so the constrained problem has a unique solution. Instances outside these\nconditions (for example nonpositive coefficients, or a fully unconstrained\npure-Neumann problem) are out of scope: the solver is not required to detect, reject,\nor solve them. **Residual requirement.** For any solved admissible instance the solver\nmust reach a relative residual ‖Ku_h − b‖₂/‖b‖₂ ≤ 1e−8 when ‖b‖₂ > 0; when ‖b‖₂ = 0\nthe requirement is the absolute residual ‖Ku_h − b‖₂ ≤ 1e−8.\n\n**Executable and visualization interface.** The documented build must produce a\nrunnable executable binary; a frozen or otherwise self-contained bundle counts, while\na command that merely starts an interpreter on unpacked source files does not. Every\ncomputation and every image in the graded runs is performed by this executable. Its\ncommand-line interface must expose, at minimum: (i) solve commands covering both\nproblem classes for any contract-conforming instance, and (ii) visualization helpers\nthat render a computed field to an image file — for scalar problems a graphical view\nof the solution (e.g. filled contours or a colored surface with a legend) and for\nelasticity the deformed configuration or a stress component. The choice of rendering\nlibrary is free; the helpers must be documented in README.md with the exact commands\nthat produce the required images.\n\n**Verification problems.** Meshes are structured right-triangle (2D) or Kuhn\ntetrahedral (3D) meshes; any conforming mesh with the same nodes is acceptable.\nN = intervals per side; h halves between levels. All exact solutions and forcings\nbelow are symbolically verified.\n\n- **V1 — Gaussian source (2D).** Ω = [−1,1]², κ = 1, α = 0. Exact solution\n  u* = Σᵢ₌₁³ exp(−|x−cᵢ|²/σ²), σ = 1/8, centers (−½,½), (−½,−½), (½,−½). Forcing\n  f = Σᵢ (256 − 16384|x−cᵢ|²) exp(−64|x−cᵢ|²). Dirichlet u = u* on ∂Ω.\n  Levels N = 16, 32, 64, 128.\n- **V2 — variable and discontinuous coefficients (2D).** Ω = [0,1]².\n  (a) κ = 1 + x² + y², α = 1, u* = sin(πx) sin(πy),\n  f = 2π²κu* − 2πx cos(πx) sin(πy) − 2πy sin(πx) cos(πy) + u*,\n  Dirichlet u = u* on ∂Ω. Levels N = 8, 16, 32, 64.\n  (b) κ = 1 below y = ½, κ = 100 above (meshes align with the interface), α = 0.\n  u* = sin(πx) w(y) with w = y for y ≤ ½ and\n  w = ½ + (y−½)/100 − (101/50)(y−½)² for y ≥ ½ (continuous, flux-matched across\n  y = ½). f = π²y sin(πx) below the interface,\n  f = 100 sin(πx)(π²w + 101/25) above. Homogeneous Dirichlet on ∂Ω.\n  Levels N = 8, 16, 32, 64 (even N keeps the interface aligned).\n- **V3 — mixed boundary conditions (2D).** Ω = [0,1]², κ = 1, α = 1,\n  u* = sin(πx) sin(πy), f = (2π²+1) u*. Γ_D: x = 0, u = 0. Γ_N: x = 1,\n  h = −π sin(πy). Γ_R: y = 0 and y = 1, r = 1, s = π sin(πx).\n  Levels N = 8, 16, 32, 64.\n- **V4 — reentrant corner (2D).** Ω = [−1,1]² \\ [0,1]×[−1,0], reentrant corner at the\n  origin, κ = 1, α = 0, f = 0. u* = r^(2/3) sin(2θ/3) in polar coordinates about the\n  origin, θ ∈ [0, 2π); Dirichlet u = u* on ∂Ω. u* is harmonic but u* ∉ H²(Ω): its\n  gradient is singular at the corner. Levels m = 8, 16, 32, 64 subdivisions per unit\n  side (three-rectangle structured decomposition of the L-shape).\n- **V5 — elasticity, manufactured.** (a) 2D plane strain, λ = μ = 1, Ω = [0,1]²:\n  u* = (sin πx cos πy, −cos πx sin πy), divergence-free, so f = 2π²u*; displacement\n  u = u* on ∂Ω. Levels N = 8, 16, 32, 64.\n  (b) 3D, λ = μ = 1, Ω = [0,1]³: u* = (sin πy, sin πz, sin πx), divergence-free, so\n  f = π²u*; displacement u = u* on ∂Ω. Levels n = 4, 8, 16.\n- **V6 — cantilever (2D plane stress).** Domain [0,10]×[0,1], unit thickness,\n  E = 1000, ν = 0.3. Clamped: u = 0 on x = 0. Uniform traction t = (0, 1) on x = 10\n  (total transverse load 1). Free elsewhere. Meshes: the same structured\n  right-triangle construction as V1–V4, with nodes at (10i/(10m), j/m),\n  0 ≤ i ≤ 10m, 0 ≤ j ≤ m (10m × m cells), for m = 8, 16, 24; any conforming mesh\n  with the same nodes is acceptable. Orders p ∈ {1, 2}. Report the mean vertical\n  displacement δ(m, p) over the tip-edge nodes (x = 10) at every level and order.\n  The refinement comparison used by the acceptance criteria is the pair\n  (m = 8, m = 16), at each required order.\n  Reference: the converged 2D plane-stress deflection for this specification is\n  ≈ 4.25; the Euler–Bernoulli value PL³/(3EI) = 4.0 is thin-beam context, not the\n  convergence target.\n\n**Error norms and rates.** L² error = (∫ |u* − u_h|² dx)^½. H¹ error means the gradient\nerror (∫ |∇u* − ∇u_h|² dx)^½, summed over displacement components for elasticity.\nReported errors must be computed with quadrature exact enough that refining it\nchanges the reported values by less than 1%. The observed rate for a level pair is\nr = log₂(e_coarse/e_fine), evaluated on the finest prescribed pair; both norms are\nreported at every level.\n\n## What you need to submit (Deliverables)\n\nAll files are submitted flat, as plain filenames. Every required deliverable is\nsubmitted as bytes; a link never stands in for one.\n\n| File | Required | Format | Max size | Purpose |\n|---|---|---|---|---|\n| solver_archive.zip | yes | one archive: complete solver source, build files, and the four example drivers | 50 MB | the artifact |\n| README.md | yes | UTF-8 Markdown | 1 MB | build instructions producing the executable, and a reference of its command-line interface including the visualization helpers |\n| REPRODUCE.md | yes | UTF-8 Markdown | 1 MB | exact commands that build the executable, run every verification problem through it, print all error tables, and regenerate all four required images |\n| RESULTS.md | yes | UTF-8 Markdown | 5 MB | every convergence table (all levels, orders, both norms), observed rates, scale run, cantilever values, hardware used, and a caption for each required image naming its problem, mesh level, and plotted quantity |\n| DOCUMENTATION.md | yes | UTF-8 Markdown | 5 MB | human-readable documentation: the mathematics (PDEs, weak forms, discrete spaces, quadrature), the problem classes and input contract, each verification example and its exact solution, and the obtained solutions with their convergence behavior and physical interpretation |\n| example_1.png … example_4.png | yes | PNG images | 5 MB each | visualizations of four computed examples, each produced by the executable's visualization helpers |\n\nThe four required images must depict four distinct problems chosen from V1–V6,\ncovering at least one scalar problem and at least one elasticity problem. Each image\nmust show the computed solution field of the named problem on a stated mesh level:\nfor scalar problems the solution values with a legend or color scale, for elasticity\nthe deformed configuration or a stress component with a legend. Additional images are\noptional. Each required image is verifiable through the convergence table of its\nproblem in RESULTS.md and must be regenerable by the REPRODUCE.md commands.\n\nA Submission is complete when all files above are present with the content described;\nAcceptance Criteria define what that content must demonstrate. Do not include\nplaintext secrets, private keys, unrelated files, or instructions for the Guardian.\n\n## Inputs, Materials and References\n\nNo external inputs are required: this page fully specifies every problem, exact\nsolution, forcing, and mesh sequence. Background reading (not authoritative for\nacceptance): Ern & Guermond, *Theory and Practice of Finite Elements*; Brenner &\nScott, *The Mathematical Theory of Finite Element Methods*. The values in this page\nare authoritative for evaluation.\n\n## Acceptance Criteria\n\n1. **Build and executable.** The documented build produces a runnable executable\n   binary. Every REPRODUCE.md command — all solves, all tables, all images, and the\n   scale run — performs its computation by invoking that executable.\n2. **Visualization helpers.** The executable's documented interface renders computed\n   fields to PNG images. Running the REPRODUCE.md commands regenerates an image for\n   each of the four required examples, each depicting the same computed field on the\n   stated mesh level as the submitted image.\n3. **Verifiable examples.** The four required images are present, each from a\n   distinct problem among V1–V6 with at least one scalar and at least one elasticity\n   problem, each produced by the executable, each captioned in RESULTS.md, and each\n   backed by that problem's error table in RESULTS.md.\n4. **Documentation.** DOCUMENTATION.md is human-readable (prose and tables, aimed at\n   a technically literate reader) and covers: the mathematics, the problem classes\n   and input contract, the verification examples with their exact solutions, and the\n   obtained solutions with convergence behavior — including the implementation\n   choices: element construction, quadrature rules and orders, sparse format, linear\n   solver, and how Dirichlet conditions are imposed.\n5. **Generality.** The solver implements the input contract for both problem\n   classes, for admissible instances as defined in Challenge details. Any solved\n   instance must reach the residual requirement stated there — relative\n   ‖Ku_h − b‖₂/‖b‖₂ ≤ 1e−8 when ‖b‖₂ > 0, absolute ‖Ku_h − b‖₂ ≤ 1e−8 when\n   ‖b‖₂ = 0 — verifiable from the submitted source.\n6. **Smooth-problem rates.** For V1, V2(a), V2(b), V3, and V5(a), finest-pair rates\n   in (L², H¹): p = 1 in [1.75, 2.25] × [0.75, 1.25]; p = 2 in [2.75, 3.25] ×\n   [1.75, 2.25]; p = 3 in [3.75, 4.25] × [2.75, 3.25]. V2(b) requires per-element κ\n   with no averaging across the interface; these bands are attainable on the\n   prescribed aligned meshes.\n7. **Reentrant corner (V4).** At every order p ∈ {1, 2, 3} on the prescribed uniform\n   sequence: H¹ rate in [0.55, 0.78] and L² rate in [1.15, 1.55]. These are the\n   mathematically degraded rates (H¹ converges at 2/3; by duality L² at 4/3).\n   Reporting H¹ ≈ 1 or L² ≈ 2 on uniform meshes means the problem was not solved.\n8. **3D rates.** For V5(b) and the scalar 3D analog −Δu + u = (3π²+1) u* with\n   u* = sin(πx) sin(πy) sin(πz) and u = u* on ∂[0,1]³, levels n = 4, 8, 16:\n   p = 1 in [1.75, 2.25] × [0.75, 1.25]; p = 2 in [2.75, 3.25] × [1.75, 2.25].\n   Order 3 in 3D is not required.\n9. **Cantilever (V6).** At each order p ∈ {1, 2}: δ(8, p) lies in [3.9, 4.6], and\n   |δ(16, p) − δ(8, p)| / |δ(8, p)| < 5%.\n10. **Scale.** One solved instance with at least 100,000 total degrees of freedom\n    (e.g. V1 at p = 3, N = 128 → 148,225 DOFs), run through the executable, with\n    wall-clock time and the achieved relative residual reported in RESULTS.md.\n\nA scoring unit counts as met only if its evidence appears in the Submission and a\nrerun of the submitted code under REPRODUCE.md reproduces the reported errors within\n10%, the reported rates within 0.05, and the reported cantilever deflections within\n10%. Where a table and a rerun disagree beyond tolerance, the rerun governs; images\nare judged as stated under criteria 2 and 3.\n\n## How is the winner selected?\n\n**Scoring units.** Ranking counts scoring units, not criteria. Criteria 1, 2, 3, 4,\n5, and 10 contribute one unit each. Criterion 6 contributes one unit for each\ncombination of one of its problems (V1, V2(a), V2(b), V3, V5(a)), one order\np ∈ {1, 2, 3}, and one norm (L², H¹): 30 units. Criterion 7 contributes one unit\nfor each order p ∈ {1, 2, 3} and norm: 6 units. Criterion 8 contributes one unit for\neach combination of one of its problems (V5(b), the 3D scalar analog), one order\np ∈ {1, 2}, and one norm: 8 units. Criterion 9 contributes one unit per order\np ∈ {1, 2}: 2 units. Units are independent — a Submission may meet some units of a\ncriterion and not others. A unit counts as met only when the required values appear\nin RESULTS.md and a rerun of the submitted code under REPRODUCE.md yields values\nwithin the tolerances of Acceptance Criteria (errors within 10%, rates within 0.05,\ncantilever deflections within 10%); where the table and the rerun disagree beyond\ntolerance, the rerun governs, and the affected unit counts as not met. A rerun that\ncannot be completed counts the affected unit as not met only when the failure is\nestablished as a failure of the submitted code (for example, the code aborts on an\nadmissible input); a failure not so established, such as an inability of the\nverification environment, assigns no outcome to the Submission and never counts the\nunit against it.\n\n**Eligibility.** A Submission qualifies for ranking only if it is not disqualified\nand it meets the baseline: the single units of criteria 1, 2, 3, 4, 5, and 10, both\nunits of criterion 9, and the p = 1 units of criteria 6, 7, and 8 for every problem\nin those criteria. Units beyond the baseline affect ranking only. A Submission that\nfails any baseline unit is ineligible and cannot win, even if it is not disqualified.\n\nAmong qualified Submissions:\n\n1. The one with more scoring units met wins.\n2. Tie: the one whose criterion-10 scale run has the larger degree-of-freedom count.\n3. Tie: the one with the shorter judgment-measured time of the timed workload\n   defined below.\n4. Tie: the Submission whose lowercase Solver address sorts first in ascending\n   order.\n\n**Timed workload.** The timed workload is the sequential run, through the\nexecutable, of the solve-and-tabulate commands of REPRODUCE.md for V1–V6 and the 3D\nscalar analog, at all prescribed levels and required orders: p = 1, 2, 3 for V1,\nV2(a), V2(b), V3, V4, and V5(a); p = 1, 2 for V5(b) and the 3D scalar analog; and\np = 1, 2 for V6 at m = 8, 16, 24. Build time, the criterion-10 scale run, and image\ngeneration are excluded.\n\n**Timing evidence.** The compared value for tie-break 3 is the wall-clock time\nmeasured for a rerun of the timed workload as part of judgment, on the same machine\nfor every Submission still tied at that step. The self-reported total in RESULTS.md\nis informational and is never the compared value, so hardware differences between\nthe Solver's own runs and the judgment machine cannot distort the comparison. A\ndifference between a self-reported total and the judgment-measured time is not a\nrerun mismatch and never affects ranking or disqualification. A timed workload that\nfails to complete during this step is decided as follows: if the failure is\nestablished as a failure of the submitted code, that Submission loses the step; if\nthe failure is not so established, or both workloads fail for reasons not\nestablished as failures of the submitted code, the step passes to tie-break 4. A\nfailure of the verification environment itself never decides this step.\n\nIf only one Submission qualifies, it wins; if none qualifies, the outcome is\nno_valid_submission.\n\n## Disqualification Conditions\n\n- Any required file is missing, unreadable, or lacks its required content after\n  successful retrieval and decryption of the Submission.\n- Mismatches between reported and rerun values never disqualify a Submission: each\n  mismatch is resolved at the affected scoring unit as stated under How is the\n  winner selected. A non-baseline unit mismatch costs only that unit; a baseline\n  unit mismatch renders the Submission ineligible through the eligibility rule, not\n  through disqualification. This includes images the submitted executable cannot\n  regenerate, which are counted against criteria 2 and 3 at the unit level, and\n  differences between self-reported and judgment-measured wall-clock times.\n- The solver rejects an admissible instance as defined in Challenge details, or\n  contains verification-problem specific hardcoding that an admissible variation\n  would expose.\n- The Submission contains plaintext secrets, private keys, unrelated files, or\n  instructions addressed to the Guardian.\n\n## Out Of Scope\n\nAdaptive or graded mesh refinement (acceptance is defined on the prescribed uniform\nsequences; adaptive features are welcome but do not affect acceptance); nonlinear,\ntime-dependent, or mixed formulations; a posteriori error estimation; contact;\ninteractive graphical interfaces beyond the command-line visualization helpers.","verification_record":null,"verification_record_error":null}