Post by <<--MM-->>Post by AttilaNon uso direttamente CAE-LINUX perche' uso debian, comunque ho
installati praticamente tutti i programmi che ha CAE-LINUX, gmsh,
netgen, calculix, salome ecc ecc.
Per la geometria uso calculix direttamente (scomodo ma per me va bene)
oppure SALOME, come meshatore uso calculix oppure NETGEN (ottimo per
le mesh tetraedriche), per la parte di calcolo uso solo calculix,
code_aster non l'ho ancora provato ma mi sembra molto meno potente di
calculix.
L'unico problema ripeto sono le condizioni al contorno e i carichi,
pero' come velocita' di esecuzione calculix e' imbattibile, non ho
riscontrato problemi sul numero massimo di nodi.
Sto studiando l'uso di netgen e gmsh per la creazione di mesh, e ottengo
buoni risultati.
Salome da grossi problemi di stabilità che non penso di riuscire a
risolvere a breve, quindi l'uso di calculix è imposto :)
come faccio ad assegnare dei carichi, pressioni e vincoli al modello
meshiato?
Questo come dicevo e' il punto debole di calculix, dunque se crei la
geometria con il preprocessor di calculix puoi creare direttamente un
insieme che contenga alcune geometrie significative su cui applicare i
carichi o i vincoli ed esportare un file .msh che contiene solo i nodi
relativi a quella superfice o linea o volume, in questo modo i
problemi sono limitati pero' creare geometrie complesse con calculix
e' abbastanza lungo e pesante.
Se non hai usato calculix per la creazione della geometria la
questione diventa piu' complicata dovendo aprire la mesh ed
individuare manualmente i nodi o gli elementi ai quali applicare le
condizioni esterne.
La procedura per eseguire la simulazione in calculix e' la seguente:
- creazione della mesh, puoi usare direttamente calculix o netgen, a
questo punto punto hai un file all.msh che contiene tutti i nodi
(numerazione e coordinate) e tutti gli elementi (numerazione e nodi),
netgen puo' esportare direttamente in .msh quindi no problem se usi
netgen
- creazione degli insiemi che contengono i nodi su cui applicare i
vincoli e i carichi, questi sono sempre file .msh (ad esempio
vincolo1.msh, vincolo2.msh ecc ecc)
- scrittura del file di input (.inp), sotto ho riportato un esempio
per una simulazione sotto carichi statici, nel file di input vai ad
includere il file all.msh e tutti i file .msh che contengono i nodi su
cui applicare carichi e vincoli, poi specifichi anche il materiale e i
risultati che vuoi che calculix ti calcoli
- lancio del solutore, se ad esempio il tuo file di input e' test.inp
lanci il solutore con "ccx -i test", a questo punto ti ritrovi un file
test.frd che contiene i risultati della simulazione
- lancio del postprocessor con "cgx -v test.frd" e puoi vedere i
risultati sul modello.
Per eseguire la simulazione devi scrivere un file di input dove sono
incluse la mesh, le condizioni al contorno, i carichi e risultati che
vuoi che ti calcoli, un tipico file di input per il solutore e' il
seguente:
*include, input=all.msh # Qui includi la mesh cioe' tutti i nodi
e gli elementi della geometria (netgen puo' esportare direttamente in
msh)
*BOUNDARY # Qui definisci le condizioni di vincolo,
specificando per ogni nodo in oggetto quale gdl bloccare
1,2,2 # Blocco il gdl 2 del nodo 1
1,1,1 # Blocco il gdl 1 del nodo 1
ecc... ecc....
*MATERIAL, NAME=Acciaio # QUI specifico le caratteristiche del
materiale
*ELASTIC
210000, 0.3
*SOLID SECTION, ELSET=Eall, MATERIAL = Acciaio # Qui assegno il
materiale creato (Acciaio) a tutti gli elementi (insieme Eall), puoi
creare set di elementi e specificare materiali diversi
*STEP # Qui inizializzi lo step di simulazione (puoi averne
piu' di uno)
*STATIC # Specifichi che lo step e' un calcolo statico
*CLOAD # Ora specifichi i carichi concentrati su ogni nodo
10,2,100 # Applica un carico di 100 in direzione y sul nodo 10
20,1,120 # Applica un carico concentrato di 120 in direzione x sul
nodo 20
ecc... ecc....
*DLOAD # Qui specifichi i carichi distribuiti su ogni elemento
caricato
12,P4,100 # Applica una pressione di 100 sulla faccia P4
dell'elemento 12
ecc ecc....
*NODE FILE, NSET=Nall # Qui specifichi di scrivere a file i
risultati per tutti i nodi (l'insieme Nall contiene tutti i nodi)
U,S # Qui dici quali risultati vuoi
includere nel file di output, in questo caso spostamenti (U) e sforzi
(S)
*END STEP # Fine dello step di carico
Ovviamente e' abbastanza pesante andare a scrivere per tutti i nodi
necessari le condizioni di vincolo o le condizioni di carico per cui
puoi eventualmente creare degli insiemi che contengono i nodi e
applicare una certa condizione di carico o di vincolo a quell'insieme,
ad esempio il file di input precedente nella sezione *BOUNDARY puoi
scriverlo come:
*BOUNDARY
*include, input=NFisso.msh # Qui gli dici di includere il file
NFisso.msh che contiene un sottoinsieme dei nodi di all.msh
NFisso,1,1
NFisso,2,2
NFisso,3,3 # In questo modo tutti i nodi contenuti nell'insieme
NFisso sono vincolati lungo x,y,z, puoi creare altri insiemi di nodi
in funzione delle condizioni di vincolo
La cosa puo' sembrare parecchio macchinosa, ed in effetti lo e' :D ,
non aspettatevi di fare subito delle simulazioni complesse con
calculix, se decidete di usare questo strumento tenete conto che e' un
investimento di tempo ma secondo me ne vale la pena viste le
potenzialita' del programma che e' in grado di fare simulazioni di
diverso tipo: statiche, dinamiche, termiche, termomeccaniche, analisi
di reti di fluidi ecc ecc..
Il problema grosso e', ribadisco, la definizione delle condizioni al
contorno che per modelli grossi puo' essere snervante, tenete comunque
in conto che con l'esperienza svilupperete vari trucchetti per ovviare
a questa difficolta' oggettiva.
La cosa che mi sta intrigando e' il file MED citato da Bruno che
dovrebbe contenere anche le informazioni relative alle condizioni di
carico, a questo punto vorrei investigare se e' possibile tradurre il
file MED in un un insieme di file .msh che contengano la mesh e tutte
i nodi per l'applicazione dei carichi e dei vincoli.