Esempio di solidi booleani



Questo esempio illustra le operazioni sui solidi booleani di GEMC. Costruisce tre solidi posizionati a partire da volumi componenti non posizionati: una piastra con un foro ottenuto per sottrazione, una croce ottenuta da un’unione e una lente ottenuta dall’intersezione di due sfere.


Avvio rapido

Copia l’esempio nella tua directory corrente. Per creare la geometria ed eseguire 10 eventi:

cp -r $GEMC_HOME/examples/basic/boolean_solids .
cd boolean_solids
./boolean_solids.py
gemc boolean_solids.yaml -n=10


Geometria

La geometria è definita in boolean_solids.py.

Il mondo (una scatola chiamata root) contiene tre volumi booleani visibili:

Volume Operazione Componenti
plate_with_hole sottrazione plate_box - plate_hole
cross unione bar + bar_rotated
lens intersezione sphere_one * sphere_two

I volumi componenti usano il materiale speciale Component. Definiscono gli operandi dell’espressione booleana ma non vengono posizionati come volumi visibili del rivelatore. I volumi booleani risultanti sono posizionati come qualsiasi altro GVolume, con materiale, colore, posizione e rotazione propri.

Visualizzatore interattivo:


Espressioni booleane

Un solido booleano viene selezionato assegnando solidsOpr:

plate.solidsOpr = 'plate_box - plate_hole'
cross.solidsOpr = 'bar + bar_rotated'
lens.solidsOpr = 'sphere_one * sphere_two'

Il primo operando viene valutato con la propria origine come riferimento. Il secondo operando usa la propria posizione e rotazione relative al primo operando. Ad esempio, plate_hole viene spostato di 30 mm prima di essere sottratto da plate_box, quindi il foro è decentrato.


Generatore

La cinematica delle particelle è definita nel file YAML:

gparticle:
  - name: e-
    p: 500*MeV
    theta: 90*deg
    vx: -40*cm
    delta_vx: 12*cm
    randomVertexModel: uniform

Consulta anche la Documentazione del generatore interno per maggiori informazioni.


Utilizzo

Costruzione del rivelatore

Usa lo script Python boolean_solids.py per costruire il rivelatore. Per impostazione predefinita, la configurazione viene salvata in un file SQLite chiamato gemc.db.

./boolean_solids.py

Consulta anche la Costruzione della geometria per maggiori informazioni.


Esecuzione di GEMC

Il file boolean_solids.yaml può essere usato per eseguire la configurazione. Aggiungi -gui per eseguire in modo interattivo:

gemc boolean_solids.yaml -gui


Esecuzione degli eventi

Boolean solids simulation: electrons crossing the subtraction, union, and intersection volumes.