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