Riprendiamo il modello di fine lezione precedente (lastra forata con un solo elemento triangolare con due cateti uguali). Avevamo deciso di prendere una formulazione di stato di tensione piana (cioè le sole componenti di tensione non nulle sono σx, σy, τxy). Abbiamo assegnato alla lastra uno spessore unitario (1 mm). Macroscopicamente, possiamo andare a ricavare le dimensioni del nostro oggetto utilizzando le funzioni nel menu utils
; tra queste funzioni c’è la funzione distance
, con la quale possiamo cliccare su due punti per ottenerne a schermo il valore della loro distanza (in particolare abbiamo visto che il raggio del foro è di 10 mm, la semi larghezza della lastra è 40 mm). La nostra lastra vorrebbe modellare una lastra infinitamente estesa in direzione y. Definita la formulazione di tensione piana, l’abbiamo associata al nostro elemento, oggetto della nostra analisi (vediamo infatti che nel menu geometric properties
, plane stress
, esiste un elemento che è stato associato a questa formulazione).
Occorre definire le proprietà del materiale. Andiamo in material properties
e creiamo una nuova scheda proprietà di materiale cliccando su new
; selezioniamo come tipologia un materiale standard
. Scegliamo per semplicità un materiale elastico omogeneo ed isotropo che chiameremo: lineare_elastico_isotropo
(potrebbe essere un alluminio). Il materiale lo sceglieremo fittizio, dell’ordine di un polimero.
Le proprietà di un materiale elastico sono divise in due categorie:
general
: comprende la densità e alcuni parametri per effettuare una eventuale ottimizzazione su base costo; non useremo né questi né la densità, che occorrerebbe specificare se ci fossero forze inerziali, ma la nostra analisi è quasi statica. Volendo dare una densità, potremmo assegnare quella dell’acqua: 1e-9
(cioè 1*10^-9 tonnellate a millimetro^3; per l’alluminio è 2.7e-9; per l’acciaio è 7.8e-9). NOTA: Le unità di misura che usa il software sono: millimetri per le lunghezze, secondi per il tempo, newton per le forze, tonnellate per la massa;structural
. Qui, siccome scegliamo che il nostro materiale sia elasto-plastico ed isotropo, gli unici parametri che dobbiamo fornire sono il modulo di Young, E, ed il coefficiente di Poisson ( Poisson's ratio
); sceglieremo un modulo di Young E = 1000
e un coefficiente di Poisson = 0.3
(se il materiale fosse alluminio, E = 70000 MPa; se acciaio, E circa 210000 MPa). Abbiamo scelto di utilizzare un materiale fittizio e solo il coefficiente di Poisson è realistico, che è 0.3 per tutti i materiali strutturali di interesse (acciaio, alluminio, plastiche; non va bene nè per le gomme, nè per le schiume). Il modulo E è scelto fittizio e non realistico, per sottolineare il fatto che i risultati che otterremo da questa analisi non sono funzioni del modulo di Young. Il materiale è elastico, quindi non attiviamo la plasticità e non si è tenuti a definire lo snervamento (che potrebbe essere necessario per descrivere un comportamento elasto-plastico). Per analisi lineare elastica, basta assegnare il modulo di Young E ed il coefficiente di Poisson.Definita la scheda materiale, associo questa scheda all’elemento. Nel menu principale vado in:
elemets—>add
.
Il sotware mi chiede la lista di elementi da associare (ricordiamo di disattivare il dynamic model
) e lo assegno cliccando sul nostro elemento e dando il fine lista (comando end list
). A questo punto, a questa scheda materiale è associato un elemento.
Vogliamo investigare sul comportamento di questo elemento e per farlo decidiamo di impostare una deformazione, assegnando come si muovono i nodi. Bisogna allora definire delle condizioni al contorno. Andiamo in boundary condition
e creiamo una scheda nuova con new
e scegliamo, tra le varie condizioni possibili,structural
. Abbiamo a disposizione, come prima scelta, fixed displacement
(spostamento imposto) che si usa per definire i vincoli come cerniere, carrelli, incastri, sia omogenei (cioè vincoli che impongono uno spostamento nullo su una data direzione di un nodo), sia non omogenei (ossia vincoli che impongono uno spostamento non nullo). Altre scelte sono:
fixed acceleration
(non serve nel nostro calcolo quasi statico), point load
(carichi concentrati di nodo),edge load
(carichi su un lato, utili per definire pressioni distribuite o azioni taglianti distribuite su elementi piani),face load
(carico sulla faccia; sono pressioni taglianti distribuite, azioni taglianti distribuite, sulle facce degli elementi tridimensionali),global load
(sono carichi distribuiti per unità di volume), gravity load
(sono carichi distribuiti base densità e sono carichi gravitazionali),centrifugal load
( sono forze centrifughe),foundation load
(supporti elastici utili per dimensionare fondazioni di un edificio; è un collegamento a terra, cedevole).
A noi interessa imporre uno spostamento ad un nodo, quindi useremo: fixed displacement
.
Abbiamo così creato una nuova scheda “boundary condition”, alla quale assegneremo il nome: fissi_o_incastro_o_cernira
. Questa condizione al contorno manterrà fissi i nodi a cui è applicata. Nel caso di nodi che portano solo spostamenti e non rotazioni,un incastro e una cerniera sono oggetti del tutto analoghi.
Andiamo nelle proprietà della condizione fixed displacement
, dove avremo la possibilità di imporre spostamenti e rotazioni in x,y,z. Ovviamente, non avrebbe senso imporre uno spostamento nullo lungo z ai nostri nodi visto che non hanno uno spostamento lungo z come variabile nodale. In questo menù devo attivare i displacement x
e displacemet y
, in modo tale che gli spostamenti lungo x e y da liberi che erano, diventino imposti e a valore pari a quello che leggiamo nella stessa schermata, in particolare il valore nullo. Quindi, attivando displacement x
e displacement y
, abbiamo imposto una boudary condition che vincola ad avere spostamenti nulli in x e y.
NOTA: leggere le impostazioni in tale schermata come impostazioni su: primo grado libertà (che l’interfaccia grafica chiama displacement x
), secondo grado di libertà (che l’interfaccia grafica chiama displacement y
), terzo grado di libertà (che l'interfaccia grafica chiama displacement z
), quarto grado di libertà, quinto grado di libertà, sesto grado di libertà (per gli ultimi tre gradi di libertà l'interfaccia grafica fa riferimento alle rotazioni attorno x,y,z). Quindi, se abbiamo una trave piana (che ha possibilità di traslare in x e y e di ruotare intorno a z) e voglio bloccare la rotazione intorno a z dovrò attivare il terzo grado di libertà, che l’interfaccia grafica chiama displacement z
.
Per vedere quali sono realmente i gradi di libertà di un elemento (dipendono dal tipo di elemento) si va, dal menu principale, in:
jobs —>element types
.
Questo menù permette di associare tipologie di elemento ai nostri triangolari 3 nodi. Qui scegliamo analysis class —> structural
, ed in analysis dimension
scegliamo planar
(cioè cambiamo analysis dimension
da 3D
a planar
) In questo modo vengono fuori gli elementi per stati piani. Tra tutti gli elementi possibili da scegliere, noi scegliamo solid
(cioè materiale pieno, che riempie lo spazio su cui giace). I triangolari tre nodi a disposizione sono quelli della prima colonna; per questo tipo di elemento abbiamo, per plane stress,full integration
, l’elemento 201. Quindi, il nostro elemento è il 201. Clicchiamo su element tipe 201
e diamo ok
. A questo punto il software chiede la lista degli elementi a cui associare la lista 201; posso assegnare la lista sia andando a cliccare sull’elemento trinagolare tre nodi e dando il fine lista, o cliccando su all_exist
, in modo che il software associ la tipologia 201 a tutti gli elementi che esistono. Usando il comando id_types
, tutti gli elementi tipo 201 verranno evidenziati in colore rosa (con colore diverso gli elementi di tipo diverso).
Andiamo ora in help
(nella parte in basso a destra dell'interfaccia grafica); si apre una finestra che ci da accesso a delle schede in pdf, che sono la guida del Marc. Clicchiamo su element_library
; c’è un capitolo per ogni elemento; scegliamo l’elemento 201 e, scorrendo la pagina, troviamo la sezione in cui ci dice quali sono i gradi di libertà dei nodi dell’elemento: notiamo che i primi due gradi di libertà sono proprio lo spostamento lungo x e y.
Dopo aver definito lo spostamento imposto, andiamo ad associare a questo spostamento i nodi della struttura. Nel nostro esercizio andiamo ad incastrare i nodi che sono alla base dell'elemento triangolare.
Procedimento:
andiamo in boundary conditions—>nodes—>add
e selezioniamo i due nodi che sono alla base dell'elemento. Per terminare l'operazione premiamo su end list
.
Adesso imponiamo uno spostamento al nodo superiore, in particolare si impone una pura traslazione in 'x' di entità unitaria.
Procedimento:
apriamo la finestra boundary conditions
e creiamo una nuova scheda premendo su new—>structural—>fixed displacement
. Nella casella name
possiamo inserire il nome della nuova scheda. Per assegnare le proprietà al nodo apriamo la finestra properties
, nella quale attiviamo:
displacement x
e lo poniamo uguale al valore unitario;displacement y
e lo lasciamo uguale al valore nullo. NOTA: si deve dare 'invio' per assegnare un valore diverso da zero agli spostamenti, altrimenti rimangono nulli.
Imposti i valori, possiamo chiudere la finestra e procedere ad associare l'ultimo nodo rimasto dell'elemento.
Procedimento: si preme su nodes—>add
e si seleziona il nodo. Per terminare l'operazione premiamo su end list
.
A questo punto il nostro problema ha zero incognite perchè abbiamo imposto gli spostamenti a tutti i nodi che prima erano liberi.
Per effettuare il calcolo si accede al sezione jobs
e si crea un nuovo foglio di calcolo.
Procedura: clicchiamo su new—>structural—>properties
. Aperta la finestra properties
selezioniamo initial load
.
In quest'ultima finestra si può controllare se sono attive le boundary conditions di nostro interesse per il calcolo, che comunque è possibile attivare e disattivare. Infatti tutte le boundary conditions che sono state definite in precedenza vengono inserite nel modello nel momento in cui si attiva jobs
. Per cui se si inseriscono nuove condizioni, dopo aver attivato jobs
, queste vanno inserite manualmente.
Per quel che riguarda i risultati da visualizzare si deve considerare che le tensioni e le deformazioni sono definite base elemento, mentre gli spostamenti, le reazioni vincolari e le forze esterne sono definite base nodo. Nella finestra properties
possiamo cliccare su:
job results
per le quantità base elemento. Per vedere lo stato tensionale si deve attivare stress
. Per vedere lo stato deformativo si deve attivare total strain
oppure elastic strain
. NOTA cliccando su layers
si ha una stratificazione immaginaria all'interno dello spessore dell'oggetto analizzato. Cioè permette di vedere come tensioni e deformazioni possono variare tra la superficie superiore e quella inferiore della sezione dell'elemento. Nel nostro caso si ha stato tensionale e deformativo uniforme lungo lo spessore. nodal quantities
per le quantità base nodo. In questo caso si ha la possibilità di selezionare default
nella quale include forze nodali, reazioni vincolari, spostamenti e rotazioni in modo automatico; oppure si può selezionare custom
per avere un miglior controllo. Selezionando quest'ultima, attiviamo displacement
per vedere la deformazione della struttura; attiviamo external force
per vedere le forze esterne anche se nel nostro caso non ci sono; attiviamo reaction force
per vedere le reazioni vincolari.
Sempre nella finestra properties
possiamo attivare force balance
. Questo permette, per una certa quantità di nodi e per una certa quantità di elementi, di scrivere su un file di testo tutti i contributi all'equilibrio per ciascun nodo e per ciascun elemento. Nella finestra che si apre clicchiamo su nodes—>all
e su elements—>all
per selezionarli tutti.
Per vedere se ci sono errori e warnings si clicca, nella finestra jobs
, su check
. Per vederli basta accedere alla schermata di visualizzazione in basso e spostarsi su e giù nel testo per trovare la natura degli errori.
Per lanciare il calcolo si apre il menu run
e cliccando su submit
si effettua il calcolo.
NOTA In realtà premendo su submit
viene creato un file di testo (file.dat) che contiene l'input che arriva al solutore. In questo file sono contenute tutte le informazioni che riguardano l'elemento e i nodi che sono stati inseriti prima.
Dopo che il solutore ha analizzato il file, appare nella cella exit number
il risultato dell'analisi, cioè un codice che definisce come è andato l'analisi. Ad esempio:
Supponiamo di aver salvato il file con il nome model_1, (è consigliabile non usare mai gli spazi nel nominare un file, ciò potrebbe generare problemi, quindi sostituirli con gli underscore) nella cartella di lavoro troviamo diverse tipologie di file:
Post processing results→open default
;
Dopo aver selezionato Post processing results→open default
siamo sul file dei risultati e qualsiasi modifica apportata al modello non avrà alcun effetto: se si volesse modificare qualcosa si dovrebbe tornare al modello cliccando sul comando Close
.
La struttura, inizialmente, si presenta nella configurazione deformata come scritto nel menu: se si seleziona Original
nel menu a tendina aperto cliccando su Deformed
, visualizziamo l'indeformata; se selezioniamo Deformed & Original
appare il confronto tra le due configurazioni.Tipicamente le deformate se il corpo è di materiale compatto e metallico non sono visibili ad occhio nudo per cui si ricorre alle deformate amplificate in maniera tale da poterle visualizzare: il fattore di amplificazione lo definiamo dal menù DEFORM SHAPE in Settings→Deformation scaling
. Se ritroviamo il fattore 1 la scala non è amplificata e possiamo impostare manualmente un altro fattore, oppure scegliendo Automatic
viene inserita automaticamente dal software (di solito il fattore di amplificazione non è un informazione visibile sul nostro modello per questo si consiglia di inserire il comando Show factor
importante per la chiarezza dell'analisi ).Si ricordi che la posizione dei nodi nella deformata è uguale alla posizione dei nodi nell'indeformata sommata allo spostamento eventualmente moltiplicato con il fattore di amplificazione.
Si prendono in esame le quantità base scalare del modello, queste sono le singole componenti di tesione, deformazione o di forza. Per cominciare se sono presenti i numeri che indicano i nodi della struttura è consigliabile disattivarli per evitare sovrapposizione tra questi e le entità delle reazioni vincolari che visualizzeremo sul grafico:basta selezionare plot→nodes→settings
e disattivare la visualizzazione dei label. A questo punto si selezioni Scalar→Displacement x
cioè l'entità di spostamento x: con questo menu gestisco la visualizzazione degli scalari sulla struttura, ad esempio si possono trovare spostamenti o forze esterne su x o y.Inizialmente lo scalare scelto non è visualizzato poichè si deve successsivamente selezionare il tipo di visualizzazione preferito: con il comando Contour Bands
ottengo una rappresentazione a bande colorate con una legenda che ci spiega le quantità da un minimo a un massimo; lo spostamento è definito ai nodi mentre agli elementi viene interpolato linearmente (in questo caso coerentemente con la teoria). Quando ci ritroviamo con dei numeri al di sotto delle cifre siginficative stabilite possiamo ritenerli nulli: si può verificare che lo spostamento y sarà omogeneamente nullo.
Altre quantità scalari sono: component 1 1 of total strain, allungamento lungo x (componente 1 1=componente primo asse, primo asse, cioè direzione x),component 2 2 of total strain è la deformazione lungo y, component 2 3 of total strain è la strizione dell elemento da considerare per l'effetto Poisson anche se si lavora con tensione piane e component 1 2 total strain è la deformazione gamma x y. Per analizzare numericamente il grafico si selezioni Numerics
che offre quantità precise nodo per nodo. Per visualizzare le reazioni vincolari clicco sul comando more
nel menù, seleziono vector plot → reaction force → on
e il programma ci fornisce i risultati, che possono essere visualizzati anche sulla configurazione indeformata. Se vogliamo rendere le frecce più visibili andiamo a cambiare la scala di visualizzazione delle frecce in vector plot settings
, troviamo la scala di visualizzazione con fattore di amplificazione (quelle di default sono quelle di tipo wireframe). Arrow plot settings
permette di scegliere se visualizzare le teste delle frecce in maniera wireframe o solid se si vuole renderle più visibili.
Dallo stesso menù è possibile visualizzare le grandezze tensoriali, ad esempio il tensore delle deformazioni andando a selezionare tensor plot → total strain → all principal values
. Il risultato son le componenti del tensore già orientate secondo le direzioni principali, come in figura seguente.
Per uscire dal postprocessing (ovvero per chiudere il file .t16) seleziono nel menù principale postprocessing → results → close
.
Michele De Luca Matr. 104899
Matteo Notarianni Matr. 99717
Francesco Davide Di Lorenzo Matr.106218
Leonardo Mastromauro 105214
Ore-uomo richieste per la compilazione della pagina.
Autore/Revisore | Prima stesura | Prima revisione | Seconda stesura | Revisione finale | Totale |
---|---|---|---|---|---|
De Luca | 6 | — | — | — | — |
Notarianni | 4 | — | — | — | — |
Di Lorenzo | 6 | — | — | — | — |
Mastromauro | 4 | — | — | — | — |
Andrea Hawila | 1 | — | — | — | — |
Alessandro Mattei | 1.5 | — | — | — | — |
Revisore 3 | — | — | — | — | — |
Revisore 4 | — | — | — | — | — |
Totale | — | — | — | — | — |
La sezione relativa ai revisori è da compilarsi a cura del curatore. </hidden>
modello a fine lezione precedente
modello con mesh a taglia elemento non uniforme
modello con mesh inutilmente fine
Riga di comando per lanciare Mentat
mentat2013.1 -ogl -glflush
Riferimenti: The Finite Element Method da Boresi Schmidt, 5a edizione.