<?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=Lstart</id>
	<title>Lstart - 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=Lstart"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Lstart&amp;action=history"/>
	<updated>2026-04-18T21:02:40Z</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=Lstart&amp;diff=8895&amp;oldid=prev</id>
		<title>Leomigotto: Criou página com '&lt;source lang = python&gt; import numpy as np import os  #baoab 1 par 2d unidades reduzidas com maior cuidado, salva em arquivos #region funcoes def potencial(pos):     forca = np...'</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Lstart&amp;diff=8895&amp;oldid=prev"/>
		<updated>2022-10-18T20:54:06Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;&amp;lt;source lang = python&amp;gt; import numpy as np import os  #baoab 1 par 2d unidades reduzidas com maior cuidado, salva em arquivos #region funcoes def potencial(pos):     forca = np...&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 = python&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
#baoab 1 par 2d unidades reduzidas com maior cuidado, salva em arquivos&lt;br /&gt;
#region funcoes&lt;br /&gt;
def potencial(pos):&lt;br /&gt;
    forca = np.zeros(2)&lt;br /&gt;
    forca[0] = -4*alfa*(pos[0]**3) + 2*beta*pos[0]&lt;br /&gt;
    forca[1] = -4*alfa*(pos[1]**3) + 2*beta*pos[1]&lt;br /&gt;
    return forca&lt;br /&gt;
#endregion&lt;br /&gt;
&lt;br /&gt;
#region variaveis alteraveis&lt;br /&gt;
intervalo = int(&lt;br /&gt;
#DE QUANTOS EM QUANTOS O PROGRAMA SALVA OS DADOS (EVITA ARQUIVOS EXCESSIVAMENTE PESADOS PRA TEMPOS LONGOS)&lt;br /&gt;
#OU DTS PEQUENOS, 1 PRA USAR TODOS&lt;br /&gt;
1&lt;br /&gt;
)&lt;br /&gt;
#ALFA E BETA SÃO DO CAMPO POTENCIAL&lt;br /&gt;
alfa = (&lt;br /&gt;
0&lt;br /&gt;
)&lt;br /&gt;
beta = (&lt;br /&gt;
0&lt;br /&gt;
)&lt;br /&gt;
gaminha = (&lt;br /&gt;
#RELATIVO AO RUIDO ESTOCASTICO&lt;br /&gt;
0.1&lt;br /&gt;
)&lt;br /&gt;
temp = (&lt;br /&gt;
#TEMPERATURA, 1 É EQ A 118K +-&lt;br /&gt;
3&lt;br /&gt;
)&lt;br /&gt;
dt = (&lt;br /&gt;
10**-2&lt;br /&gt;
)&lt;br /&gt;
tmax = (&lt;br /&gt;
500000&lt;br /&gt;
)&lt;br /&gt;
npar = (&lt;br /&gt;
#NUMERO DE PARTICULAS&lt;br /&gt;
1&lt;br /&gt;
)&lt;br /&gt;
seedinicial = (&lt;br /&gt;
468884114&lt;br /&gt;
)&lt;br /&gt;
'''&lt;br /&gt;
SEEDS DA WIKI&lt;br /&gt;
2135489      DT -2 GAMINHA +1&lt;br /&gt;
87846354     DT -2 GAMINHA 0	&lt;br /&gt;
459618741    DT -2 GAMINHA -1&lt;br /&gt;
#TEMP = 2&lt;br /&gt;
54684135     DT -2 GAMINHA +1&lt;br /&gt;
84653987465  DT -2 GAMINHA 0&lt;br /&gt;
9776678878   DT -2 GAMINHA -1&lt;br /&gt;
#TEMP = 3&lt;br /&gt;
7984651 	 DT -2 GAMINHA +1&lt;br /&gt;
4646464      DT -2 GAMINHA 0&lt;br /&gt;
468884114    DT -2 GAMINHA -1&lt;br /&gt;
'''&lt;br /&gt;
#endregion&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Indo calcular constantes...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
c1 = np.exp(-gaminha*dt)&lt;br /&gt;
&lt;br /&gt;
c2  = (np.sqrt(1 - np.exp(-2*gaminha*dt)))*np.sqrt(temp)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Constantes calculadas, hora de ver se tem npassos certos.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
npassos = int(np.round(tmax/dt))&lt;br /&gt;
&lt;br /&gt;
if int(npassos%intervalo) != 0:&lt;br /&gt;
    print(f&amp;quot;Combinação npassos com intervalo não funcional, cuidado pra que o intervalo seja um inteiro que divide npassos sem ter resto&amp;quot;)&lt;br /&gt;
    exit(0)&lt;br /&gt;
&lt;br /&gt;
print(f&amp;quot;Passos ok, passos que precisam ser calculados: {npassos}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
nsalvos = int((npassos/intervalo) + 1)&lt;br /&gt;
&lt;br /&gt;
print(f&amp;quot;{nsalvos} serão salvos (contando o primeiro).&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
aleatorios = np.random.normal(0, 1, size = (npassos, 2)) * c2&lt;br /&gt;
&lt;br /&gt;
xy = np.zeros((nsalvos, 2))&lt;br /&gt;
&lt;br /&gt;
checar = 0&lt;br /&gt;
&lt;br /&gt;
pxy = np.zeros((nsalvos, 2))&lt;br /&gt;
&lt;br /&gt;
tempos = np.arange(0, tmax + dt, dt*intervalo)&lt;br /&gt;
&lt;br /&gt;
salvador = int(0)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Tudo pronto, hora de começar!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
xyatual = xy[0]&lt;br /&gt;
&lt;br /&gt;
pxyatual = pxy[0]&lt;br /&gt;
&lt;br /&gt;
for i in range(0, npassos):&lt;br /&gt;
    #BAOAB 2D SEM PBC COM CAMPO&lt;br /&gt;
    #B&lt;br /&gt;
    pxytemp = pxyatual + dt * (potencial(xyatual))/2&lt;br /&gt;
    #A&lt;br /&gt;
    xytemp = xyatual + dt*pxytemp/2&lt;br /&gt;
    #O&lt;br /&gt;
    pxylinha = c1*pxytemp + aleatorios[i]&lt;br /&gt;
    #A&lt;br /&gt;
    xyatual = xytemp + dt*pxylinha/2&lt;br /&gt;
    #B&lt;br /&gt;
    pxyatual = pxylinha + dt * (potencial(xyatual))/2&lt;br /&gt;
    #FIM DO BAOAB, HORA DE SALVAR&lt;br /&gt;
    salvador+=1&lt;br /&gt;
    if salvador%intervalo == 0:&lt;br /&gt;
        xy[int(salvador/intervalo)] = xyatual&lt;br /&gt;
        pxy[int(salvador/intervalo)] = pxyatual&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Acabou, hora de salvar!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
estadoaleatorio = np.random.get_state()&lt;br /&gt;
&lt;br /&gt;
np.random.seed()&lt;br /&gt;
&lt;br /&gt;
codigo = int(np.random.rand(1)*10**6)&lt;br /&gt;
&lt;br /&gt;
print(f&amp;quot;O código será {codigo}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while os.path.isdir(f&amp;quot;{codigo}&amp;quot;) == True:&lt;br /&gt;
    print(&amp;quot;Deu igual! A chance disso é baixíssima, peço perdão por ter desperdiçado sua sorte!&amp;quot;)&lt;br /&gt;
    print(&amp;quot;O programa deve corrigir isso, se essa mensagem estiver sendo repitida, há um erro grave!&amp;quot;)&lt;br /&gt;
    codigo+=1&lt;br /&gt;
&lt;br /&gt;
os.makedirs(f&amp;quot;.\\#{codigo}&amp;quot;, exist_ok = True)&lt;br /&gt;
&lt;br /&gt;
print(f&amp;quot;Pasta única criada! Nome {codigo}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
informacoesleitura = (f&amp;quot;&amp;quot;&amp;quot;Infos do código {codigo}&lt;br /&gt;
intervalo = int(&lt;br /&gt;
#DE QUANTOS EM QUANTOS O PROGRAMA SALVA OS DADOS (EVITA ARQUIVOS EXCESSIVAMENTE PESADOS PRA TEMPOS LONGOS)&lt;br /&gt;
#OU DTS PEQUENOS, 1 PRA USAR TODOS&lt;br /&gt;
{intervalo}&lt;br /&gt;
)&lt;br /&gt;
#ALFA E BETA SÃO DO CAMPO POTENCIAL&lt;br /&gt;
alfa = (&lt;br /&gt;
{alfa}&lt;br /&gt;
)&lt;br /&gt;
beta = (&lt;br /&gt;
{beta}&lt;br /&gt;
)&lt;br /&gt;
gaminha = (&lt;br /&gt;
#RELATIVO AO RUIDO ESTOCASTICO&lt;br /&gt;
{gaminha}&lt;br /&gt;
)&lt;br /&gt;
temp = (&lt;br /&gt;
{temp}&lt;br /&gt;
)&lt;br /&gt;
dt = (&lt;br /&gt;
{dt}&lt;br /&gt;
)&lt;br /&gt;
t = (&lt;br /&gt;
{tmax}&lt;br /&gt;
)&lt;br /&gt;
seedinicial = (&lt;br /&gt;
#SÓ USE DE NOVO SE FOR PRA FAZER DO ZERO IGUAL&lt;br /&gt;
{seedinicial}&lt;br /&gt;
)&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
valores = np.zeros(9)&lt;br /&gt;
(&lt;br /&gt;
valores[0],     valores[1],     valores[2],     valores[3],     valores[4],&lt;br /&gt;
valores[5],     valores[6],     valores[7],     valores[8]&lt;br /&gt;
) = (&lt;br /&gt;
intervalo,      alfa,           beta,           gaminha,        temp,&lt;br /&gt;
dt,             tmax,           npar,           seedinicial&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Hora de salvar os arquivos...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
np.save(f&amp;quot;.\\#{codigo}\\state#{codigo}.npy&amp;quot;, estadoaleatorio, allow_pickle = True)&lt;br /&gt;
&lt;br /&gt;
np.save(f&amp;quot;.\\#{codigo}\\val#{codigo}.npy&amp;quot;, valores)&lt;br /&gt;
&lt;br /&gt;
np.save(f&amp;quot;.\\#{codigo}\\xy#{codigo}.npy&amp;quot;, xy)&lt;br /&gt;
&lt;br /&gt;
np.save(f&amp;quot;.\\#{codigo}\\pxy#{codigo}.npy&amp;quot;, pxy)&lt;br /&gt;
&lt;br /&gt;
arquivo = open(f&amp;quot;.\\#{codigo}\\info#{codigo}.txt&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
arquivo.write(f&amp;quot;{informacoesleitura}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
arquivo.close()&lt;br /&gt;
&lt;br /&gt;
print(f&amp;quot;Tudo certo! Código {codigo}.&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Leomigotto</name></author>
	</entry>
</feed>