391 de verificări automate pentru solverul geotehnic FEM — recensământul complet
Publicat pe 8 September 2026
De ce publicăm asta
Cea mai simplă cale de a vinde un solver geotehnic e să spui „e validat" și să treci mai departe. N-o facem, din motive practice, nu morale: inginerul care alege un program de calcul nu citește afirmația, caută unde se rupe. O afirmație pe care o poate demonta în cinci minute face mai mult rău decât zece afirmații mai modeste care rezistă la verificare.
De aceea publicăm recensământul complet al suitei noastre de regresie: 391 de verificări automate, din care 74 se compară cu o sursă externă publicată — manualul PLAXIS, articole tehnice, o încercare de laborator reală. Restul de 317 nu sunt „mai puțin importante" — sunt un tip diferit de verificare, și explicăm mai jos de ce contează la fel de mult.
Nimic din articolul ăsta nu e o comparație cu programul Plaxis. Am comparat cu benchmark-urile publicate în manualul lui — legi constitutive scrise ca ecuații, aplicate pe un singur punct de material, nu probleme complete cu condiții pe contur. Diferența contează, și un inginer care are Plaxis instalat pe stație o observă imediat dacă o ignorăm.
Recensământul — ce se sprijină pe cine
Suita de regresie din 2026-09-08 a rulat 33 de bancuri de test, cu 388 de verificări trecute din 391 (3 eșecuri, toate izolate pe un singur caz nereproductibil, explicat mai jos). Fiecare din cele 391 a fost clasificată, verificare cu verificare, în trei categorii:
| categorie | verificări | procent |
|---|---|---|
| E — oracol extern publicat | 74 | 18,9 % |
| F — formă închisă / identitate exactă, scrisă de noi | 101 | 25,8 % |
| I — invarianță, control negativ, gardă | 216 | 55,2 % |
Ce înseamnă fiecare categorie:
- E (74 verificări) — rezultatul solverului se compară direct cu un număr publicat de altcineva: o valoare din manualul PLAXIS, dintr-un articol, dintr-o normă, sau dintr-o încercare de laborator reală.
- F (101 verificări) — rezultatul se compară cu o formă închisă sau o identitate matematică exactă, scrisă de noi pe baza ecuațiilor pe care legea de material declară că le implementează. Formula e publicată, dar confruntarea e cu noi înșine, nu cu o a treia parte.
- I (216 verificări) — invarianțe, controale negative și gărzi: rezultatul nu depinde de rafinarea rețelei, nu depinde de mărimea domeniului, două drumuri independente prin cod dau același număr, un parametru dezactivat produce exact comportamentul așteptat.
De ce contează invarianțele, nu doar comparațiile
E tentant să citești proporția de 55,2% invarianțe ca pe un semn de slăbiciune — „doar 74 din 391 sunt validare reală". Nu e corect, și merită explicat de ce.
O comparație cu un tabel poate ieși bine din întâmplare. Dacă factorul de siguranță calculat pe un taluz s-ar schimba când dublezi domeniul modelului — un artefact numeric clasic — acordul lui cu metoda Bishop pe cazul ales ar putea fi coincidență, nu corectitudine. O invarianță verificată separat — „factorul de siguranță nu se schimbă la dublarea domeniului" — închide exact acea posibilitate. Prinde clase întregi de defecte pe care o comparație cu un tabel nu le vede deloc: o rețea prea mică, o condiție de contur greșită, o discretizare care influențează rezultatul fizic.
Invarianțele fac comparațiile credibile, nu le înlocuiesc. E + F = 175 din 391 (44,8%) sunt verificări unde un număr calculat se compară cu un alt număr cunoscut dinainte. Restul verifică proprietăți pe care rezultatul trebuie să le aibă indiferent de acel număr — și fără ele, cele 175 ar fi mai puțin de crezut, nu la fel.
Cele 74 de verificări față de surse externe
Astea sunt sursele publicate față de care s-a comparat solverul, cu numărul de verificări pe fiecare și cifrele concrete disponibile din regresie:
| sursă | verificări | ce s-a măsurat |
|---|---|---|
| PLAXIS 2D Material Models Manual 2018, §16.1–16.5 | 29 | Hardening Soil și HS-small pe nisip Hostun (laborator real), HS drenat/nedrenat pe trei nisipuri, Soft Soil Creep în edometru și triaxial la viteze diferite |
| Schweiger (2002) — groapa de la Berlin | 6 | ierarhia Mohr-Coulomb / Hardening Soil, tasarea din epuizment, banda de deplasare a peretelui |
| Yu & Kaufmann (RevEngSTM) | 6 | șase modele bielă-tirant publicate, reproduse prin programul nostru |
| Itasca FLAC3D 9.0 | 5 | consolidare 1D cu compresiune secundară, până la 1000 de ani |
| Prandtl–Reissner (formă închisă) | 6 | capacitatea portantă \(q_u = (2+\pi)c_u\), pe patru drumuri diferite prin cod |
| EN 1997-1, Anexa D | 3 | factorii \(N_q\), \(N_c\), \(N_\gamma\) la \(\varphi' = 20°, 30°, 40°\) |
| Rankine, Coulomb, Caquot-Kérisel | 3 | împingerea activă la trei unghiuri de frecare, tabelul \(K_p\) |
| Terzaghi — consolidare 1D | 3 | seria exactă \(U(T_v)\), pe două drumuri prin cod |
| numgeo — încercare de forfecare pe interfață | 3 | \(\tau/\sigma_n = \tan\delta\) după mobilizare, la trei unghiuri |
| FHWA-NHI-10-024 — pământ armat | 3 | distribuția forței de întindere pe straturi, Figura 4-10 |
| Rudnicki & Rice — localizare | 3 | pierderea elipticității înainte de vârf, la curgere neasociată |
| Bishop simplificat (prin PySlope) | 2 | factorul de siguranță pe pantă omogenă și stratificată |
| EN 1997 — stare-limită de sufozie | 1 | gradientul critic la curgere ascendentă |
| Taylor — număr de stabilitate | 1 | numărul de stabilitate pentru un taluz vertical |
| Total | 74 |
Cifrele concrete, verificare cu verificare
Pentru cine vrea numărul exact, nu doar sursa — asta e selecția completă a comparațiilor numerice documentate în regresie, cu abaterea de la referință:
PLAXIS Material Models Manual — §16.5, Soft Soil Creep (oracol care se verifică singur: din curbă se recuperează înapoi chiar constantele puse la intrare):
| mărime | recuperat din curbă | pus la intrare | abatere |
|---|---|---|---|
| \(\lambda^*\), din panta primară 80→640 kPa | 0,0998 | 0,1000 | −0,2 % |
| \(\mu^*\), din fluajul secundar | 0,00487 | 0,00500 | −2,6 % |
| POP 433 kPa vertical → presiune izotropă \(P_p\) | 374,1 kPa | 373 kPa | +0,3 % |
§16.4, efectul vitezei de deformare asupra rezistenței nedrenate (argila Haney):
| raport de viteze | q măsurat | teorie (formă închisă) | abatere |
|---|---|---|---|
| ×159,4 | 1,2163 | 1,2560 | −3,2 % |
| ×7,3 | 1,0789 | 1,0937 | −1,4 % |
| ×1169,5 | 1,3122 | 1,3737 | −4,5 % |
§16.1, platoul drenat Hardening Soil, trei nisipuri (formă închisă \(q_f = 2\sigma_3\sin\varphi/(1-\sin\varphi)\)):
| nisip | \(q_{max}\) măsurat | formă închisă | abatere |
|---|---|---|---|
| afânat, φ=30° | 200,08 kPa | 200,00 kPa | +0,04 % |
| mijlociu, φ=35° | 269,55 kPa | 269,02 kPa | +0,20 % |
| îndesat, φ=40° | 362,07 kPa | 359,89 kPa | +0,60 % |
§16.2, nisip Hostun — încercări reale de laborator (Prof. J. Desrues, Université Joseph Fourier, Grenoble), triaxial drenat la σ₃=300 kPa:
| nisip | \(q_{max}\) măsurat | formă închisă | abatere |
|---|---|---|---|
| afânat, φ=34° | 761,14 kPa | 761,14 kPa | +0,00 % |
| îndesat, φ=41° | 1144,49 kPa | 1144,49 kPa | +0,00 % |
Aceleași nisipuri Hostun, edometru la 100 kPa (recuperare din formula \(E_{oed}\)):
| nisip | măsurat | tabel | abatere |
|---|---|---|---|
| afânat | 15 947 kPa | 16 000 kPa | −0,3 % |
| îndesat | 29 538 kPa | 29 600 kPa | −0,2 % |
§16.3, HS-small pe Hostun — rigiditatea \(G_0\) recuperată la trei presiuni de confinare (toate sub 0,01 %):
| nisip | σ₃=100 | σ₃=300 | σ₃=600 |
|---|---|---|---|
| afânat | 69 999 / 70 000 | 142 962 / 142 964 | 224 332 / 224 335 |
| îndesat | 112 499 / 112 500 | 194 855 / 194 856 | 275 566 / 275 568 |
γ₀,₇ — deformația la care secanta scade la 0,722·G₀:
| nisip | raport măsurat | definiție | abatere |
|---|---|---|---|
| afânat | 0,7217 | 0,7220 | 0,379 % |
| îndesat | 0,7211 | 0,7220 | 0,159 % |
Berlin (Schweiger 2002) — singura cifră citabilă de aici, explicat mai jos: Mohr-Coulomb ține terenul din spatele peretelui la −11,72 mm unde Hardening Soil face pâlnie la −33,01 mm. E chiar rezultatul care a făcut acest benchmark celebru.
Capacitatea portantă — FEM vs Prandtl-Reissner:
| caz | FEM | Prandtl | abatere |
|---|---|---|---|
| nedrenat, φ=0 | 110,90 kPa | 102,83 kPa | +7,84 % |
| drenat, φ=20° | 322,00 kPa | 296,69 kPa | +8,53 % |
| \(q_u\) proporțional cu c | raport 1,99620 | 2 | −0,19 % |
| echilibru global | — | — | 4,43e-15 |
EN 1997-1, Anexa D — factorii de capacitate portantă:
| mărime | calculat | referință |
|---|---|---|
| \(N_q\), φ=20° | 6,3994 | 6,399 |
| \(N_c\), φ=20° | 14,8347 | 14,835 |
| \(N_\gamma\), φ=20° | 3,9304 | 3,93 |
| \(N_q\), φ=30° | 18,4011 | 18,401 |
| \(N_c\), φ=30° | 30,1396 | 30,14 |
| \(N_\gamma\), φ=30° | 20,0931 | 20,093 |
| \(N_q\), φ=40° | 64,1952 | 64,195 |
| \(N_c\), φ=40° | 75,3131 | 75,313 |
| \(N_\gamma\), φ=40° | 106,0541 | 106,054 |
Rankine, Coulomb, Caquot-Kérisel — coeficientul activ:
| caz | FEM | referință | abatere |
|---|---|---|---|
| \(K_a\), perete neted, φ=25° | 0,4059 | 0,4059 | — |
| \(K_a\), perete neted, φ=30° | 0,3332 | 0,3333 | −0,03 % |
| \(K_a\), perete neted, φ=35° | 0,2708 | 0,2710 | −0,07 % |
| \(K_a\), Coulomb δ=10° | 0,3045 | 0,3038 | +0,2 % |
| \(K_a\), Coulomb δ=20° | 0,2825 | 0,2794 | +1,1 % |
Terzaghi, consolidare 1D — gradul de consolidare \(U(T_v)\):
| \(T_v\) | măsurat | teorie |
|---|---|---|
| 0,05 | 0,2539 | 0,2523 |
| 0,10 | 0,3597 | 0,3568 |
| 0,20 | 0,5081 | 0,5041 |
Abaterea maximă pe tot intervalul \(T_v\) = 0,05…1,0: 0,0042. Raportul de drenaj pe două fețe vs una: 4,02 față de 4 teoretic.
numgeo — contactul Coulomb, forfecare pe interfață:
| δ | \(V/N\) măsurat | \(\tan\delta\) | abatere |
|---|---|---|---|
| 15° | 0,2678 | 0,2679 | −0,1 % |
| 20° | 0,3637 | 0,3640 | −0,1 % |
| 25° | 0,4661 | 0,4663 | −0,1 % |
FHWA-NHI-10-024, §4.4.7 — pământ armat cu geogrile, distribuția forței de întindere pe straturi:
| strat | z [m] | T măsurat [kN/m] | T FHWA [kN/m] | raport |
|---|---|---|---|---|
| 1 | 1,50 | 7,20 | 8,76 | 0,82 |
| 2 | 2,50 | 11,55 | 14,59 | 0,79 |
| 3 | 3,50 | 15,32 | 20,43 | 0,75 |
| 4 | 4,50 | 21,57 | 26,27 | 0,82 |
| 5 | 5,50 | 27,81 | 32,11 | 0,87 |
| Σ | 86,43 | 105,08 | 0,823 |
Raportul e constant pe adâncime — pantă·H/medie = 0,088, împrăștiere max/min = 1,16 pe straturile 1…5 — adică modelul reproduce chiar afirmația discriminantă a Figurii 4-10: la armătură geosintetică raportul rămâne constant cu adâncimea (spre deosebire de benzile metalice, unde ar scădea de la 1,7 la 1,2). Nivelul de 0,823 iese sub metoda simplificată, sensul documentat, fiindcă metoda e acoperitoare prin construcție.
EN 1997 — sufozie: gradientul critic \(i_{crit} = \gamma'/\gamma_w\) recuperat exact din solver.
Pentru Yu & Kaufmann (modele bielă-tirant) și Rudnicki & Rice (pierderea elipticității), regresia raportează comparațiile ca trecute (6/6, respectiv verificări pe patru drumuri prin cod), fără o singură cifră de abatere reprezentativă publicabilă separat — comparația e de tip formă/comportament, nu o zecimală.
Poveștile din spatele cifrelor
Un tabel de abateri arată că lucrurile merg. Poveștile de mai jos arată cum am aflat asta, și de ce fiecare defect a fost greu de găsit — sunt reale, cu cifre exacte, nu anecdote rotunjite.
Contactul care nu exista. Legea lui Coulomb pentru interfața perete-teren era corectă, dar elementele de contact generate automat prin schemă aveau normala întoarsă — apăsarea se citea ca întindere, se tăia la zero, iar contactul devenea inert. Nu „mai moale": fără nicio tensiune, cu fețele trecând una prin alta. Măsurat: tracțiune (0, 0) kPa și 3,0 mm pătrundere, față de (−100, 0) kPa și 0,025 mm după reparație. Defectul a stat ascuns fiindcă un contact elastic e simetric la semn și funcționa perfect — a durat două zile de căutat.
Bancul mort care arăta verde — de două ori. Un test de validare a picat pe o eroare de encoding la un simplu print, chiar înainte de prima verificare — deci a raportat automat „zero eșecuri" și arăta identic cu un test care trece cu adevărat. Am adăugat o gardă: scriptul de regresie numără și codul de ieșire al procesului, nu doar câte eșecuri s-au tipărit.
Garda aia s-a dovedit insuficientă la prima ocazie. La regresia completă din 8 septembrie, un banc nou a rulat 370 de secunde, a ieșit cu cod 0 și a raportat zero verificări — pentru că era scris cu alt stil de marcaj decât cel pe care îl căuta numărătoarea. Cele 7 verificări ale lui trecuseră; pur și simplu nu le vedea nimeni. Exact tiparul împotriva căruia fusese scrisă garda, scăpat pe lângă ea.
Reparația nu a fost doar „învață și al doilea stil de marcaj" — aia ar fi lăsat capcana deschisă pentru al treilea. Regula generală e acum: orice banc care iese cu cod 0 dar raportează zero verificări e semnalat explicit. Un test care nu poate să pice nu e un test; și un test pe care nu-l numeri nu e nici măcar un test.
Deficitul de fluaj care nu exista. Zile întregi s-a urmărit un „de 3,3 ori prea puțin" pe panta secundară a unui model Soft Soil Creep. Nu era nici legea, nici solverul — era protocolul de încărcare. În acest model, deformația plastică nu apare decât prin fluaj, deci comportamentul teoretic apare numai când încărcarea e destul de lentă cât fluajul să țină pasul. De aceea manualul PLAXIS încarcă o treaptă pe zi — nu e o comoditate, e condiția în care rezultatul înseamnă ceva.
Cinci explicații greșite pentru o singură problemă. Un banc de pământ armat cu geogrile a stat deschis trei sesiuni de lucru. Grile poziționate prea aproape de perete au dat forțe interne, cu −97% față de așteptat. O comparație între două rulări succesive a arătat că armarea schimba chiar mărimea comparată. O bază încastrată pe toată lungimea a preluat singură împingerea, mascând rezultatul. Un perete cu interfețe a legat capătul grilei de geamănul lui din teren — verificat nod cu nod. Și cea mai greu de văzut: lipsa suprafeței tributare — fără o față definită pe fiecare panou, modelul converge frumos și dă forma calitativ corectă, dar la 40% din nivelul real. Abia al cincilea montaj — panouri discontinue, câte unul pe strat — a scos rezultatul corect, cel din tabelul de mai sus.
Problema fără soluție netedă. Cazul Berlin (Schweiger 2002), pe rețea rafinată, nu e reproductibil: două rulări ale aceluiași cod, în aceeași zi, au dat 9 din 9 verificări trecute și, respectiv, 6 din 9. Nu e un defect de solver — peste ~70% din rezistența mobilizată se pierde elipticitatea problemei matematice: deformația poate sări peste o suprafață, se formează o bandă de forfecare, iar soluția netedă pe care o caută algoritmul numeric pur și simplu nu mai există în acel regim. Există un test separat care verifică exact acest fenomen (Rudnicki-Rice). E motivul pentru care singura cifră publicabilă de la Berlin e diferența de comportament între legile de material, nu o valoare de deplasare de pe rețeaua fină — a ști când nu ai voie să crezi rezultatul e parte din solver, nu o scuză.
Elementele care s-au încercat și au picat. Două tipuri de elemente finite alternative au fost testate și abandonate deliberat: unul dădea −40% la un test de capacitate portantă și +26,8% pe un test elastic unde alt element era exact; celălalt dădea +141% sau zero, în funcție de caz. Geometria lor era corectă — își integrau exact propriul volum — dar rigiditatea ieșea greșită cu 27%. Un element care își calculează corect aria poate să greșească complet rigiditatea, și diferența nu se vede decât testând-o direct.
Ce nu face solverul
Onestitatea tehnică nu se oprește la cifre — include și limitele. Publicăm și ce nu merge, sau nu e încă expus:
- 3D, dinamică, calcul termic. Elementele există în nucleul de calcul folosit, dar nu sunt expuse în interfața actuală.
- Armătura numai-întindere (geogrile, geotextile) se rezolvă prin iterație pe stare, nu printr-un element unilateral dedicat — o limitare cunoscută, cu ce s-a încercat și de ce n-a funcționat.
- Berlin pe rețea fină nu produce o cifră de deplasare reproductibilă — motivul e explicat mai sus, și e o proprietate a problemei, nu a implementării.
- Solverul nu e o filiație a niciunui program comercial existent. Nucleul de calcul e Kratos Multiphysics, dezvoltat la CIMNE (Barcelona), cu
GeoMechanicsApplication— aplicația de geotehnică la care contribuie și Deltares. Partea care rezolvă sistemul de ecuații are ani de utilizare în spate; ce am construit noi — legile de pământ, mesherul, despicarea pe interfețe, schema de model — e verificat separat, bucată cu bucată, și e exact ce arată acest articol.
Poți reproduce singur
Toate cifrele de mai sus vin din regresia completă a suitei de teste, nu din exemple alese. Datele de intrare ale fiecărui benchmark — sursa la nivel de pagină și tabel, parametrii de material complet — sunt documentate separat, iar clasificarea verificare cu verificare e generată dintr-un script auditabil, nu scrisă manual.
Dacă vrei să vezi solverul geotehnic FEM la treabă, nu doar cifrele lui de validare, modelul e disponibil live pe /ro/bim/model-geotehnic.