Intro al Marc/Mentat

Da CdM_unimore.

Data la complessità dei casi reali di interesse ingegneristico è impossibile compilare un codice Fortran capace di schematizzare il modello e risolvere il problema. Proprio per questo motivo ci si basa su un programma commerciale che consente di effettuare analisi (FEA) che vanno dalle più classiche (strutturali) alle più complesse (termiche, fluidodinamiche e magnetiche), utilizzando per la modellazione svariati tipi di elementi, ognuno con caratteristiche molto diverse. Durante questo corso verrà usato il programma agli elementi finiti Marc/Mentat. E' importante tenere a mente che il software in questione non prevede l'inserimento di unità di misura. Al fine di evitare errori macroscopici è quindi necessario prestare attenzione nell'inserimento dei dati.

Aprendo il programma si presenta la schermata del menù principale, dalla quale si può accedere alle funzioni di base del programma (nel corso della lezione verranno illustrati i tasti utilizzati). Le voci principali sono del menù sono:

  • Mesh Generation: consente di creare geometrie, meshature e di effettuare altre operazioni utili riguardanti la mesh;
  • Geometric Properties: associa agli elementi creati in precedenza le proprietà geometriche (es: tensione piana, elementi piastra, spessori..ecc);
  • Material Properties: assegna uno o più materiali alla struttura, consentendo di simulare svariate situazioni reali;
  • Boundary Conditions: definisce ed applica le condizioni al contorno (carichi, vincoli..);
  • Jobs: delinea le opzioni dell'analisi scegliendo i risultati da visualizzare, fa partire la simulazione;






Tubo sottoposto a pressione interna (MODELLAZIONE A)

L'oggetto dell'esercitazione è un tubo pressurizzato che può essere schematizzato e modellato in tensione piana. Tale tubo sarà libero di dilatarsi assialmente.


Mesh generation

In questo caso definiremo la sezione di studio del tubo attraverso due circonferenze concentriche, noti il centro e il raggio. I dati di input del problema sono:

  • Raggio esterno = 20 mm;
  • Raggio interno = 10 mm;
  • Pressione interna = 20 MPa (= 200 bar);


Per la realizzazione della geometria conviene utilizzare i nodi per i punti che appartengono al modello da realizzare, e i punti per le entità che potrebbero essere utili alla modellazione a non appartengono alla geometria considerata (centro del cerchio). Si è scelto in questo caso di procedere con la creazione di una linea che unisce due punti (uno sul raggio esterno e uno sul raggio interno), estrudendo in rivoluzione tale linea rispetto a un punto (centro del cerchio). La linea sarà prima suddivisa in un numero di elementi tali che che la corona circolare estrusa risulti già meshata in elementi tanto più simili a quadrati.

Si riportano di seguito i passaggi effettuati per la creazione del punto rispetto al quale creeremo la corona circolare, e della linea, noti i due estremi:

[mesh generation]-[points]-[add]-- 0,0,0

per generare il centro del cerchio (centro di rivoluzione)

[nodes]-[add]-- [10,0,0] e [20,0,0]

per definire gli estremi del segmento.


Screenshot 2014-04-07 08.39.11.png


Per specificare che l'elemento che vogliamo generare è una linea definita da due nodi impostiamo

[element class]-[line(2)] 

Per inserire fisicamente l'elemento linea scegliamo

[elements]-[add] 

e successivamente si selezionano i due nodi, prima quello di coordinate (10,0,0) e successivamente quello di coordinate (20,0,0).


Screenshot 2014-04-07 08.39.47.png


Si divide ora la linea in 8 elementi

[subdivide]-[divisions]-- 8,1,1, 

e si applica la divisione a tutti gli elementi

[elements]-[all existing] 


Screenshot 2014-04-07 08.41.28.png


Su EXPAND impostiamo la generazione per rivoluzione della retta modificando i parametri sull’asse z, rispetto al quale effettuiamo la rivoluzione:

[repetitions] -- 25
[rotation angles(degree)] -- 360/25

In questo modo indichiamo che la rivoluzione ha luogo su un arco di 360°, con 25 intervalli regolari (ciascuno quindi ampio 360/25=14.4°). Si applica la rivoluzione a tutti gli elementi esistenti

[elements] -- [all]-[existing]

ottenendo la corona circolare già meshata ad elementi trapezoidali.


Screenshot 2014-04-07 08.43.36.png


E' ora necessario verificare che gli elementi siano orientati nel verso giusto tramite

[check]-[upside down (2D)]

Il programma indicherà che tutti gli elementi (in questo caso 200) sono nel verso sbagliato, in quanto essi avranno area negativa.


Screenshot 2014-04-09 23.31.12.png


Si corregge "l'errore" appena evidenziato tramite:

[flip]-[elements]-[all existing]

Si nota che il verso delle frecce lungo i lati degli elementi cambia. Cliccando nuovamente su [upside-down (2D)] si verifica di aver risolto.


Screenshot 2014-04-09 23.33.06.png


Si vuol far notare che il problema non si sarebbe posto se, nella costruzione dell'elemento linea tra i due nodi, si fosse selezionato prima il nodo di coordinate (20,0,0) e successivamente (10,0,0), imponendo così da subito il verso di percorrenza corretto, ossia antiorario.

Per rendere il modello più snello per le prossime operazioni si "elimina" il disegno degli elementi, lasciando in evidenza solo nodi e bordi della corona circolare:

[plot]-[elements]-[settings]-[edges]-[outline]-[regen]



Screenshot 2014-04-09 23.34.32.png


A questo punto la corona si presenta evidentemente "aperta" (sono presenti due bordi coincidenti in corrispondenza della linea iniziale, difetto dovuto alla rivoluzione), ed è quindi necessaria una operazione di sweep che faccia collassare i due bordi e renda continua la corona; tornando al menu della mesh generation eseguiamo quindi:

[sweep]-[nodes]-[all]-[existing]



Screenshot 2014-04-09 23.36.36.png


A questo punto abbiamo concluso la fase di creazione della mesh. Tornando al menu iniziale possiamo definire gli altri parametri del problema.

Geometric properties, material properties e boundary conditions


E' necessario in primo luogo stabilire che si tratta di problema di tensione piana:

[geometric proprieties]-[new]-[structural]-[planar]-[plane stress] 

chiamandola "tensione_piana". Si applca tale scelta a tutti gli elementi esistenti

elements -[add]-[all]-[exist].

Se vogliamo rimuovere qualche elemento da questa scheda di proprietà geometrica è possibile utilizzare il comando REM (che sta per "rimuovi"), di fianco al comando ADD, selezionando quindi gli elementi interessati e dando il fine lista

[end list]


Screenshot-3.png


Si definiscono adesso le proprietà del materiale:

[material properties]-[material properties]-[new]-[standard]

chiamandolo "acciaio" Tramite il comando

[general]

Si inserisce una densità (anche se inutile in questa analisi) di 7.8e-9 (MARC utilizza Mpa e mm come unità di misura di default) Mentre su

[structural]

Si inserisce uno Young's modulus di 210000 ed un Poisson's ratio di 0.3.

Si applicano ora queste proprietà a tutti gli elementi

[elements]-[add]-all[exist].


NB: Il Mentat è programmato per leggere il valore zero come: "usa il comando di default", quindi se lasciassimo densità zero, il mentat, che per la densità ha valore di defaul pari ad 1, considererebbe densità del tubo pari ad 1.


Screenshot-5.png


Infine si possono applicare le condizioni al contorno.

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) applicabile ad un modello 2D;
  • FACE LOAD:come il precedente, ma riferito ad un modello 3D;
  • 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 10 MPa al bordo interno:

[Boundary conditions]-[new]-[structural]-[edge load].

Si rinonimi tale condizione come "P_interna" (name- P_interna) e si assegni il valore 10:

[properties]-[pressure] ed immettiamo di fianco il valore 10.


Screenshot-6.png


Se la mesh è molto fitta per selezionare i bordi di applicazione del carico, conviene nascondere gli EDGE interni (dato che ciò che non è visibile non può essere selezionato), lasciando così la selezione possibile solo per quelli di superficie. Tale regolazione si esegue dal menù

PLOT -> ELEMENTS -> SETTINGS 

e si decide di visualizzare tutti gli edge di OUTLINE nascondendo così tutti quelli che non sono di bordo (ossia che non sono comuni a due elementi):

[plot]-elements[settings]-[outline]-[draw] seguito da regen per visualizzare le modifiche.


Screenshot-7.png


Si torna su "P_interna" e si seleziona il bordo su cui applicare "P"

[edges]-[add]

selezionando i bordi tenendo premuto il tasto sx (selezione rettangolare) o CTRL+click sx (selezione poligonale) i bordi interni del tubo seguito da END LIST (#).


Screenshot-8.png


Anche se la struttura è autoequilibrata, dato che le variabili primarie del codice agli elementi finiti sono gli spostamenti, è necessario isostaticizzare la struttura al fine di eliminare eventuali moti rigidi. Per questo si predisporranno una cerniera ed un carrello in due nodi a caso della struttura.

[Boundary conditions]-[new]-[structural]-[fixed displacement]-[properties]-[displacement y]

lasciando il valore 0 (il carrello vincola lo spostamento lungo y). Applichiamo il vincolo a un qualunque nodo appartenente al tubo con

[Nodes]-[add] 

cliccando su un nodo della struttura, seguito da END LIST (#).

Allo stesso modo si procede per creare una cerniera che elimini i restanti gradi di libertà della struttura:

[Boundary conditions]-[new]-[structural]-[fixed displacement]-[properties]-[displacement y],[displacement x]

lasciando il valore 0 (spostamento nullo in x e y).

[Nodes]-[add]

cliccando su un solo nodo della struttura diverso dal precedente ma con asse non incidente in quello del carrello. In tal caso il sistema sarebbe labile e iperstatico allo stesso tempo.


Screenshot-10.png


Attivando [ID boundary conditions] e [draw boundary conditions on mesh] si possono osservare assieme le condizioni applicate.

Il modello è pronto per essere lanciato.

Job: lo svolgimento del calcolo

Ora dal menù [jobs] si crei una scheda job

[jobs]-[new]-[structural] 

nominandola "P-interna".

Su [properties], controlliamo che in [initial loads] siano presenti 'P_interna', 'carrello' e 'cerniera'. Gli initial loads sono disattivabili in modo da rendere possibile con lo stesso modello diverse simulazioni, semplicemente aprendo diverse schede job. Andando in [job results] si selezionano i risultati interessanti al fine della simulazione:

  • [stress]
  • [total strain]
  • [Von Mises equivalent stress]

Non è indispensabile includere la Von Mises stress perché è calcolabile a posteriori dal tensore degli sforzi, ma è consigliabile dato che questa è quella di calcolo, cioè quella che il solutore vede in un determinato istante di calcolo. Sulla base di questa tensione di Von Mises viene fatta la plasticizzazione del materiale, quindi è comodo averla se qualcosa non funziona. Cliccando

[custom] 

appare un terzo menù, nel quale si seleziona

  • [displacement]
  • [external force]
  • [reaction force]

N.B. E' bene includere sempre gli spostamenti per vedere la deformata, le forze esterne per vedere come la pressione distribuita è stata ridotta a carichi nodali, le reazioni vincolari per controllare che i vincoli di posizionamento non portino carico come deve essere in un sistema autoequilibrato.

Si imposta poi

[analisys dimension]-[plane stress] 


Screenshot-12.png


Per scegliere il tipo di elemento si utilizza il comando

[jobs]-[element types]-[analysis dimension]-[planar]

Si cerca poi l'intersezione tra la colonna [Quad 4] (elemento quadrilatero a 4 nodi) e la riga [plane stress full integration]. Tale intersezione è l'elemento 3, da applicare a tutti gli elementi [all esxist]. Si salvi poi tramite

[file]-[save as] "tubo".

Se si vogliono vedere più in dettaglio le caratteristiche dell'elemento 3, si può andare nelle sessione HELP(in basso a destra), nel cui Volume B (Element Library) sono presenti tutti i diversi elementi (circa 238).


Elemento3.png


L'elemento 3 è un elemento a 4 nodi, isoparametrico di forma arbitraria quadrilatera, in esso le deformazioni risultano costanti lungo l'elemento. Questo comporta una scarsa modellazione del comportamento a taglio. Nella figura si riportano i diversi punti di integrazione ( quelli interni), e di questi punti sono riportati i risultati in termini di tensioni e deformazioni dell'intero elemento.

A questo punto si può lanciare il calcolo dalla finestra jobs

[run]-[submit]

Si può verificare il procedere del calcolo guardando in basso a destra nella schermata di lavoro. Il programma è in 'working'. Quando il calcolo finisce torna su 'Ready' e nella finestra RUN JOBviene restituito un numero che indica l'esito del calcolo (exit number). L'unico valore che indica la buona riuscita del calcolo è 3004. 2004 significa singolarità della matrice di rigidezza della struttura, 13 indica un errore nel modello, etc. Cliccare su [open post file] per aprire i risultati.


Screenshot-15.png

Postprocessing: gestione e manipolazione dei risultati

I risultati del calcolo vengono salvati su tre diversi file: file.dat, file.log, file.t16. I primi due possono essere aperti con un programma tipo blocco note. L'immagine seguente è un esempio di quanto si può leggere nel file.log (un diario del programma riporta tutti i passaggi effettuati).


File.log.png


Si osserva che è possibile verificare o meno la buona riuscita del calcolo e, in caso di successo, si può leggere il tempo che è stato necessario.

Il file.t16 è il risultato espresso in codice binario e non lo si può aprire con un normale programma di lettura. Lo si può aprire con il Marc/Mentant, il quale esprime i risultati in modo visivo. Per la visualizzazione dei risultati, sfruttando l'interfaccia grafica di Marc/Mentat, bisogna aprire il file dei risultati cliccando sul pulsante Open Post File (Results Menù) presente nella finestra JOBS/Run. E' possibile notare che si sta lavorando su un file di risultati (postprocessing) in quanto l'estensione del file non sarà più .mud, ma .t16.


Deformed Shape

Innanzitutto tramite il comando Deformed shape è possibile visualizzare la forma dell'oggetto deformato in relazione a quella dell'oggetto indeformato. Cliccando su [deformed and original], [settings] ed attivando automatic è possibile confrontare (con una scala opportuna) la deformata con la forma originale . Attivando invece la voce manual è possibile scegliere la scala desiderata. Come si vede dalla figura seguente, deformata e originale si discostano per via dell'imposizione di spostamento non nullo fatta sul carrello.


Tubo4.png


Scalar Plot

Tramite il sottomenù Scalar Plot è possibile visualizzare i risultati riguardanti grandezze scalari in diversi metodi rappresentativi. Ad esempio un metodo di semplice comprensione visiva è quello di visualizzare le bande di livello (contour bands) che caratterizzano la grandezza selezionata. Cliccando su [scalar] è possibile selezionare il parametro scalare da visualizzare, come ad esempio la tensione equivalente di Von Mises.

Tensione equivalente di Von Mises

Selezionando la tensione equivalente di Von Mises come valore da visualizzare in uscita, si osserva come lo stato tensionale è uniforme su ogni strato radiale, massimo all'interno del tubo e in progressiva diminuzione man mano che ci si muove verso l'esterno, proprio come è riportato in letteratura.

Tubo3.png


E' possibile variare la graduazione della scala, cioè utilizzare un numero maggiore o minore di colori, entrando in [scalar plot settings] e selezionando la scala manuale e il numero voluto di livelli.


Tubo5.png


I risultati che si ottengono possono variare in base a quanto spinta sia la meshatura effettuata: e' chiaro che una mesh più fitta è sinonimo di risultati più accurati. Ciò dipende dal fatto che i lati dell'elemento finito sono rettilinei per cui non si prestano bene a simulare una curvatura come quella del tubo; tuttavia, se i lati sono molti, l'approssimazione si fa sentire meno; anche graficamente si fa fatica ad accorgersi che la curvatura non è perfetta.

Tensione lungo x

Selezionando [Comp 11 of stress] come grandezza in uscita è possibile visualizzare le agenti sul tubo nel caso in cui ci troviamo in un sistema di riferimento cartesiano, in quanto:

   1: indica l'asse x
2: indica l'asse y
3: indica l'asse z

Nel caso in cui fossimo in coordinate cilindriche allora:

   1: indica l'asse radiale
2: indica l'asse circonferenziale
3: indica l'asse assiale
Componente sigma x.PNG

Entrando nel menù [Extrapolation] è possibile gestire il metodo con cui viene calcolato e mostrato a schermo il particolare tensore che stiamo considerando (in questo caso la ). Nel sottomenù [Nodal Averaging] c'è la possibilità di selezionare ON oppure OFF. Selezionando ON si genera automaticamente una continuità tra gli stress nel passaggio da un elemento all'altro, infatti così facendo ad ogni nodo è assegnata la media della tensione tra i punti di integrazione degli elementi collegati a quel nodo. In questo modo si hanno delle linee di tensioni più regolari che permettono anche ad occhi meno esperti di apprezzare il risultato dell’analisi. In realtà il risultato così ottenuto è solo fittizio, proprio perché si compie un’operazione di media tra più elementi, infatti elementi connessi hanno ovviamente pari spostamento nodale, ma non è detto abbiano pari tensioni ai nodi, come può essere per collegamenti di materiali differenti (acciaio/gomma delle guarnizioni) o di superfici dirette in modo diverso (ortogonali). Generalmente anche senza accoppiamenti di questi tipi particolari le tensioni sono differenti, e questo può vedersi andando ad impostare il comando OFF. In questo caso, infatti, le tensioni degli elementi adiacenti diventano indipendenti tra loro e quindi la visualizzazione risulta più veritiera, anche se meno intuitiva nel caso non si conosca a fondo la teoria del calcolo per gli elementi quadrilateri. E' possibile notare la differenza osservando le due figure seguenti:


OFF 22.png



ON 22.png


Prima di considerare l’altra parte del menù [Extrapolation] è utile andare a studiare come vengono determinate le grandezze richieste nel comando JOB da parte del risolutore (MARC). Come si era già mostrato sopra definendo gli elementi 3, nella sezione HELP viene mostrata la forma indeformata dell’elemento con indicati anche i punti di integrazione di Gauss. Questi permettono di calcolare l’integrale esatto di una generica funzione (nel nostro caso la ) con dominio l'elemento considerato, semplicemente dalla sommatoria dei valori pesati di tale funzione calcolata nei soli punti di Gauss. Il valore di tale integrale viene definito come il valore della tensione al centroide dell’elemento, che sarà quindi la media pesata dei valori calcolati sui punti di integrazione. Il problema ora è quindi definire quale valore affidare ai nodi dell’elemento, che non corrispondono ai punti di integrazione, e il sottomenù [METHOD] ci permette proprio di andare a scegliere il metodo di calcolo di tale grandezza sui nodi permettendo di scegliere tra 3 possibilità: Nel caso il metodo sia impostato su [LINEAR], e sia disattiva la media nodale, il valore della tensione nel nodo corrisponde a quella che si avrebbe procedendo linearmente tra il valore della tensione del centroide (dal metodo di Gauss ) e quello calcolato per il rispettivo punto di integrazione. Vediamo un esempio per capire:

Quad4gauss.jpg

il problema in questo caso sta nel fatto che un nodo potrebbe risultare con tensione superiore a quella di snervamento del materiale, poiché è limitata solamente nel calcolo, che avviene nei punti di integrazione. E' inoltre possibile che si abbia una tensione negativa in un nodo, che indicherebbe una contropulsione, che non rispecchia il caso reale. Si riportano degli esempi per esprimere queste considerazioni:

Linear method.jpg

Per risolvere il problema si può ricorrere alle approssimazioni definite dal comando [TRANSLATE], che va a "traslare" il valore ottenuto sul punto di integrazione direttamente sul nodo, senza modificarlo. Risulta quindi in svantaggio di sicurezza rispetto al metodo lineare ma si utilizza per evitare gli errori sopra descritti. Il metodo [AVERAGE] invece definisce in tutto l’elemento il valore della tensione propria del centroide, calcolata dal metodo di gauss, quindi dalla media dei valori nei punti di integrazione. È quindi il metodo più grossolano, come si può vedere dalle immagini seguenti:


Tubo13.png
Average.png

Vector Plot

Tramite il sottomenù Vector Plot è possibile visualizzare i risultati riguardanti grandezze vettoriali. Il sottomenù cercato si trova cliccando su More.

Reaction Force

Selezionando [Reaction Force] è possibile visualizzare le reazioni vincolare, infatti si osserva che sui vincoli sono applicate delle forze. In realtà, però, i vincoli non dovrebbero essere caricati (la pressione nel tubo è autoequilibrante). Tuttavia, se si osserva la scala di misura, si nota che le forze sono dell'ordine di , quindi possono essere considerate nulle senza commettere un errore rilevante.


Tubo8.png



Inoltre, ingrandendo la dimensione dei vettori, è possibile notare che vengono caricati anche dei nodi diversi da quelli a cui è stato imposto spostamento nullo, e che quindi non ci aspettavamo venissero caricati, resta comunque il fatto che questi caricamenti sono debolissimi, ad esempio nella meshatura presa ad esempio abbiamo valori nell'intorno di


Reaction force.PNG


External Force

Selezionando [External Force] come grandezza in uscita è possibile visualizzare tutte le forze applicate sul tubo dall'esterno. Nel caso in esame, si tratta solo della pressione. Si ricordi che la pressione è stata applicata ai lati degli elementi interni, tuttavia le forze del risultato sono applicate solo ai nodi. Non esiste un programma agli elementi finiti che operi diversamente.


Externalforce.png
Displacement

Selezionando [Displacement] come grandezza in uscita è possibile visualizzare gli spostamenti imposti.


Vectorplot.png

Tensor Plot

Tensione Principale

Tramite il sottomenù Tensor Plot è possibile visualizzare i risultati riguardanti i tensori (generalmente tensioni) calcolati durante l'analisi.


Tensorstress.png

Tubo sottoposto a pressione interna (MODELLAZIONE B)

Creiamo un nuovo modello. La struttura è quella dell'esecizio precedente, ma stavolta la vediamo come doppiamente simmetrica. Se una struttura ha diverse simmetrie e queste simmetrie sono rispettate dai carichi, allora è possibile modellare solo una porzione della struttura ed estrapolare i risultati delle altre porzioni semplicemente specchiando i risultati per la porzione che abbiamo effettivamente modellato. Modelliamo, quindi, in questo caso, solo un quarto della struttura iniziale. In questa configurazione l'elemento non risulterà auto equilibrato sotto la pressione, occorre dunque che si imponga agli assi di simmetria la continuità con le immagini della struttura (quelle omesse), vincolando tutti i nodi a spostamento nullo lungo y e tutti i nodi dell'elemento a spostamenti nullo lungo x.

N.B. In generale ad una simmetria si vietano gli spostamenti normali al piano di simmetria (o normali all'asse, come in questo caso) e nel caso l'elemento porti le rotazioni esse si bloccano con asse entro il piano ( perché danno luogo a spostamenti normali e sono vietati ).


Mesh generation

Costruiamo il quarto di Corona Circolare. Partiamo andando su [MESH GENERATION]-[PTS ADD] e battiamo le coordinate dei punti dei segmenti (0 0 0), (10 0 0),(20 0 0), gli altri 2 punti saranno per i tratti curvilinei (0 10 0),(0 20 0), adesso ho tutti i punti per delimitare il volume del materiale in questo modello. Queste sono tutte entità geometriche, possono essere importate da autocad.

Screenshot-24.png

Aggiungiamo le linee e le curve che delimitano il dominio elastico (la parte di tubo che voglio modellare). La curva di default è il segmento, e va bene per creare i due segmenti che delimitano la figura, cliccando prima sul nodo interno e successivamente su quello esterno. Non ho creato elementi bensì curve, cioè una unità puramente geometrica. creati i due segmenti, procedo a cambiare il tipo di curva, attraverso [CURVE TYPE] e selezionando l'arco CPP (Center Point Point), e chiudo il modello, selezionando il centro (0 0 0) e gli estremi dell'arco (N.B.:gli archi vengono aggiunti in senso antiorario). La curva può apparire segmentata per questioni di visualizzazione, che è possibile migliorare nel settaggio delle curve in [PLOT] e selezionando la precisione migliore.

Screenshot-26.png

Avendo ottenuto una geometria generica, come facciamo a costruire una mesh su di essa? Andiamo su [MESH GENERATION]- [AUTOMESH], che è il menu per meshare geometrie generiche. Qui abbiamo 2 fasi:

  • Fase preliminare (controllo e riparazione della geometria, tipica del 3D)
  • Fase di meshatura effettiva

Bisogna per prima cosa assegnare ad ogni curva il numero di suddivisioni voluto, poichè da questa suddivisione salterà fuori il numero di elementi presenti su quella curva. Ed allora andiamo su [CURVE DIVISION], si avrà cosi un menù dove la più semplice è [UNIFORME] clicchiamo e decidiamo il numero di suddivisione, le suddivisioni che diamo diventano proprietà delle curve. Il programma ci chiede poi il numero di divisioni, ad esempio 3,clicchiamo su APPLY CURVE DIVISIONS e dopo applichiamo a tutti gli elementi([ALL EXSIST]) e vediamo che ogni curva sarà divisa in 3 parti.

Screenshot-28.png


Se invece, piuttosto che dare il numero di suddivisioni, preferisco dare una lunghezza obbiettivo, allora definisco una [TARGET LENGTH] e applicando questa suddivisione a tutte le curve tutti i lati vengono lungi circa la lunghezza stabilita.Utilizziamo questo ultimo metodo e otteniamo la suddivisione.

Tubotria1.png

N.B.Le suddivisioni che facciamo diventano proprietà delle curve che si possono cambiare in ogni momento. Quando dividiamo una curva non spezziamo fisicamente la stessa ma stiamo solo dicendo al programma di dividere la curva in più elementi, essa risulterà una proprietà aggiunta.

E' possibile chiedere un numero di divisioni pari oppure dispari. In questo caso è consigliabile utilizzare [RESTRICTION]-[FORCE EVEN DIVISIONS], che permette di arrotondare all'intero pari più vicino alla suddivisione e la applichiamo non alle curve individuali ma ai loop (deve esse pari non il numero di suddivisioni sulla curva ma deve essere pari il numero di suddivisione totale sul giro delle curve, questo perchè la meshatura quadrilatera si può fare solo se il numero di divisioni è pari). Allora seleziono [APPLY CURVE DIVISION] applicandola a tutte le curve esistenti.

Una volta fatta la suddivisione, si passa a fare la meshatura del dominio interno alle curve, delimitato dalle curve stesse. [CURVE MESHING] mesha elementi tipo linea lungo le curve stesse, in pratica crea una specie di fil di ferro a fare il giro delle curve. [2D PLANAR MESHING] crea una meshatura di tipo planare nel dominio delimitato da queste curve, che è quello che ci serve. Se queste curve non fossero su un piano ma su una superficie, farei la stessa cosa sulla superficie con [SURFACE MESHING]. Cliccando su [2D PLANAR MESHING] si hanno vari algoritmi: algoritmo per i quadrilateri ad avanzamento di fronte, algoritmo di quadrilateri con overlay (poco usato), algoritmo per creare mesh triangolari di tipo Delaunay, un algoritmo alternativo tipo avanzamento di fronte,e un algoritmo misto dove se riesce fa i quadrilateri e se vengono troppo distorti fa i triangoli.

Tentiamo con [QUADRILATERALS (ADV FRNT)]-[QUAD MESH!] e il programma richiede una lista di curve. questa lista di curve deve definire il dominio quindi deve essere un anello chiuso. Seleziono le 4 curve e do il finelista. Se il giro di curve è chiuso crea la mesh. Cosa vuol dire ad avanzamento di fronte? Parte dal bordo, crea file di elementi, e in mezzo rappezza alla meglio. Non sempre uno vuole avere gli elementi interni fini come quelli di bordo tipicamente perchè gli alti gradienti tensionali sono spesso al bordo. Quindi si può impostare il [MESH COARSENING PARAMETER] che definisce un aumento della dimensione dell'elemento passando dal bordo verso l'interno; [1] vuol dire manternere la stessa dimensione dell'elemento che hai sul bordo anche all'interno, e può essere aumentato.

Tubotria2.png

Togliamo il coarsering parameter per vedere gli altri algoritmi. Proviamo a usare la meshatura [TRIANGLES DELAUNAY TRI MESH!]. Fa una meshatura a triangoli piuttosto regolare. Proviamo a vedere come gestisce il coarsering inserendo [2] e gli elementi non sono troppo distorti. Il vantaggio della meshatura a triangoli è quella di riuscire ad adattarsi molto meglio dei quadrilateri a geometrie complesse, soprattutto se ho dei gradienti sulle dimensioni dell'elemento. Delaunay non è molto robusto e può piantarsi, però è molto valido come qualità di meshatura ottenibile. In questo caso utilizziamo proprio il Delaunay e procediamo con [EXIST].

Screenshot-22.png

Questa mesh può essere sottoposta ai normali controlli:[MESH GENERATION]-[CHECK ELEMENTS], verificando l'assenza di [UPSIDE DOWN]. Poi si può fare una verifica sugli elementi distorti (figura sotto) e su quelli dichiarati aspect ratio (cioè il rapporto fra perimetro e area, nei 2D): questi elementi fanno capire se questi elementi sono distorti in maniera accettabile o no.

Screenshot-23.png

Un esempio di distorsione non accettibile è quella di un quadrilatero non convesso. Anche un qualdrilatero convesso per poco è brutto, anche se il calcolo non si pianta, però questo elemento è molto soggetto alla possibilità di essere più rigido del previsto di una quantità da verificarsi. E' impossibile dare un limite senza dare un errore tollerato. Questo tipo di dichiarazioni varia da modello a modello, per cui si cominciano a definire delle soglie in base alle procedure comuni (buona pratica ma che può non valere minimamente in qualche caso specifico). [ZERO VOLUME] sono gli elementi privi di area, che in questo caso non dovrebbero esserci, e [CROSS ELEMENTS] sono elementi che si sovrappongono, si incrociano o si affiancano senza essere saldati (anche questi non ci sono).

Per convertire gli elementi da triangolari 3 nodi a trangolari 6 nodi si segue: [MESH GENERATION]-[CHANGE CLASS]-[TRIA (6)]-[ELEMENTS]-[ALL EXIST]. In questo modo cambia la classe di elemento e vengono creati i nodi di centro lato.

Screenshottria-24.png