Método pseudo-espectral de Fourier e dissipação numérica


9

Realizando uma simulação numérica direta de turbulência isotrópica com o método pseudo-espectral de Fourier (Orzag & Patterson, PRL, 1972) usando FFT. Para obter um plano de fundo do método, amplamente utilizado na comunidade de turbulências, você pode ver este curso: http://www.math.ualberta.ca/~bowman/m655/lab3d.pdf

Usando as chamadas regras para negociação, que consiste em fazer que é o tempo, é o número da onda, é o número máximo de ondas e é a amplitude espectral da velocidade.2/3

você^(k,t)=0 0              Euf   k>23kMUMAX
tkkMUMAXvocê^

A negociação atua como uma dissipação numérica? Em outras palavras, há um vazamento de energia devido ao negócio?


Não está claro o que sua pergunta está fazendo. Você poderia esclarecer?
Geoff Oxberry

e agora ?
ucsky

Respostas:


6

A negociação da convolução não atua como dissipação numérica. De fato, a energia é conservada apenas se você expulsar os termos alternativos.

A idéia por trás das convoluções baseadas em FFT é eliminar os termos extras que são adicionados pela FFT. Uma convolução é apenas uma soma e você pode calculá-la apenas calculando a soma. No entanto, isso é realmente lento, por isso é melhor transformar as entradas de Fourier, multiplicar o resultado e inverter a transformação de Fourier, que, pelo teorema da convolução, é a mesma coisa que uma convolução.

Mas o teorema da convolução funciona apenas quando as entradas são de tamanho infinito; para entradas de comprimento finito, termos extras (aliases) são exibidos e não são físicos. O ponto de negociar é recuperar a equação original que você estava tentando calcular, enquanto ainda permite que você use FFTs para acelerar o cálculo.


Malcolm não mencionou a biblioteca FFTW ++ que ele co-autoria, mas ajuda a executar convoluções com várias vantagens rapidamente, manipulando o preenchimento implicitamente (entre outras coisas). Veja fftwpp.sourceforge.net .
Matthew Emmett

Oh sim, obrigado Matt! As rotinas de convolução no FFTW ++ reduzem realmente o custo da computação de convoluções com várias alternativas. Há uma referência na página do sourceforge e mais na minha página da web. Trabalhei neles com John Bowman, cujo laboratório de turbulência 3D está vinculado ao OP.
Malcolm

4

Entender o que a negociação faz requer entender por que você está recebendo FFTs em primeiro lugar. Para mim, o método da abordagem de resíduos ponderados fornece a estrutura mais simples:

  1. Você está expandindo uma solução como uma soma dos modos de Fourier e inserindo-a nas equações de Navier-Stokes. Suas funções de teste também são baseadas em Fourier.
  2. Quando você multiplica as funções de teste e teste e pega o produto interno (isto é, integra-se a uma conjugação apropriada), verá que possui uma integral que não pode ser simplesmente avaliada porque não é linear.
  3. Você pode aproximar essa integral usando um esquema de quadratura uniforme, onde você simplesmente soma o valor em pontos de colocação uniformes.
  4. Observe que sua quadratura é exata para uma não linearidade quadrática se você usar 1,5 vezes mais pontos de quadratura que os modos de Fourier. Este é o fator de três metades.
  5. Finalmente, observe que a quadratura pode ser computada eficientemente como uma FFT.

Toda a mágica da FFT pode ser vista como um esquema de quadratura aproximado e eficiente, que pode ser exato para as não linearidades quadráticas. Outras variantes de negociação fazem outros truques para tornar a quadratura exata para a mesma classe de não linearidades.

Portanto, para responder sua pergunta, a negociação não adiciona dissipação. Isso pode ser visto porque cada etapa do procedimento foi exata.


1

A @ Malcolm deu uma explicação especializada sobre a negociação das somas de convolução baseadas na FFT. Minha intuição me diz, no entanto, que essa ainda não é a resposta completa necessária para a aberração, por isso darei mais algumas frases que refletem minha própria luta pela compreensão dos métodos numéricos.

A negociação não atua como uma dissipação numérica, mas faz o mesmo que com a dissipação numérica - evita que a sua simulação exploda.

Como sua simulação explode?

Há uma transferência não-física de energia dos números de onda altos e baixos, o que causa, primeiro a instabilidade (geralmente seguida por um sintoma - ondas de 2h, distância do nó da grade h, as menores ondas que podem ser representadas em uma grade).

A razão por trás disso é aliasing de altos números de onda para aqueles números de onda baixos que podem ser representados pela grade. Isso causa "bloqueio espectral" - o aumento não físico das amplitudes (energia de leitura) dos altos números de onda, que piora à medida que você se aproxima do limite superior dos números de onda representados.

Primeira solução (Philips, 1959): Filtre ou faça igual a zero a metade superior do espectro de número de onda representado.

Segundo remédio (Orszag, 1971): O remédio conhecido como regra dos dois terços de Orszag. Steven disse que "filtrar metade dos números de onda é um desperdício, devemos manter 2 / 3N e filtrar apenas o 1 / 3N superior".

A conclusão.

Nossas simulações às vezes tendem a explodir. Se você vive em um universo de volumes finitos de segunda ordem (como o autor dessas linhas sabia) e não sabe nada sobre Métodos Espectrais, eles dizem "Oh, sua simulação está explodindo? Tente usar o vento de primeira ordem em vez do esquema central ou misture seu esquema central com 10% de upwind na abordagem de correção defferida Isso adicionará dissipação, mas impedirá que sua simulação exploda! Oh, você está fazendo LES? Então você não deve usar upwind, a menos que esteja executando ILES, use apenas esquema central e Smagorinsky modelará a dissipação física que ocorre nas escalas mais baixas ". Se você mora no universo dos Métodos Espectrais, aprende como ocorre a transferência não-física de energia e encontra o remédio para negociar pela Regra dos Dois Terços ou pelo "preenchimento".

Minha inspiração para este post é um livro maravilhoso de J. Boyd "Chebyshev e Fourier Spectral Methods", seção 11.

Meu conselho é:

Aja fisicamente ou espectralmente, mas pense espectralmente! (Parafraseando o conhecido "Pense globalmente, aja localmente").


1

Não há vazamento de energia associado à "negociação" propriamente dito, mas há vazamento de energia associado ao truncamento que é sempre executado com ou sem negociação. Deixe-me explicar:

se você tem duas funções f e g , ambos com conteúdo espectral-se para o modo k , o produto fg terá conteúdo espectral-se para o modo 2k . No entanto, você não deseja que o conteúdo espectral de sua representação dobre a cada etapa do tempo. Portanto, você deseja truncar o produto fg para os primeiros modos k . Ao fazer isso, você perde a energia contida nos modos superiores a k .

A negociação (ou suavização de serrilhado) garante que os modos até k estejam corretos na representação de fg , mas não os modos maiores que k , pois, de qualquer maneira, eles serão descartados.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.