**Apertura della mesh e correzione della circuitazione** Per prima cosa dobbiamo scaricare il file di Marc //tubo.mud//, contenente la mesh del tubo ottenuta la lezione precedente. Apriamo il browser Mozilla Firefox ed entriamo nel sito //cdm.ing.unimo.it//. All'interno del link //progetto_del_telaio// apriamo la cartella //2015//, dalla quale scarichiamo il file //tubo.mud//. Per poterlo aprire con Marc, spostiamolo dalla cartella //Downloads// nella nostra //Home Folder//, accessibile dalla voce //Places// nella barra superiore di Linux. Nella sezione ''[Files]'' di Marc, in basso, verifichiamo che la ''[Current Directory]'' sia la nostra Home. Dalla stessa sezione: ''[Files] --> [Open]'' e apriamo il file //tubo.mud//. Se non visualizziamo il file caricato su Marc, con il comando ''[Reset View]'' seguito da ''[Fill]'' ci riportiamo alla visualizzazione ottimale. Abbiamo visto dalla teoria che nella Matrice **B**, che lega gli spostamenti alle deformazioni, interviene l'area a denominatore. Pertanto si vuole l'area positiva e non troppo piccola (occorre evitare elementi aghiformi). Come prima cosa, verifichiamo la circuitazione; area positiva si avrà secondo circuitazione antioraria. All'interno della sezione ''[Mesh Generation]'' si trova la funzione ''[Check]'', che racchiude diversi controlli sulla bontà della meshatura. Con la verifica ''[Upside Down]'' ci si accorge che all'interno di tutti gli elementi (720 in tutto) si ha orientazione oraria, che come detto restituirebbe area negativa. Con ''[Flip Elements]'' e, come selezione, ''[Exist.]'', ci riconduciamo a circuitazione antioraria. A un nuovo controllo ''[Upside Down]'' verifichiamo che ora gli elementi non disposti come voluto sono 0. Zoomando sugli elementi si può vedere che il bordino diagonale sul loro bordo ha cambiato orientazione. **Geometric Properties** Si tratta di definire la classe della matrice **D**, che lega tensioni e deformazioni. La si vuole in tensione piana. Nella sezione ''[Geometric Properties]'': ''[Geometric Properties]-->[New]-->[Structural]-->[Planar]-->[Plane Stress]'' {{:wikitelaio2015:screenshot_1_12_marzo.jpg?direct&300|}} Imponiamo come nome "tensione_piana" e confermiamo con Invio. All'interno delle ''[Properties]'' si verifica lo spessore. Noi lasciamo ''[Thickness]'' 1 e premiamo ''[OK]''. Imponiamo le proprietà agli elementi della mesh con ''[Elements Add]'', ''[Exist.]'', verificando che gli elementi selezionati siano 720. Attivando la casella ''[ID Geometries]'', si colorano tutti gli elementi secondo la legenda "tensione_piana". **Material Properties** Entriamo nella sezione ''[Material Properties]''. Nel nostro caso trattiamo un materiale isotropo, che non vede direzioni preferenziali, pertanto tralasciamo la sezione ''[Orientations]'', che useremo invece quando considereremo materiali compositi, con una ben precisa orientazione delle fibre. Entriamo nel sottomenù ''[Material Properties]'': ''[Material Properties]-->[New]-->[Standard]'' Come ''[Name]'' imponiamo "acciaio". Nella categoria ''[General]'' è possibile inserire come dato la densità del materiale, ma noi non ce ne occupiamo in quanto nel nostro problema non sono previste accelerazioni. Apriamo invece la categoria ''[Structural]''; consideriamo un materiale lineare-elastico, dunque in ''[Type]'' lasciamo ''[Elastic-Plastic Isotropic]''. Abbiamo a che fare con un tubo in acciaio: come ''[Young's Modulus]'', per essere coerenti con le unità di misura, imponiamo 210000 (sono MPa), confermando con Invio. Come ''[Poisson's Ratio]'' imponiamo 0.33. {{:wikitelaio2015:screenshot_2_12_marzo.jpg?direct&300|}} Diamo l'''[OK]'' e applichiamo le proprietà: ''[Elements Add]'', e come selezione ''[Exist.]'', assicurandoci ancora una volta che gli elementi selezionati siano 720. Confermiamo con ''[End List]''. Attivando la casella ''[ID Materials]'' vediamo colorarsi tutti gli elementi del tubo secondo la legenda "acciaio". **Boundary conditions** Le più comuni Boundary Condition disponibili sono: * FIXED DISPLACEMENT: usato nei casi in cui si ha spostamento imposto pari a 0; * FIXED ACCELERATION: usato sopratutto per carichi inerziali; * POINT LOAD: carico nodale usato per dare un carico finito su uno specifico nodo; * EDGE LOAD: carico su un lato (nel caso in esame sarà un carico sul bordo interno) o su uno spigolo; * FACE LOAD: carico su una superficie; * GLOBAL LOAD: carico per unità di volume non scalato per la densità; * GRAVITY LOAD: un carico per unità di volume scalato per la densità. In questo caso si vuole applicare una pressione di 20 MPa al bordo interno: ''[Boundary conditions]-[new]-[structural]-[edge load]'' e nel campo "pressure" inseriamo il valore 20 (Marc utilizza come unità di misura di default i MPa) {{:wikitelaio2015:7.jpg?300|}} Per selezionare gli elementi a cui applicare tale pressione tracciamo uno spezzata chiusa, tenendo premuto ctrl, che contenga tutti gli elementi a cui vogliamo applicare tale condizione. {{:wikitelaio2015:8.jpg?300|}} Andiamo ora ad inserire i vincoli, che in questo caso saranno una cerniera ed un carrello. Poichè tale vincoli impongono uno spostamento dovremo utilizzare dei "fixed displacement". '' [boundary conditions]->[new]->[structural]->[fixed displacement]'' Par quanto riguarda la cerniera imponiamo pari a 0 sia lo spostamento lungo x che quello lungo y {{:wikitelaio2015:10.1.jpg?300|}} Infine dobbiamo selezionare il nodo a cui applicare tale vincolo ''[Nodes]-[add]'' e poi clicchiamo sopra il nodo vincolato e con il tasto destro del mouse confermiamo. {{:wikitelaio2015:11.1.jpg?300|}} Per quanto riguarda il carrello il procedimento è analogo, ma questa volta dobbiamo vincolare solo lo spostamento lungo y {{:wikitelaio2015:12.1.jpg?300|}} ed applicarlo al nodo che ci interessa. Mettendo poi la spunta su "ID boundary conditions" possiamo visualizzare carichi e vincoli applicati {{:wikitelaio2015:13.1.jpg?300|}} Possiamo quindi considerare terminata la fase di pre-processing e passare allo svolgimento del calcolo vero e proprio. Una volta creato il modello con la relativa pressione interna vincolato nel modo suddetto occorre lanciare il calcolo, ovvero passare allo svolgimento. Dal menù ''[JOBS]'': ''[new] -> [structural]'' ed immettere nel campo ''[name]'' : pressione_interna {{:wikitelaio2015:image002.jpg?300|}} Occorre a tal punto verificare che siano attive tutte le condizioni applicate in precedenza: ''[properties] -> [initial loads]'' e verificare che pressione, cerniera e carrello siano effettivamente attivate. Tale passaggio è molto utile in quanto si può pensare di applicare condizioni differenti al modello preso in esame e quindi tramite l’initial loads applicare o meno determinate condizioni in modo da poter studiare il comportamento del modello senza dover necessariamente creare una nuova mesh. Normalmente il programma non seleziona automaticamente i vincoli o i carichi inseriti successivamente ad un Jobs precedentemente creato, per cui è bene controllare che questi siano selezionati ogni qual volta ne vengano aggiunti di nuovi. {{:wikitelaio2015:image004.jpg?300|}} Occorre adesso decidere quali tipi di risultati si vogliono ottenere dalla simulazione: ''[properties] -> [job result]'' e spuntare le voci: ''[Stress], [Total Strain], [Chauchy Stress] e [Equivalent Von Mises Stress] -> [OK]'' {{:wikitelaio2015:image006.jpg?300|}} Tale scelta tra i molteplici risultati ottenibili è resa necessaria o comunque risulta conveniente in quanto si riduce la spesa di calcolo del processore. Fra i vettori (Available Element Tensors): * STRESS = stato tensionale * TOTAL STRAIN = deformazione totale * CAUCHY STRESS = tensioni applicate sulla deformata Fra gli scalari (Available Element Scalars): * EQUIVALENT VON MISES STRESS = criterio di resistenza relativo a materiali duttili e isotropi ossia che presentano uguale resistenza a trazione e compressione A questo punto si imposta una dimensione di analisi che nel nostro caso è una tensione piana: ''[properties] -> [analysis dimension] -> [plane stress] -> [OK]'' Per lanciare quanto definito fino a questo momento: ''[run] -> [submit] -> [monitor]'' se viene restituito il numero [3004] nella voce [exit number] significa che non ci sono errori. {{:wikitelaio2015:image009.jpg?300|}} **Postprocessing:** Il postprocessing è la fase successiva alla costruzione del modello; dopo l’esecuzione dell’analisi della struttura, il postprocessing ci consente di visualizzare i risultati ottenuti; dal menù precedente: ''[jobs] → [jobs] → [run] → [Open Post Files (Results Menù)]'' Possiamo accedere ai risultati anche dal **Main Menù**; andiamo nella sezione **Postprocessing** e selezioniamo **Results**. La deformata di un tubo pressurizzato internamente è un’espansione radiale; utilizzando il comando **Deformed Shape** otteniamo la deformata del nostro modello. Entriamo nel sottomenù **Deformed Shape**: ''[Settings]→ [Deformation Scaling]:[Automatic]'' Accedendo al sottomenù **Scalar Plot** si può scegliere la modalità di rappresentazione dei risultati. Scegliendo **Contour Bands** otteniamo una rappresentazione a bande colorate delle tensioni principali e ad ogni colore è associato un campo degli spostamenti. Le tensioni principali di un tubo sono quella circonferenziale, radiale ed assiale; le tensioni principali risultano molto importanti perché ci permettono di capire, dove i componenti meccanici collassano: le linee di frattura sono ortogonali alle tensioni principali attrattive (per esempio un tubo si rompe, aprendosi, con delle rotture assiali poiché la tensione massima è circonferenziale attrattiva). Selezionando **Numerics** ed usando lo **zoom** visualizziamo i risultati in forma di numeri, potendo così osservare il valore dello spostamento per ogni punto. In **Deformed Shape**: ''[Style] → [Deformed & Original]'' In questo modo possiamo visualizzare come si è deformata la nostra struttura rispetto alla configurazione iniziale (possiamo anche vedere la nostra struttura indeformata, o entrambe le situazioni). Nel menù **Scalar Plot**: ''[Scalar] → [Equivalent von Mises Stress]'' Visualizziamo in questo modo i risultati relativi alla Tensione Equivalente di Von Mises: {{:wikitelaio2015:18.jpg?300|}} Nello stesso modo si possono selezionare altre grandezze da visualizzare: Spostamenti lungo X e Y; forze Esterne; Reazioni; valori Massimi, Intermedi e Minimi delle Tensioni Principali e delle Tensioni di Taglio; valori Massimi, Intermedi e Minimi delle deformazioni (ci accorgiamo che un modello è auto-equilibrato e fatto bene, se, applicandogli dei moti rigidi, i vincoli non risultano caricati). Nel caso in cui si voglia visualizzare i risultati in un sistema a coordinate cilindriche o sferiche: ''[Scalar Plot]: [Settings] → [Results Coordinate System] → [Cylindrical / Spherical] → [Active]'' Si può anche ottenere un grafico delle grandezze in esame: ad esempio dei valori massimi, intermedi e minimi della Tensione Principale (questi grafici sono esportabili in Excel per poi utilizzarli, ad esempio, per eseguire un’analisi a fatica): ''[Post Processing] : [Results] → [Pat Plot] -> [Node Path] → selezioniamo i nodi di in-teresse → click destro per "end list" → [Add Curves] → [Add Curve] → [Arc Length] → [Maximum Value of Stress] → [Arc Length] → [Intermediate Value of Stress] → [Arc Length] → [Minimun Value of Stress] → [Fit]'' {{:wikitelaio2015:19.jpg?300|}} {{:wikitelaio2015:20.jpg?300|}} Per tornare al nostro modello clicchiamo **Show Model**. Visualizzando i valori numerici relativi alla “Minimum Principal Value of Stress” (**Numerics** nel menù **Scalar Plot**) notiamo che questa, in prossimità della circonferenza interna è pari a **17,5[MPa]**, mentre avevamo inserito un valore di Pressione Intera pari a **20[Mpa]**. {{:wikitelaio2015:21.jpg?300|}} Questo significa che la mesh non è convergente, ossia, non è sufficientemente piccola, quindi dobbiamo infittirla; dal **Main Menù** suddividiamo circonferenzialmente il tubo in 2 ed osserviamo se andiamo in convergenza (è come se avessi fatto un integrale su di un intervallo più piccolo): ''[Mesh Generation] → [Subdivide] → [Divisions] : [2,1,1] → [Elements] → [All] : [Exist.]'' Dal precedente Menù: ''[Sweep] → [All]'' Abbiamo così condensato dopo aver fatto la divisione; ora possiamo rilanciare il modello: ''[Main] -> [job]→ [run] → [ submit] → [monitor] → [open post file]'' Selezioniamo **Numerics** per visualizzare il valore della pressione ed osserviamo che il nuovo valore è più vicino a **20[MPa]**, ciò significa che l’operazione di convergenza ha avuto successo. Con questa esercitazione capito che aumentando il numero dei nodi, la mesh approssima le curve in maniera più precisa, quindi è necessario infittire la mesh, finchè il risultato dell’analisi FEM converge con i valori ottenibili tramite il calcolo analitico delle formule esatte per il tubo in pressione. Abbiamo verificato anche che, nonostante la struttura sia autoequilibrata, è necessario vincolarla, poiché in caso contrario non sarebbe possibile la risoluzione della struttura (i moti rigidi del corpo sarebbero ancora possibili). Grazie alla funzione Help di Marc possiamo vedere i tipi di elementi finiti presenti nel software. Nell’Help (che troviamo in basso a destra) è presente la sezione Element library: selezioniamo ad esempio il Tria 3 e ne possiamo vedere le caratteristiche. **Modellazione di un elemento Tria 3** Realizziamo un elemento Tria 3 per poter confrontare la matrice di rigidezza creata dal software con quella calcolabile a mano. Creimamo un triangolo tramite le funzioni per assegnare i nodi viste in precedenza, i cateti del triangolo sono di lunghezza unitaria. Da Geometric properties assegnamo un elemento Plane stress di spessore 1 ai punti che abbiamo creato in precedenza, ricordando di selezionare i punti in senso antiorario: tali punti sono i nodi dell’elemento Tria 3 creato. Il numero di nodi di un elemento determina la sua funzione di forma: più nodi sono presenti e più sarà complessa l’equazione che lega gli spostamenti (che nel piano sono u e v rispettivamnete lungo gli assi x e y) dei nodi dell’elemento. ''[Plot]-[Elements]-[Solid]-[Regen]'' Attivando questa funzione è possibile visualizzare gli elementi assegnati. Assegnamo il materiale acciaio all’elemento e lo vincoliamo isostaticamente con cerniera e carrello, come abbiamo fatto per il tubo in pressione. {{:wikitelaio2015:screen_triangolo.png?200|}} Carichiamo il triangolo con una forza concentrata di intensità 10 N, diretta come in figura e applicata al noto più in alto: ''[Boundary conditions]-[New]-[Structural]-[Point load]-[Properties]-[Force X]-[10]'' e applichiamo il carico al nodo. Ricordiamo che i nodi fanno parte della mesh, mentre i punti non ne fanno parte, quindi è importante fare attenzione all’entità che si seleziona quando vogliamo applicare vincoli o carichi. Ritorniamo al Main e selezioniamo ''[Jobs]-[New]-[Structural]-[Properties]-[Job Results]-[Stress]-[Output File]-[Elements Matrices]'' qui possiamo vedere la matrice di rigidezza associata al problema modellato. Il file di output creato si trova nella Home Folder e ha estensione .out.