Riempire una scena con i cubi

3

Sto provando a progettare una soluzione per simulare i fluidi gassosi in aree ristrette, sto usando le equazioni di Naiver-Stoke per la fluidodinamica ma poiché copre solo fluidi incomprimibili come il liquido, ho bisogno di trovare un modo per simulare la compressione

Recentemente, ho trovato la soluzione che è, creando un campo che memorizza i dati di pressione per ogni partizione volumetrica e ho pensato che sarebbe una buona idea costruire questo campo come una composizione di cubi dove ogni cubo ha un valore di pressione omogeneo all'interno si.

Ho provato a gonfiare un cubo da un punto e creare altri cubi dalle sue superfici in modo ricorsivo facendo attenzione alla collisione con le superfici all'interno di quella scena, ma questo algoritmo fallisce perché ci sono molti casi dettagliati che comportano buchi complessi e tacche sull'oggetto. C'è un modo migliore per costruire questo campo?

    
posta Hgeg 12.12.2011 - 19:35
fonte

3 risposte

1

Prima di tutto, le equazioni di Navier-Stokes non assumono incomprimibilità in generale. Puoi semplificare le equazioni se ritieni che sia incomprimibile, ma non è necessario.

In secondo luogo, devo chiederti: hai una buona ragione per davvero per non utilizzare un software di fluidodinamica computazionale disponibile in commercio? L'analisi degli elementi finiti in generale non è per i deboli di cuore.

Per rispondere alla tua domanda attuale: la divisione del volume del fluido in cubetti dovrebbe essere semplice. Personalmente, vorrei solo dividere l'intero volume in cubi, quindi trovare quelli che sono nel liquido. Puoi velocizzare le cose con un adeguato riempimento ricorsivo (come suggerito da Tydus), ma puoi anche controllare ogni singolo cubo, se non ti dispiace scambiare un po 'di calore della CPU per un po' di digitazione.

Un altro a parte, affrontando la tua soluzione proposta: supporre che l'omogeneità all'interno del cubo (elemento) sia una scelta strana. Sarebbe molto più tipico usare l'interpolazione del primo ordine. Se speri di utilizzare un'approssimazione a mano sinistra per cercare di risolvere l'equazione differenziale per ogni elemento in modo indipendente, fai attenzione: l'instabilità numerica incombe e i tuoi risultati potrebbero essere completamente sbagliati. (In generale, dovresti pensare che "questi risultati sono probabilmente sbagliati" ogni volta che usi metodi numerici, ma questo è probabilmente particolarmente probabile).

In genere, per questo tipo di problema, è necessario assemblare l'intero sistema di equazioni e risolvere contemporaneamente. (Come ho detto, non per i deboli di cuore).

    
risposta data 13.12.2011 - 02:56
fonte
0

Un "riempimento" ricorsivo dovrebbe funzionare per qualsiasi forma, non importa quanto sia complessa. A meno che un singolo cubo non sia grande per entrare nel buco.

Quali sono i casi in cui fallisce?

    
risposta data 13.12.2011 - 02:01
fonte
0

Ho visto un'implementazione di fluidi utilizzando gli automi cellulari, potresti rappresentarli con la dimensione minima che è significativa per te. Cubi, sfere, qualunque cosa. La forma del contenitore non dovrebbe avere importanza con questo metodo, basta aggiungere le regole che generano nuove celle per "riempire" forme complesse.

    
risposta data 05.03.2012 - 00:38
fonte

Leggi altre domande sui tag