Salta al contenuto principale

Impostare Abaqus environment per UMAT/VUMAT

femDEV
Autore
femDEV
Sviluppo di applicazioni ingegneristiche.
 Author
Autore
Gianluca Mazzucco
Prof. Associato UniPD
 Author
Autore
Riccardo Lando
Dottorando UniPD

Per condurre delle analisi con delle subroutine UMAT e VUMAT in Abaqus, è necessario installare il compilatore Intel per compilare correttamente la subroutine ed usarla nell’analisi. Il processo di installazione e configurazione è piuttosto dettagliato e spesso può non riuscire al primo colpo. In questo articolo miriamo a fornire una spiegazione su cosa installare e sulle operazioni da effettuare sul sistemo operativo. Specifichiamo che questa guida vale per Windows, per i sistemi UNIX è molto simile, però è semplificato dall’utilizzo dello script bash source_setvars.sh; se faremo un articolo riguardo lo linkeremo qui.

Installazione Visual Studio 2022
#

Cme prima cosa, scarichiamo l’IDE Visual Studio 2022 versione Community di Microsoft dal seguente link:

https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-history

Attenzione a non scaricare Visual Studio 2026, in quanto molto nuovo e, al momento della stesura di questo articolo, l’installer di Intel non riesce ancora a rilevare VS2026. Per effettuare l’installazione basta seguire il wizard, senza particolari accorgimenti.

Installazione MKL
#

Nel caso che la vostra subroutine utilizzi le librerie MKL, è necessario scaricare le oneAPI Math Kernel Library (MKL) ed installarle. Le librerie MKL sono dei “componenti” necessari a svolgere le operazioni matematiche nel nostro codice in maniera efficiente, come ad esempio l’inversione di una matrice e altre operazioni tensoriali.

https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-download.html

È fondamentale che il wizard di intel trovi la versione corrente di Visual Studio appena installata, altrimenti non potrà continuare. Anche in questo caso, è sufficiente seguire il wizard per installare correttamente il compilatore.

Installazione compilatore
#

Dobbiamo scaricare il compilatore FORTRAN di Intel per poter compilare l’UMAT. Per chi non ha mai sentito parlare di compilatori, questi sono dei programmi che convertono il nostro codice da testo a eseguibile, affinché il computer possa eseguirlo. Fino a qualche anno fa il compilatore di Intel per FORTRAN era ifort, ora le nuove versioni di Abaqus ufficialmente supportano solo la nuova versione, ifx.

https://www.intel.com/content/www/us/en/developer/tools/oneapi/fortran-compiler-download.html

Come per le MKL, anche qui il wizard deve trovare la versione di VS che avete nel vostro sistema.

Variabili ambientali Windows
#

In programmazione, una variabile è un oggetto al quale possiamo assegnare un valore. Analogamente, le variabili di ambiente sono delle variabili a livello di sistema operativo, ai quali i programmi possono accedervi. Spesso, queste sono utilizzate per indicare una serie di percorsi (path) dove cercare eseguibili e altri dati fondamentali alle applicazioni. Nel nostro caso, dobbiamo inserire i percorsi del compilatore e delle MKL affinché Abaqus riesca a trovarle.

Variabili di ambiente Windows
Variabili di ambiente Windows. Attenzione a selezionare le variabili di sistema e non quelle dell’utente, altrimenti si potrannno modificare soltanto un tipo di variabili.
Variabili di ambiente Windows
Premere il bottone riquadrato in rosso.

Nella finestra possiamo scegliere tra variabili a livello utente e di sistema. Teoricamente, potremmo settare soltanto quelle a livello di sistema, però per andare sul sicuro settiamo entrambe. Per settarle, selezioniamo PATH e premiamo Modifica.

Variabili di ambiente

Una vota dentro, aggiungiamo i seguenti percorsi premendo Nuovo.

Variabili di ambiente

Qui dobbiamo inserire il percorso che contiene gli script in format .bat che inizializzeranno le variabili di ambiente. Per una spiegazione estensiva su questi script in Windows, lasciamo nelle fonti un link dalla documentazione di Intel 1.

Assumendo che vogliamo utilizzare il nuovo metodo di link delle librerie Unified Directory Layout, dobbiamo inserire il percorso che ci esegue lo script unico oneapi-vars.bat, che automaticamente cercherà gli script di MKL e ifx:

"<install-dir>\<toolkit-version>\"

che,ad esempio, assomiglierà a:

"C:\Program Files (x86)\Intel\oneAPI\2025.1\"

È importante che sia impostato sulla una delle cartelle presenti in *\oneAPI\ *, stando attenti a non utilizzare latest. Questo perché, se aggiornate le librerie ad una nuova versione, utilizzando l’effettivo numero di versione potete avere un controllo più preciso di cosa state eseguendo.

È buona cosa riavviare il computer per essere sicuri che tutti i cambiamenti siano stati finalizzati e le variabili di ambiente caricate.

Collegamenti Abaqus
#

Dobbiamo modificare il collegamento che utilizziamo per avviare Abaqus CAE e Abaqus Command. Clicchiamo con il tasto destro sul collegamento del CAE e aggiungiamo

"C:\Program Files (x86)\Intel\oneAPI\2025.1\" vs2022 intel64

prima del comando di avvio. Se fatto correttamente, sulla finestra di terminale d’avvio di Abaqus si dovrebbe leggere un messaggio relativo a Visual Studio 2022 e all’inizializzazione delle variabili di Intel.

Fix nuovo compilatore
#

Nelle versioni più nuove di Abaqus questo fix non dovrebbe essere necessario, ma è consigliabile controllare lo stesso. Controlliamo quale compilatore usa Abaqus secondo quanto consigliato dal supporto2.

Modifichiamo intorno a linea 26 da ifort a ifx del file

C:\SIMULIA\EstProducts\2023\win_b64\SMA\site\win86_64.env

Rimuoviamo da linea 34

'/Qprec-sqrt'

e commentiamo (aggiungendo un #) linea 40

#''/Qfp-stack-check'

Per maggiori informazioni sulla differenza delle opzioni di compilatore da ifort a ifx si lascia nelle reference un articolo interessante3.

Abilitare MKL
#

Per abilitare le MKL inseriamo in abaqus_v6.env

compile_fortran += ['/Qmkl:sequential']

Avviare UMAT/VUMAT
#

Ora che è tutto pronto, avviamo Abaqus e definiamo il nostro modello. Assicuriamoci di avere tutti i parametri personalizzati per nelle Proprietà del materiale e creiamo un Job. Nella secondo scheda, selezioniamo il percorso dove teniamo la nostra UMAT / VUMAT. Ora possiamo lanciare il nostro job con la subroutine personalizzata.

Per concludere, facciamo notare che questo processo è molto sensibile a quale versioni delle librerie Intel e alla versione di Abaqus, quindi delle piccole deviazioni da questa guida potrebbero essere necessarie per il vostro setup.