Marc Mentat 1

Da CdM_unimore.

Installazione su pc windows e collegamento a server licenze

Una copia dei file di installazione è disponibile in scaricamento scp/sftp sul server cdm.ing.unimo.it (o oldzauker.ing.unimo.it) nella cartella /scambio

Per accedere a tale server con protocollo sftp/scp potete seguire le seguenti procedure.

Opzione cygwin

Utilizzo di cygwin, con pacchetto openssh da includersi durante l'istallazione.

Da terminale cygwin battere i seguenti comandi. Il login è da effettuarsi con le credenziali di ateneo.

Procedere con il download dell'installer windows versione 2012 (1.3Gb)

sftp NOMEUTENTE@cdm.ing.unimo.it:/homel/__scambio/marc_2012_windows3264_classic.exe ./

o versione 2013.1

sftp NOMEUTENTE@cdm.ing.unimo.it:/homel/__scambio/marc_2013.1_windows64_classic.exe ./

Procedere con l'installazione, selezionando l'interfaccia Mentat "Classic", che utilizziamo in aula.

Definire una variabile d'ambiente:

Nome Variabile: MSC_LICENSE_FILE
Valore varibile: 1700@localhost

Sotto Windows XP si gestiscono le variabili d’ambiente da

Pannello di Controllo → Sistema → Avanzate → Variabili d’ambiente

Anche sotto Windows 7,8,8.1 si gestiscono le variabili d’ambiente da

Pannello di Controllo → Sistema → Impostazioni di sistema avanzate → Variabili d’ambiente

Procedere con l'apertura di un ponte licenze con il server di ateneo, passando sempre per la macchina cdm.ing.unimo.it. Il traffico relativo alla gestione delle licenze è minimo, ma la connessione deve rimanere aperta, copiare quindi la seguente stringa in cygwin:

ssh -L1700:imwn:1700 -L1701:imwn:1701 NOMEUTENTE@cdm.ing.unimo.it

A questo punto aprire MSC MARC, nel giro di qualche secondo il programma dovrebbe aprirsi. Una volta impostata la variabile d'ambiente e aperto il ponte licenze il server licenze di ateneo dovrebbe risultare raggiungibile dal Mentat locale. Per chiudere il ponte licenze disconnettersi da cdm.ing.unimo.it chiudendo cygwin o battendo exit alla shell remota.

Opzione Winscp + putty

Scaricare installer con winscp, quindi utilizzare questa guida per aprire il ponte licenze con putty.

Per scaricare l'installer connettersi al server cdm.ing.unimo.it con credenziali di ateneo e spostarsi nella cartella

/scambio

ove si trovano gli installer. Procedere con il download e installare.

Primi passi col Marc/Mentat

L' MSC Marc Mentat è una soluzione per l'analisi di problemi non lineari dove il Mentat è il programma di pre- e post-processing, ossia quello con cui vado a costruire la mesh e dal quale estrapolo l'output al termine dell'analisi, mentre il Marc è il solutore di equazioni non lineari. I due programmi sono separati poiché in generale girano o possono girare su macchine diverse, infatti il pre- ed il post-processore girano sui nostri computer mentre il solutore può girare su un server a distanza. Il link che rimanda alla presentazione del programma è il seguente:

http://www.mscsoftware.com/product/marc

Le principali alternative a pagamento sono:

Abaqus: http://www.3ds.com/products-services/simulia/portfolio/abaqus/overview/

Ansys: http://ansys.com/

Marc, Abacus e Ansys sono codici pensati per gestire problematiche non lineari. Un problema è lineare se una caratteristica di sollecitazione può essere descritta come combinazione lineare delle forze o delle sollecitazioni che la provocano. In tutti i casi in cui ciò non succede il problema non è lineare. Un esempio di problema lineare è la classica trave incastrata con forza all'estremità libera P, esempi di problemi non lineari sono ad esempio i problemi di contatto monolatero e i problemi in cui i materiali non seguono la legge di Hook (ad esempio raggiungono lo snervamento) e ci sono grosse deformazioni.
I codici sopra citati consentono di trattare anche problemi non lineari. La maggior parte dei simulatori agli elementi finiti associati ai modellatori solidi sono invece di tipo lineare (si tratta ad esempio dei solutori associati a ProE e Solidworks tanto per citarne un paio).
Un altro programma storico degli elementi finiti è l'MSC Nastan (http://www.mscsoftware.com/it/product/msc-nastran) che era nato come codice lineare ed è stato espanso in seguito con funzionalità non lineari.

La principale alternativa non lineare opensource al Mark è invece Code_Aster, un codice agli elementi finiti sviluppato dalla EDF francese e reso disponibile da qualche anno al download libero in formato sorgente. Si tratta di un codice Fortran ed è soltanto il solutore. Il programma di pre- e post-processing è il SALOME. Per usarlo la soluzione migliore è scaricare CAE Linux (http://www.caelinux.com/CMS/), una versione di Linux autoavviante su DVD che mette a disposizione dell'utente tutta una serie di software ingegneristici compresi Code_Aster e SALOME.

Come lanciare il Programma

Per lanciare il programma da laboratorio copiare ed incollare il link per la versione 2012 sul terminale e dare invio:


/opt/msc/mentat2012/bin/mentat -ogl -glflush

NB: il programma è figlio del terminale con cui è stato lanciato di conseguenza se si chiude il terminale si per il lavoro effettuato al Mentat se non salvato.

Si aprirà così il Mentat e ci si presenterà di fronte un'interfaccia con un menù laterale, una barra dei comandi inferiore e un'ampia zona dello schermo dedicata al modello. Il menù è organizzato seguendo il flusso logico di una analisi agli elementi finiti e pertanto si compone di varie parti dedicate rispettivamente al preprocessing, ossia alla creazione del modello, cui seguono la definizione ed il lancio dell'analisi e infine si passa al post-processing ossia all'elaborazione dei risultati.


Shoot1.jpg

Il link per lanciare il programma si trova sul sito https://cdm.ing.unimo.it/.mediawiki/index.php/Pagina_principale --> Materiale --> “Note utilizzo laboratori didattici di dipartimento”.

Funzioni generali

La colorazione dei tasti assume un certo significato nel programma: un colore azzurro caratterizza infatti i pulsanti relativi a dei comandi veri e propri, mentre il colore verde identifica pulsanti relativi ai sottomenù (questi pulsanti hanno anche una freccetta che ci informa che il menù verrà espanso cliccando sul pulsante). Quando invece si trova un quadratino a fianco del tasto, cliccandoci sopra esso si comporta come un led di colore giallo(ad esempio per il comando dyn. model) che avverte se quella specifica opzione è attivata o meno. Un triangolo giallo indica la possibilità di aprire un menù a tendina.

Una volta selezionato uno o più menù, per ritornare al menù principale è sufficiente cliccare sulla voce MAIN, mentre per tornare al menù precedente si può usare il comando RETURN o cliccare con il tasto destro del mouse nell'area del menù.

Per salvare con nome si clicca nel menù FILES dalla barra dei comandi inferiore e si sceglie SAVE AS; facendo riferimento invece al comando SAVE il nostro progetto verrà salvato con il nome model1, se non già salvato con un nome diverso in precedenza. L’estensione sarà .mud se il file è stoccato in formato binario o .mfd se testuale, quest’ultimo modificabile con editor di testo. E' buona abitudine salvare spesso il lavoro sul programma in quanto esso permette un solo UNDO e non di risalire alle operazioni precedenti cliccando ripetutamente su UNDO.

Nel nome del file non devono esserci spazi così come non devono esserci spazi nel percorso del file; il mancato rispetto di questa regola è causa frequente di errore.
Perciò se voglio salvare versioni successive del file inerente all'analisi del tubo in pressione, conviene nominare i file come tubo_1.mud, tubo_2.mud, tubo_3.mud ecc... dove l'underscore è usato al posto dello spazio (che ricordo non essere lecito).
Per aprire un file occorre invece premere su OPEN mentre per ripristinare la versione dal salvataggio precedente si usa il comando RESTORE.
E' molto importante gestire con attenzione i salvataggi perchè il comando UNDO che si trova nella barra dei comandi inferiore consente di annullare solamente l'ultima modifica apportata. Quindi il consiglio che generalmente si dà è salvare frequentemente (ricordare il detto: Salva spesso,Salva adesso!). .

Per importare varie geometrie/file (generalmente provenienti da programmi di modellazione es Catià,Proe) utilizzare il comando IMPORT del menù FILES.

Se ho due finestre Mentat aperte, la principale sembrerà bloccata fino anche non verrà chiusa la finestra secondaria; per chiudere la finestra usare CANCEL oppure OK (il chiudi finestra solitamente non funziona).

Consiglio utile (Liberare zoom dinamico):

Andare in System -> preferenze Windows -> Modificare “Movement Key” da Alt (utilizzato dal Mentat) con Super (or “windows logo”) così da liberare l’ALT che serve per lo zoom dinamico. Una volta cambiata l’opzione riaprire il programma.

Impostazione del Modello di un Tubo Pressurizzato

Stato Tensionale

Iniziamo ad usare il programma modellando il problema di un tubo in pressione. Prima di descrivere la modellazione è utile richiamare alcuni concetti riguardanti la tensione e la deformazione piana.
Si parla di stato tensionale piano se la tensione fuori dal piano che caratterizza la sezione del problema è nulla. In particolare se consideriamo il piano Oxy come il piano delle tensioni, deve essere sigmaz=0 e tauxz=tauyz=0. Generalmente lo stato tensionale piano è caratteristico di corpi sottili in cui la sezione non varia bruscamente e in cui sono marginali gli effetti intaglio; ovviamente il caricamento di questi corpi deve essere piano. Sotto queste ipotesi risulta spesso lecito trascurare la tensione ortogonale al piano in quanto essa, dovendo annullarsi sulle superfici a contatto con l'aria, deve necessariamente mantenersi limitata anche all'interno del corpo. Si parla invece di stato deformativo piano o di deformazione piana quando è nulla la componente di deformazione sull'asse z ortogonale al piano. Generalmente si fa l'ipotesi di deformazione piana quando il caricamento è significativo in una zona localizzata della sezione del corpo mentre tutta la restante sezione, che immagino grande rispetto alla parte più sollecitata, tende a trattenere la deformazione perché sottocaricata. Perciò in uno stato deformativo piano ho che punti sottocaricati trattengono la deformazione di punti adiacenti molto più sollecitati. Fatta questa doverosa premessa passiamo a studiare agli elementi finiti il caso di un tubo di elevato spessore e lunghezza, sollecitato da forze solo sul contorno interno o esterno, e che si trova in condizioni di tensione piana in quanto libero alle estremità o dotato di soffietti (ha tensioni in direzione assiale nulle non essendovi forze esterne agenti in questa direzione) . La soluzione esatta per il tubo pressurizzato prevede tensioni assiali nulle per cui è un caso perfetto di tensione piana.

Mesh Generation

I menù sono ordinati cercando di seguire la creazione logica di un modello. Il primo Menù è quello di generazione della Mesh [MESH GENERATION].Questo menù è suddiviso in diverse aree (nuclei di comandi concettualmente aggregati) come ci mostra la figura successiva. Nella parte superiore del menù viene data la possibilità di aggiungere, modificare, eliminare o interrogare nodi (NODES), elementi (ELEMS), punti (PTS), curve (CRVS), superfici (SRFS), solidi (SOLIDS). Nodi ed elementi sono entità riguardanti la mesh, mentre curve, superfici e punti sono entità geometriche. Ad esempio la differenza tra un nodo ed un punto è che pur essendo entrambi definiti da un punto nello spazio, ai nodi sono anche associate incognite di spostamento e/o rotazione e quindi un nodo è un punto che ha possibilità di muoversi secondo un numero di spostamenti incogniti che dipendono dal tipo di geometria del modello.


Immagine 2.jpg



Consideriamo quindi un tubo di raggio interno Ri = 10mm e raggio esterno Re = 20mm, in acciaio e pressurizzato da una pressione interna di 10 MPa.

Il modello in questo caso è descritto dalla sola sezione del tubo, una corona circolare; la prima cosa da fare è definire l' origine del sistema di riferimento; si tratta di un'entità prettamente geometrica che individua un punto che non si sposta nello spazio. Allora per fissare l'origine clicco su PTS (points)/ADD e nel prompt dei comandi devo battere le coordinate del punto separate da invio (le coordinate sono 0,0,0). A questo punto dovrebbe comparirmi sul monitor, nella zona di visualizzazione del modello, un punto che definisce l'origine chiamato Point 1. Nel Marc Mentat ogni entità ha un nome numerico che tipicamente è progressivo e perciò se andassi a creare un secondo punto esso avrebbe nome Point 2.


Immagine prompt.jpg



Se volessi rimuovere un punto posso seguire il comando PTS-> REM e cliccare sul punto da eliminare; il punto non viene eliminato immediatamente e infatti posso continuare a selezionarne altri ed una volta finita la lista di punti da cancellare posso procedere con l'operazione dando il fine lista o con un [#] battuto al promp oppure selezionando il comando END LIST oppure ancora con un colpo di tasto destro nell’area di lavoro. Se volessi deselezionare un punto della lista, prima di aver chiuso la lista, uso il tasto centrale: viene annullata l'ultima selezione.
Per selezionare un insieme di punti o clicco su ciascuno di essi oppure, tenendo premuto il tasto sinistro del mouse, nella zona di visualizzazione del modello si crea un rettangolo all'interno del quale vengono automaticamente selezionati i punti che sono poi aggiunti alla lista. Se poi volessi fare una selezione poligonale, tenendo premuto Ctrl, do una sequenza di click a video definendo una poligonale chiusa.

Se vogliamo riprendere i punti cancellati, ma più in generale ritornare indietro all’ultima operazione eseguita, possiamo usare il comando UNDO. NB: come già detto in precedenza si ha a disposizione un unico UNDO, quindi è utile salvare molto frequentemente. Cliccare la prima volta su undo permette di correggere un errore ma cliccare una seconda volta su undo non fa altro che ripristinare l'errore appena cancellato.
Per costruire la corona circolare caratterizzante la geometria del problema procediamo come segue: fissiamo un nodo sul raggio interno, un nodo sul raggio esterno, costruiamo un segmento che divideremo in n nodi ed estrudiamolo a costruire la corona circolare. Andiamo in NODES/ADD e diamo come coordinate 10 0 0 e 20 0 0 (si lavora con quantità adimensionali e quindi devo fissare un sistema di unità di misura coerente: posso ad esempio scegliere il sistema millimetri, secondi, Newton, tonnellate) . Su video probabilmente non vediamo che sono stati creati due nodi dal momento che essi si trovano fuori dalla zona di inquadratura (lo zoom di default è centrato sull'origine con raggio circa unitario) e quindi conviene fornire al lettore qualche indicazione sulla gestione dello zoom: se dalla barra dei comandi inferiori clicco su RESET VIEW mi riporto nelle condizioni predefinite di visualizzazione mentre se invece premo su FILL lo zoom si modifica fino a includere tutte le entità del modello. I tasti di traslazione sono:

  • TX+ : trasla leggermente verso destra
  • TX- : trasla leggermente verso sinistra
  • TY+ : trasla leggermente in alto
  • TY- : trasla leggermente in basso

Analogamente i tasti RX+, RX-,RY+,RY-,RZ+,RZ- permettono di controllare la rotazione attorno agli assi di vista (che non coincidono necessariamente con gli assi di riferimento).
Con i comandi IN e OUT aumento e riduco rispettivamente lo zoom; se premo su ZOOM BOX posso effettuare a video una selezione rettangolare su cui zoomare. Si può rototraslare anche usando il mouse se è attivo il comando DYN. MODEL, che può essere attivato rapidamente anche da tastiera tenendo premuto il tasto Alt. Quando questa funzione è attiva, col tasto sinistro del mouse posso traslare, con quello destro zoomare, col centrale (la rotella) posso ruotare l'immagine. Se è attivo il DYN. MODEL non posso selezionare delle entità cliccandoci sopra perchè il tasto sinistro è ora dedicato alle traslazioni.
Avendo posizionato i due nodi che mi servono, voglio ora procedere a creare un segmento che li congiunga e che andrò a sua volta a suddividere con altri nodi per poi estruderlo fino ad ottenere la geometria desiderata. Procedo aggiungendo quindi un elemento cliccando su ELEMENTS/ADD ma devo prestare attenzione: il comando ELEMENT CLASS mi dice che l'elemento che sto per andare ad aggiungere è un quadrilatero con quattro nodi; devo allora, prima di procedere, cambiare la classe dell'elemento cliccandoci sopra fino ad avere l'opzione LINE(2). A questo punto clicco prima sul nodo interno e poi su quello esterno e viene creato un segmento (con questo orientamento del segmento avrò un errore nell'orientamento dei nodi che correggerò in seguito).


Mentat tubo segmento.jpg



Procedendo con la divisione del segmento si è deciso di fare una suddivisione con una griglia differenziata per studiare l'influenza della fittezza della meshatura sui risultati: il segmento è stato suddiviso da alcuni ragazzi in 3 sottoelementi, da altri ragazzi in 4, 6, 8, 10, 12 sottoelementi.
La gestione della mesh viene fatta attraverso il menù MESH GENERATION; clicco su SUBDIVIDE e mi si apre un menù che in alto ha le impostazioni della suddivisione: prima viene chiesto come dividere, poi a cosa applicare la divisione. Le suddivisioni standard sono (2,2,2) che significa che l'elemento è diviso in due lungo l'asse x, lungo l'asse y e lungo l'asse z. Il nostro segmento è lineare e quindi ha una sola direzione che potrei pensare di suddividere ad esempio in 4 parti: per fare ciò imposto il comando DIVISIONS in 4 1 1. Lasciando il BIAS FACTOR uguale al vettore nullo eseguo una divisione equispaziata. Per applicare la suddivisione al segmento devo cliccare su elements e selezionare col tasto sinistro del mouse il segmento da suddividere; appena do il fine lista appare la suddivisione dell'elemento in 4 parti.


Mentat tubo suddivisione segmento.jpg


Ora, per espandere il mio segmento e farlo ruotare attorno al centroide e generare una corona circolare, devo procedere come segue: dal menù MESH GENERATION clicco su EXPAND e vado a impostare il centroide (lasciando quello di default 0,0,0), gli scale factors (1,1,1), le translations (0,0,0) e i rotation angles: nel mio caso ruoto attorno a z e il singolo passo di rotazione è dato da 360 gradi diviso il numero di passi circonferenziali che voglio impostare (più è alto questo numero e più è fitta la meshatura). Anche questo paramentro di fittezza circonferenziale varia da studente a studente; suppongo ad esempio di dover effettuare 37 suddivisioni circonferenziali: l'angolo di rotazione attorno a x sarà 0, quello attorno a y sarà sempre 0 e quello attorno a z sarà 360/37 (di default è in senso antiorario). Per chiudere la corona circolare impongo 37 ripetizioni dal comando REPETITIONS. Verifico anche che sia impostato REMOVE nel sottomenù MODE, comando che fa sì che gli elementi da cui sono partito per estrudere alla fine siano rimossi (se invece avessi impostato SHIFT avrebbe spostato l'elemento a fine estrusione mentre se fosse stato selezionato SAVE avrebbe lasciato il segmento di partenza nella posizione originale anche a termine estrusione). Una volta impostati i parametri precedenti applico l'estrusione scegliendo ELEMENTS e selezionando a video tutti gli elementi del segmento originario seguiti dal fine lista.


Mentat tubo estrusione.jpg


La mesh che ho appena ottenuto ha però un paio di problemi:

  • L'orientamento degli elementi è errato.
  • La mesh non è chiusa.


Il fatto che l'orientamento sia errato lo si nota dalla freccina blu che compare sul bordo che in ogni elemento collega il nodo uno al nodo due. Vedo che in particolare ogni elemento viene percorso in senso orario anzichè in senso antiorario e ciò è contrario alla convenzione degli elementi finiti. Esiste una opzione che consente di controllare automaticamente se l'orientamento dei nodi è corretto e per accedere a questa funzione devo andare in MESH GENERATION/CHECK/UPSIDE DOWN: si tratta del controllo che verifica se gli elementi sono percorsi in senso antiorario; nel mio caso ci sono 148 elementi (cioè il risultato di 4*37) col problema di avere un orientamento errato. Viene fatta una selezione automatica (azzurrina) da parte del programma che mi consente con un solo comando di rinumerare i nodi e correggere così l'orientamento. Se premo sul comando FLIP ELEMENTS posso girare gli elementi e fargli assumere l'orientamento corretto: alla richiesta di quali elementi girare premo ALL SELECTED. Se ora andassi a rifare il controllo sugli elementi UPSIDE DOWN osserverei che non ci sono più elementi problematici.
L'altro problema molto più subdolo che può presentare la mia mesh è il fatto che non sia chiusa: in questo modo io non ho ottenuto una corona circolare a forma della lettera O ma ho ottenuto una corona a forma di C chiusa, ossia una corona in cui i lembi di inizio e fine estrusione sono solo appoggiati ma non saldati tra loro: così se caricassi la struttura potrei assistere all'apertura della stessa come appunto se il tubo non fosse una geometria chiusa. Due elementi tra loro adiacenti sono saldati se si "attaccano" agli stessi nodi mentre se ci sono due nodi sovrapposti i nodi non sono saldati e si staccheranno a struttura caricata. Come faccio a capire se ho dei nodi sovrapposti? La procedura è un po' complessa: vado nel menù PLOT dalla barra dei comandi inferiore da cui posso gestire le opzioni di visualizzazione degli oggetti del modello. Ad esempio, cliccando sul quadratino giallo a fianco di NODES, disabilito la visione dei nodi su schermo (per aggiornare la vista premere REGEN). Ma non è questo quello che voglio fare: devo andare nelle modalità di visualizzazione dei nodi (NODES SETTINGS)e chiedere che per ogni nodo sia visualizzata la sua etichetta (LABEL). A questo punto, dopo aver premuto REGEN, vicino a ogni nodo compare il proprio numero: si vede bene che i nodi che si trovano sul segmento originario da cui avevo fatto partire l'estrusione sono contati due volte (ho etichette sovrapposte poco leggibili) e perciò la struttura non è saldata ma in questa zona ha la classica forma a C chiusa con nodi sovrapposti.
Con questo controllo mi sono accorto del secondo problema della mesh e per risolverlo devo fare collassare i nodi sovrapposti in un unico nodo (in questo modo trasformo la C chiusa in una O). Il comando di collasso nodale lo trovo in MESH GENERATION/SWEEP: questo comando mi chiede attraverso la tolleranza quando deve considerare due nodi sovrapposti e saldarli ( di default due nodi sono sovrapposti se sono distanti meno di 0.0001 ossia secondo il mio sistema di misure se sono distanti meno di un decimillesimo di millimetro).


Mentat tubo collasso nodale.jpg


Scelgo di non modificare la tolleranza di default e dico al software di collassare tutti i nodi esistenti (NODES/ALL/EXYST.).

A questo punto la mesh dovrebbe essere stata correttamente generata: la geometria del problema è ben definita.


Mentat tubo mesh finale.jpg