<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://fiscomp.if.ufrgs.br/index.php?action=history&amp;feed=atom&amp;title=Cahn2dfouriercontinue</id>
	<title>Cahn2dfouriercontinue - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="http://fiscomp.if.ufrgs.br/index.php?action=history&amp;feed=atom&amp;title=Cahn2dfouriercontinue"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Cahn2dfouriercontinue&amp;action=history"/>
	<updated>2026-04-16T05:55:30Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Cahn2dfouriercontinue&amp;diff=8220&amp;oldid=prev</id>
		<title>Leomigotto: Criou página com '&lt;source lang = &quot;python&quot;&gt; import numpy as np from scipy.fft import rfft2, irfft2, rfftfreq, fftfreq import os import time #region função Fourier def cahnfourier2d(aa, kk2, kk...'</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Cahn2dfouriercontinue&amp;diff=8220&amp;oldid=prev"/>
		<updated>2022-09-29T02:29:45Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt; import numpy as np from scipy.fft import rfft2, irfft2, rfftfreq, fftfreq import os import time #region função Fourier def cahnfourier2d(aa, kk2, kk...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
from scipy.fft import rfft2, irfft2, rfftfreq, fftfreq&lt;br /&gt;
import os&lt;br /&gt;
import time&lt;br /&gt;
#region função Fourier&lt;br /&gt;
def cahnfourier2d(aa, kk2, kk4):#calculador da transformada&lt;br /&gt;
    cct = rfft2(aa)&lt;br /&gt;
    cct3 = rfft2(aa**3)&lt;br /&gt;
    cct = cct + difd*dt*(-kk2*(cct3 - cct) - kk4*cct)&lt;br /&gt;
    ccn = irfft2(cct)&lt;br /&gt;
    return ccn&lt;br /&gt;
#endregion&lt;br /&gt;
&lt;br /&gt;
#DIGITE O CÓDIGO AQUI&lt;br /&gt;
codigo = (&lt;br /&gt;
5002&lt;br /&gt;
)&lt;br /&gt;
#DIGITE O NOVO TEMPO MAXIMO AQUI&lt;br /&gt;
tmax = (&lt;br /&gt;
6&lt;br /&gt;
)&lt;br /&gt;
#DAQUI PRA BAIXO MELHOR NÃO MEXER&lt;br /&gt;
&lt;br /&gt;
#region leitura dos arquivos&lt;br /&gt;
valores = np.load(f&amp;quot;.\\{codigo}\\val{codigo}.npy&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
normalizar, mediadesejada, seed,        gamma,      difd,       intervalo,       xmax,       t,          dt,         dx = (&lt;br /&gt;
valores[0], valores[1],    valores[2],  valores[3], valores[4], int(valores[5]), valores[6], valores[7], valores[8], valores[9])&lt;br /&gt;
&lt;br /&gt;
ccoriginal = np.load(f&amp;quot;.\\{codigo}\\{codigo}.npy&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Arquivo encontrado e carregado!&amp;quot;)&lt;br /&gt;
#endregion&lt;br /&gt;
&lt;br /&gt;
#region gerar frequências&lt;br /&gt;
&lt;br /&gt;
l = int((xmax/dx))&lt;br /&gt;
&lt;br /&gt;
nx21 = int((l/2) + 1)&lt;br /&gt;
&lt;br /&gt;
k1  = rfftfreq(l, dx/(2*np.pi))&lt;br /&gt;
&lt;br /&gt;
k2 = fftfreq(l, dx/(2*np.pi))&lt;br /&gt;
&lt;br /&gt;
r1, r2 = np.meshgrid(k1, k2)&lt;br /&gt;
&lt;br /&gt;
p = r1**2 + r2**2&lt;br /&gt;
&lt;br /&gt;
q = (p**2)*gamma&lt;br /&gt;
#endregion&lt;br /&gt;
&lt;br /&gt;
#region cálculo de quantos arrays faltam&lt;br /&gt;
u = 1&lt;br /&gt;
&lt;br /&gt;
tini = t&lt;br /&gt;
&lt;br /&gt;
while t &amp;lt; tmax:&lt;br /&gt;
    for i in range(intervalo):&lt;br /&gt;
        t = round(t + dt, int(-np.log10(dt) + 2))&lt;br /&gt;
    u+=1&lt;br /&gt;
#endregion&lt;br /&gt;
&lt;br /&gt;
#region previsão de tempo&lt;br /&gt;
&lt;br /&gt;
cc = np.zeros((u, l, l))&lt;br /&gt;
&lt;br /&gt;
cc[0] = ccoriginal[-1]&lt;br /&gt;
&lt;br /&gt;
temp = np.copy(cc[0])&lt;br /&gt;
&lt;br /&gt;
tempoini = time.time()&lt;br /&gt;
for i in range(intervalo):&lt;br /&gt;
    temp = cahnfourier2d(temp, p, q)&lt;br /&gt;
tempofinal = time.time()&lt;br /&gt;
tempoestimado = tempofinal + (tempofinal - tempoini)*(u-1)&lt;br /&gt;
&lt;br /&gt;
print(f&amp;quot;Faltam {u-1} arrays pro tempo final. Tempo estimado: +{time.ctime(tempoestimado)}&amp;quot;)&lt;br /&gt;
#endregion&lt;br /&gt;
&lt;br /&gt;
#region parte importante&lt;br /&gt;
print(&amp;quot;Começando...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
v = 1&lt;br /&gt;
&lt;br /&gt;
t = tini&lt;br /&gt;
&lt;br /&gt;
while t &amp;lt; tmax:&lt;br /&gt;
    for i in range(intervalo):&lt;br /&gt;
        temp = cahnfourier2d(temp, p, q)&lt;br /&gt;
        t = round(t + dt, int(-np.log10(dt) + 2))&lt;br /&gt;
    cc[v] = temp&lt;br /&gt;
    print(f&amp;quot;Array numero {v} de {u-1} feito!&amp;quot;)&lt;br /&gt;
    v+=1&lt;br /&gt;
&lt;br /&gt;
#endregion&lt;br /&gt;
&lt;br /&gt;
if v != u:&lt;br /&gt;
    print(&amp;quot;Algo deu errado! Não salvou.&amp;quot;)&lt;br /&gt;
    exit()&lt;br /&gt;
&lt;br /&gt;
#region salvar arquivo e infos&lt;br /&gt;
print(&amp;quot;Acabou! Hora de appendar um ao outro!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
cc = np.append(ccoriginal, cc[1:], axis = 0)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Appendado com sucesso!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
os.makedirs(f&amp;quot;.\\{codigo}&amp;quot;, exist_ok = True)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Pasta criada!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
np.save(f&amp;quot;.\\{codigo}\\{codigo}.npy&amp;quot;, cc)&lt;br /&gt;
&lt;br /&gt;
informacoescopiaveis = f&amp;quot;&amp;quot;&amp;quot;#valores do codigo {codigo}, normalização {normalizar} em média {mediadesejada}. Este arquivo é para caso de perder o arquivo de valores&lt;br /&gt;
#ou ser necessário consultar os valores.&lt;br /&gt;
&lt;br /&gt;
normalizar = {normalizar}&lt;br /&gt;
&lt;br /&gt;
mediadesejada = {mediadesejada}&lt;br /&gt;
&lt;br /&gt;
codigo = {codigo}&lt;br /&gt;
&lt;br /&gt;
seed = {seed}&lt;br /&gt;
&lt;br /&gt;
gamma = {gamma}&lt;br /&gt;
&lt;br /&gt;
difd = {difd}&lt;br /&gt;
&lt;br /&gt;
intervalo = {intervalo}&lt;br /&gt;
&lt;br /&gt;
xmax = {xmax}&lt;br /&gt;
&lt;br /&gt;
t = {t}&lt;br /&gt;
&lt;br /&gt;
dt = {dt}&lt;br /&gt;
&lt;br /&gt;
dx = {dx}&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
arquivo = open(f&amp;quot;.\\{codigo}\\{codigo}.txt&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
arquivo.write(f&amp;quot;{informacoescopiaveis}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
arquivo.close()&lt;br /&gt;
&lt;br /&gt;
valores[0], valores[1],    valores[2], valores[3], valores[4], valores[5], valores[6], valores[7], valores[8], valores[9] = (&lt;br /&gt;
normalizar, mediadesejada, seed,       gamma,      difd,       intervalo,  xmax,       t,          dt,         dx)&lt;br /&gt;
&lt;br /&gt;
np.save(f&amp;quot;.\\{codigo}\\val{codigo}.npy&amp;quot;, valores)&lt;br /&gt;
&lt;br /&gt;
print(f&amp;quot;Array impresso na pasta! Código: {codigo}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
#endregion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Leomigotto</name></author>
	</entry>
</feed>