CONTROLLO DELLA BONTA’ DEL CALCOLO

 

Sargon dispone di un sofisticato strumento per il controllo della bontà di ciascuna esecuzione e per il controllo della bontà delle successive versioni del programma. Tale strumento è denominato “checksolvers” ed è un eseguibile rilasciato insieme con il programma.

Checksolvers è un programma indipendente dai solutori poiché utilizza unicamente i dati di output da essi prodotti (spostamenti, azioni interne, reazioni e residui) oltre che, naturalemente, le informazioni sulla geometria e sulle connessioni.

Checksolvers ha un suo manuale d’uso esterno al manuale di Sargon, si tratta del documento (in inglese) “checksolvers.doc” contenuto nella cartella di installazione del programma.

I controlli eseguiti da checksolvers sono controlli di due tipi.

 

Vi sono i controlli eseguibili senza alcuna specifica informazione da parte dell’utente, ovvero controlli sulla bontà della soluzione, sulla sua coerenza e precisione (controlli standard).

Vi sono invece controlli che il programma esegue paragonando certi risultati ottenuti dai solutori (“computed values”) con i risultati attesi (“target values”). I risultati attesi possono essere risultati “teorici” (e in tal caso deriveranno da formulazioni descritte in letteratura) oppure risultati di confronto con altri solutori (“cross checks”) o, ancora, risultati reputati accettabili sulla base di altre considerazioni (“accepted values”). Questi controlli sono detti globalmente “controlli incrociati”.

 

Controlli standard

 

A partire dalla versione 8.10 del programma, al termine di ogni soluzione statica si viene richiesti di decidere se si vuole ottenere un controllo automatico della bontà della esecuzione. Se si risponde “sì”, Sargon creerà in modo automatico un file di input per checksolvers relativo al modello correntemente in analisi, eppoi lancerà, sempre in modo automatico, lo stesso checksolvers.exe, in modo che questo produca poi un file di output che verrà aperto automaticamente usando blocco note.

 In pratica se si sceglie di eseguire i controlli si verrà automaticamente portati a un file di output ASCII che conterrà una serie di importanti dati relativi alla bontà della soluzione, e che potranno essere d’aiuto al fine di certificarne la qualità (almeno per le parti relative alla precisione della soluzione: non è infatti detto che il modello sia appropriato, e ciò per numerosi possibili motivi).

 Supponendo che il modello si chiami “paperino.wsr”, viene creato il file di input per checksolvers “paperino.chk.txt”, eppoi il file di output di checksolvers “paperino.chk.txt.out”. Si tratta di file ASCII editabili con un qualsiasi editor di testo.

Per una dettagliata descrizione dei controlli standard eseguiti da checksolvers si rimanda al suo manuale d’uso. Qui diamo un esempio di tale tabulato che fa intendere il tipo ed il numero di controlli standard eseguiti. Il modello qui analizzato aveva due soli casi di carico.

 

*******************************************************************************

*                                                                             *

*                                                                             *

*                                                                             *

*                                                                             *

*                                                                             *

*                         CHECKSOLVERS   VERS. 2-0                            *

*                                                                             *

*                                                                             *

*                Author:  Paolo Rugarli - Structural Engineer                 *

*                                                                             *

* Copyright 2005-2006 Castalia srl-All rights reserved - www.castaliaweb.com  *

*******************************************************************************

 

-------------------------------------------------------------------------------

Legenda:

 

LC..................... The load case number inside the model

TV..................... Target value

THEORIC.................Theoric target value

CROSS...................Cross check target value (other solvers)

ACCEPTED................Accepted target value (e.g. benchmarks, previous tests)

CV..................... Computed value (what is found into binary output files)

VA..................... A value "A" to be compared to a value "B"

VB..................... A value "B" to be compared to a value "A"

DELTA.................. By definition:  (CV - TV) or (VB - VA)

Err(%)................. By definition 100 (CV - TV) / TV, percentage error.

                       if TV = 0 --> conventionally   Err(%) = 100 CV

ND..................... The node number in the fem model

TR..................... Truss element number

BE..................... Beam element number

ME..................... Membrane element number

PL..................... Plate element number

SP..................... Spring element number

SO..................... Solid element number

 

 

 

 

 

*******************************************************************************

F:\ANALISI\810\mensola

*******************************************************************************

----------------------------------------------------

GENERAL CHECKS OF CONSISTENCE AND GENERAL INDICATORS

----------------------------------------------------

Units: length:  mm   force:  N    temperature:  øC   time:  s    work: joule

Load case 1 Sum of Reactions Rx TV= -0.000000e+000  CV = -3.451001e-006  DELTA = -3.451001e-006  Err(%) =  -0.0003

Load case 1 Sum of Reactions Ry TV= -0.000000e+000  CV =  9.362848e-006  DELTA =  9.362848e-006  Err(%) =   0.0009

Load case 1 Sum of Reactions Rz TV=  2.000000e+007  CV =  2.000000e+007  DELTA = -6.141886e-005  Err(%) =  -0.0000

----- Reaction X Check passed -----

----- Reaction Y Check passed -----

----- Reaction Z Check passed -----

Load case 2 Sum of Reactions Rx TV= -2.000000e+007  CV = -2.000000e+007  DELTA = -2.458692e-006  Err(%) =   0.0000

Load case 2 Sum of Reactions Ry TV= -0.000000e+000  CV =  3.124927e-007  DELTA =  3.124927e-007  Err(%) =   0.0000

Load case 2 Sum of Reactions Rz TV= -0.000000e+000  CV = -1.399647e-007  DELTA = -1.399647e-007  Err(%) =  -0.0000

----- Reaction X Check passed -----

----- Reaction Y Check passed -----

----- Reaction Z Check passed -----

Load case 1 Work of residual forces and moments TV=  0.000000e+000  CV =  7.588558e-004  DELTA =  7.588558e-004  Err(%) =   0.0759

Load case 2 Work of residual forces and moments TV=  0.000000e+000  CV = -6.211972e-008  DELTA = -6.211972e-008  Err(%) =  -0.0000

Total number of degrees of freedom: 2850

Load case      1 Total Residual Rx =  -2.135974e-006  Maximum Residual Rx =   1.162291e-006 on node 862

                Total Residual Ry =  -1.520588e-006  Maximum Residual Ry =   5.960464e-007 on node 738

                Total Residual Rz =  -2.467728e-005  Maximum Residual Rz =   5.215406e-006 on node 945

                Total Residual Mx =   0.000000e+000  Maximum Residual Mx =   0.000000e+000 on node 0

                Total Residual My =   0.000000e+000  Maximum Residual My =   0.000000e+000 on node 0

                Total Residual Mz =   0.000000e+000  Maximum Residual Mz =   0.000000e+000 on node 0

Load case      2 Total Residual Rx =   3.376522e-008  Maximum Residual Rx =   9.620999e-008 on node 771

                Total Residual Ry =  -3.109257e-008  Maximum Residual Ry =   1.909757e-008 on node 947

                Total Residual Rz =   5.412877e-008  Maximum Residual Rz =   8.949428e-009 on node 872

                Total Residual Mx =   0.000000e+000  Maximum Residual Mx =   0.000000e+000 on node 0

                Total Residual My =   0.000000e+000  Maximum Residual My =   0.000000e+000 on node 0

                Total Residual Mz =   0.000000e+000  Maximum Residual Mz =   0.000000e+000 on node 0

Load case 1 Point of application of residual + reaction resultant (Or): X=  9.500000e+003  Y=  5.000000e+002  Z=  1.405154e-009

Load case 1 Point of application of applied loads (Op):                 X=  9.500000e+003  Y=  5.000000e+002  Z=  0.000000e+000

Load case 1 P x (Op-Or): Mx= -2.424940e-003  My=  1.747321e-001  Mz=  0.000000e+000  M =  1.747489e-001 |M|/|P|=  8.737447e-009

Load case 2 Point of application of residual + reaction resultant (Or): X=  8.140836e-013  Y=  5.000000e+002  Z=  1.000000e+003

Load case 2 Point of application of applied loads (Op):                 X= -0.000000e+000  Y=  5.000000e+002  Z=  1.000000e+003

Load case 2 P x (Op-Or): Mx=  0.000000e+000  My= -2.501110e-004  Mz= -2.015668e-003  M =  2.031126e-003 |M|/|P|=  1.015563e-010

Load cases a #1, b #2.Betti's rule (Lab=Lba) VA= -1.337239e-007  VB = -1.238659e-007  DELTA =  9.858013e-009  Err(%) =  -7.3719

Load case 1 Average translations: Tx=  4.194072e-015  Ty= -2.462228e-011  Tz= -1.662977e+001  Ttotal=  1.700409e+001

Load case 2 Average translations: Tx=  2.342640e-001  Ty= -7.355153e-013  Tz=  1.126599e-014  Ttotal=  2.347626e-001

 

Nella versione 8.10 i controlli riguardano:

 

Le risultanti delle reazioni vincolari paragonate alle risultanti dei carichi applicati

Il lavoro dei residui

Il residuo totale e le massime componenti dello stesso residuo

Il punto di applicazione del vettore delle forze reattive + residui, paragonato al punto di applicazione del risultante dei carichi applicati (controllo distribuzione delle reazioni vincolari)

Il momento esercitato dal vettore dei residui+ reazioni vincolari rispetto al punto di applicazione del risultante dei carichi applicati

Il controllo di eguaglianza dei lavori misti secondo il terorema di Betti (quando possibile con sole forze nodali)

Il valore degli spostamenti medi

 

 

Si consiglia di eseguire sempre un controllo sui risultati forniti da checksolvers al fine di verificare la bontà della soluzione ottenuta.

 

Controlli incrociati

 

Dato un certo insieme di modelli test, è opportuno eseguire test di controllo sui risultati delle elaborazioni su ogni successiva versione del programma, al fine di verificare che nulla di scorretto infici i risultati delle analisi. Normalmente tale genere di controlli viene eseguito dalle software house che producono i programmi, ma si è ritenuto che fosse utile e trasparente consentire a ciascun utente non solo di eseguire gli stessi controlli eseguiti dalla Casa Produttrice, bensì anche altri controlli, eventualmente messi a punto da ciascun utente e rieseguiti ad ogni versione.

Con checksolvers versione 2.0 questo è possibile in modo molto semplice, poiché è possibile automatizzare completamente la esecuzione del solving (il nuovo solving ottenuto con la nuova versione da controllare) e la esecuzione dei test eseguiti da checksolvers.

Al fine di illustrare la procedura si parte dalla descrizione della sottocartella \checksolvers alla cartella di installazione del programma.

 

Tale cartella contiene alcuni file, che sono (rilascio versione 8.10):

 

Directory di C:\WSARGON\CHECKSOLVERS

 

18/04/2006  19.56    <DIR>          .

18/04/2006  19.56    <DIR>          ..

24/03/2006  14.17    <DIR>          CHECKSPARSE_STATICS

18/03/2005  13.06                35 go.bat

06/04/2006  17.58                33 gomodal.bat

03/04/2006  12.37            11.174 modal.txt

03/04/2006  12.56            25.609 modal.txt.out

03/04/2006  14.06    <DIR>          MODALE

06/04/2006  17.57               344 readme.txt

03/04/2006  12.42             7.280 runmodal.bat

05/04/2006  19.48            16.909 runstatics.bat

07/04/2006  17.57    <DIR>          STATICS

05/04/2006  19.57            47.379 statics.txt

07/04/2006  18.46           451.965 statics.txt.out

23/03/2006  19.00    <DIR>          VER700

 

La cartella “statics” contiene file di prova per l’analisi statica.

La cartella “modale” contiene file di prova per la analisi modale

La cartella “VER700” contiene i risultati di checksolvers ottenuti con la versione 7.00.

La cartella “checksparse_statics” contiene modelli fatti girare con il solutore statico sparse matrix e controllano in modo incrociato i risultati ottenuti con il solutore skyline.

Sono poi contenuti alcuni file:

oReadme.txt        è un piccolo promemoria che spiega cosa fare

oRunstatics.bat        è un file batch che lancia la soluzione con CLEVER di tutti i modelli per le analisi statiche. Naturalmente le analisi vengono eseguite con la versione corrente di sargon.

oRunmodal.bat        è un file batch che lancia la soluzione con LEDA di tutti i modelli per le analisi modali.

oStatics.txt è il file di input per checksolvers (analisi statiche). Esso dice come eseguire i controlli e cosa controllare.

oModal.txt è il file di input per checksolvers (analisi modali). Esso dice come eseguire i controlli e cosa controllare.

oStatics.txt.out        è il file di output di checksolvers rispetto all’input “statics.txt”. Dice cosa checksolvers ha trovato.

oModal.txt.out        è il file di output di checksolvers rispetto all’input “modal.txt”. Dice cosa checksolvers ha trovato.

oGo.bat        è un file batch che lancia checksolvers dicendogli di aprire il file “statics.txt”

oGomodal.bat        è un file batch che lancia checksolvers dicendogli di aprire il file “modal.txt”.

 

Da un punto di vista pratico occorre dapprima eseguire tutti i solving statici e dinamici con la versione in uso, su tutti i file di interesse. Ciò si fa eseguendo dapprima “runstatics.bat” (facendoci doppio click sopra) e poi “runmodal.bat” (se,mpre facendoci doppio click sopra: bisogna possedere una licenza d’uso di LEDA, ovviamente).

Poi si eseguono i batch file che chiamano checksolvers dicendogli di aprire e leggere i file di input ad esso riservati: checksolvers si aspetta di trovare i file di output e quindi occorre eseguire questo passo dopo il precedente.

Infine si aprono i file “.out” andando a controllare che i risultati siano identi a quelli delle versioni precedenti o comunque attendibili.

Ricapitolando:

doppio click su “runstatics.bat”

doppio click su “runmodal.bat”

attendere la fine di tutti i solving (alcuni sono onerosi !!)

doppio click su “go.bat”

doppio click su “gomodal.bat”

Aprire e controllare “statics.txt.out”

Aprire e controllare “modal.txt.out”

 

La procedura indicata esegue test correntemente in uso da parte del produttore. Nulla vieta all’utente di aggiungere suoi propri casi test in modo da avere un ulteriore controllo, indipendente da quello del produttore.

 

Il tabulato di output di checksolvers per i casi test consegnati dal produttore rappresenta una importante fonte di descrizione della bontà delle elaborazioni del programma.