<?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=G%C3%A1s_de_Rede_sem_Densidade_Constante</id>
	<title>Gás de Rede sem Densidade Constante - 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=G%C3%A1s_de_Rede_sem_Densidade_Constante"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=G%C3%A1s_de_Rede_sem_Densidade_Constante&amp;action=history"/>
	<updated>2026-06-14T16:52:46Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=G%C3%A1s_de_Rede_sem_Densidade_Constante&amp;diff=2882&amp;oldid=prev</id>
		<title>Pedhmendes: Criou página com &#039;&lt;source lang = &quot;c&quot;&gt; /*****************************************************************************  *                           Lattice Gas Zeta...&#039;</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=G%C3%A1s_de_Rede_sem_Densidade_Constante&amp;diff=2882&amp;oldid=prev"/>
		<updated>2020-08-16T22:16:45Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;&amp;lt;source lang = &amp;quot;c&amp;quot;&amp;gt; /*****************************************************************************  *                           Lattice Gas Zeta...&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;c&amp;quot;&amp;gt;&lt;br /&gt;
/*****************************************************************************&lt;br /&gt;
 *                           Lattice Gas Zeta                                *&lt;br /&gt;
 ****************************************************************************/&lt;br /&gt;
/*****************************************************************************&lt;br /&gt;
 *                               INCLUDES                                    *&lt;br /&gt;
 ****************************************************************************/&lt;br /&gt;
#include&amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include&amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include&amp;lt;math.h&amp;gt;&lt;br /&gt;
#include&amp;lt;time.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*****************************************************************************&lt;br /&gt;
 *                              DEFINITIONS                                  *&lt;br /&gt;
 ****************************************************************************/&lt;br /&gt;
#define 		L 			16&lt;br /&gt;
#define 		L2 			(L*L)&lt;br /&gt;
#define 		TRAN 			100000&lt;br /&gt;
#define 		TMAX			1000000&lt;br /&gt;
#define			EPSILON			1.0&lt;br /&gt;
#define			ZETA			4.0&lt;br /&gt;
&lt;br /&gt;
/*****************************************************************************&lt;br /&gt;
 *                           GLOBAL VARIABLES                                *&lt;br /&gt;
 ****************************************************************************/&lt;br /&gt;
int site[L][L], neigh[L][L];&lt;br /&gt;
double M, ET;&lt;br /&gt;
&lt;br /&gt;
/*****************************************************************************&lt;br /&gt;
 *                              FUNCTIONS                                    *&lt;br /&gt;
 ****************************************************************************/&lt;br /&gt;
void initialize(void);&lt;br /&gt;
void routine(double TEMP);&lt;br /&gt;
void gnu_view(void);&lt;br /&gt;
&lt;br /&gt;
/*****************************************************************************&lt;br /&gt;
 *                             MAIN PROGRAM                                  *&lt;br /&gt;
 ****************************************************************************/&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
	int mcs;&lt;br /&gt;
	double TEMP;&lt;br /&gt;
	char Arq1[100];&lt;br /&gt;
	FILE *arq1;&lt;br /&gt;
&lt;br /&gt;
	TEMP = atof(argv[1]);&lt;br /&gt;
&lt;br /&gt;
	srand(time(NULL));&lt;br /&gt;
	initialize();&lt;br /&gt;
&lt;br /&gt;
	for(mcs=0; mcs&amp;lt;TRAN; mcs++)&lt;br /&gt;
	{&lt;br /&gt;
		routine(TEMP);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	sprintf(Arq1, &amp;quot;series_L%d_T%.3lf.dsf&amp;quot;, L, TEMP);&lt;br /&gt;
	arq1 = fopen(Arq1, &amp;quot;w&amp;quot;);&lt;br /&gt;
	fprintf(arq1, &amp;quot;#MCS\tM\tET\n&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	for(mcs=0; mcs&amp;lt;TMAX; mcs++)&lt;br /&gt;
	{&lt;br /&gt;
		routine(TEMP);&lt;br /&gt;
		fprintf(arq1, &amp;quot;%d\t%lf\t%lf\n&amp;quot;, mcs, M, ET);&lt;br /&gt;
#ifdef GNU&lt;br /&gt;
		if(mcs%10 == 0)&lt;br /&gt;
		{&lt;br /&gt;
			printf(&amp;quot;set title &amp;#039;MCS = %d&amp;#039;\n&amp;quot;, mcs);&lt;br /&gt;
			gnu_view();&lt;br /&gt;
		}&lt;br /&gt;
#endif&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	fclose(arq1);&lt;br /&gt;
&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*****************************************************************************&lt;br /&gt;
 *                            INITIALIZATION                                 *&lt;br /&gt;
 ****************************************************************************/&lt;br /&gt;
void initialize(void)&lt;br /&gt;
{&lt;br /&gt;
	int i, j;&lt;br /&gt;
	int E1, E2;&lt;br /&gt;
&lt;br /&gt;
	for(i=0; i&amp;lt;L; i++)&lt;br /&gt;
	{&lt;br /&gt;
		for(j=0; j&amp;lt;L; j++)&lt;br /&gt;
		{&lt;br /&gt;
			site[i][j] = 2*(rand()%2) - 1;&lt;br /&gt;
			neigh[i][j] = 0;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	for(i=0; i&amp;lt;L; i++)&lt;br /&gt;
	{&lt;br /&gt;
		for(j=0; j&amp;lt;L; j++)&lt;br /&gt;
		{&lt;br /&gt;
			neigh[i][j] += site[(i == 0 ? (L-1) : i - 1)][j];&lt;br /&gt;
			neigh[i][j] += site[(i == (L-1) ? 0 : i + 1)][j];&lt;br /&gt;
			neigh[i][j] += site[i][(j == 0 ? (L-1) : j - 1)];&lt;br /&gt;
			neigh[i][j] += site[i][(j == (L-1) ? 0 : j + 1)];&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ET = 0;&lt;br /&gt;
	E1 = 0;&lt;br /&gt;
	E2 = 0;&lt;br /&gt;
	M = 0;&lt;br /&gt;
&lt;br /&gt;
	for(i=0; i&amp;lt;L; i++)&lt;br /&gt;
	{&lt;br /&gt;
		for(j=0; j&amp;lt;L; j++)&lt;br /&gt;
		{&lt;br /&gt;
			E1 = E1 + site[i][j]*neigh[i][j];&lt;br /&gt;
			E2 = E2 + site[i][j];&lt;br /&gt;
			M = M + site[i][j];&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	E1 = E1*0.5;&lt;br /&gt;
&lt;br /&gt;
	ET = -EPSILON*0.5*(0.5*E1+ZETA*(E2+L2));    &lt;br /&gt;
&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*****************************************************************************&lt;br /&gt;
 *                            MONTE CARLO ROUTINE                            *&lt;br /&gt;
 ****************************************************************************/&lt;br /&gt;
void routine(double TEMP)&lt;br /&gt;
{&lt;br /&gt;
	int i, j, t;&lt;br /&gt;
	double dE;&lt;br /&gt;
	double r, prob;&lt;br /&gt;
&lt;br /&gt;
	for(t=0; t&amp;lt;L2; t++)&lt;br /&gt;
	{&lt;br /&gt;
		i = rand()%L;&lt;br /&gt;
		j = rand()%L;&lt;br /&gt;
	&lt;br /&gt;
		dE = 0;&lt;br /&gt;
		dE = EPSILON*site[i][j]*(0.5*neigh[i][j] + ZETA);&lt;br /&gt;
&lt;br /&gt;
		if(dE &amp;lt;= 0)&lt;br /&gt;
		{&lt;br /&gt;
			site[i][j] *= -1;&lt;br /&gt;
			ET = ET + dE;&lt;br /&gt;
			M = M + 2*site[i][j];&lt;br /&gt;
&lt;br /&gt;
			neigh[(i == 0 ? (L-1) : i - 1)][j] += 2*site[i][j];&lt;br /&gt;
			neigh[(i == (L-1) ? 0 : i + 1)][j] += 2*site[i][j];&lt;br /&gt;
			neigh[i][(j == 0 ? (L-1) : j - 1)] += 2*site[i][j];&lt;br /&gt;
			neigh[i][(j == (L-1) ? 0 : j + 1)] += 2*site[i][j];&lt;br /&gt;
		}&lt;br /&gt;
		else&lt;br /&gt;
		{&lt;br /&gt;
			prob = exp(-dE/TEMP);&lt;br /&gt;
			r = 1.0*rand()/RAND_MAX;&lt;br /&gt;
		&lt;br /&gt;
			if(r &amp;lt; prob)&lt;br /&gt;
			{&lt;br /&gt;
				site[i][j] *= -1;&lt;br /&gt;
				ET = ET + dE;&lt;br /&gt;
				M = M + 2*site[i][j];&lt;br /&gt;
&lt;br /&gt;
				neigh[(i == 0 ? (L-1) : i - 1)][j] += 2*site[i][j];&lt;br /&gt;
				neigh[(i == (L-1) ? 0 : i + 1)][j] += 2*site[i][j];&lt;br /&gt;
				neigh[i][(j == 0 ? (L-1) : j - 1)] += 2*site[i][j];&lt;br /&gt;
				neigh[i][(j == (L-1) ? 0 : j + 1)] += 2*site[i][j];&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*****************************************************************************&lt;br /&gt;
 *                             GNUPLOT VIEW                                  *&lt;br /&gt;
 ****************************************************************************/&lt;br /&gt;
void gnu_view(void)&lt;br /&gt;
{&lt;br /&gt;
	int a, b;&lt;br /&gt;
&lt;br /&gt;
	printf(&amp;quot;set xrange [0:%d]\nset yrange [0:%d]\n&amp;quot;, (L-1), (L-1));&lt;br /&gt;
	printf(&amp;quot;set cbrange [0:1]\n&amp;quot;);&lt;br /&gt;
	printf(&amp;quot;unset xtics\nunset ytics\n&amp;quot;);&lt;br /&gt;
	printf(&amp;quot;set palette defined (0 &amp;#039;black&amp;#039;, 1 &amp;#039;dark-violet&amp;#039;)\n&amp;quot;);&lt;br /&gt;
	printf(&amp;quot;unset colorbox\n&amp;quot;);&lt;br /&gt;
	printf(&amp;quot;set size square\n&amp;quot;);&lt;br /&gt;
	printf(&amp;quot;set key off\n&amp;quot;);&lt;br /&gt;
	printf(&amp;quot;plot \&amp;quot;-\&amp;quot; matrix w image\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	for(a=0; a&amp;lt;L; a++)&lt;br /&gt;
	{&lt;br /&gt;
		for(b=0; b&amp;lt;L; b++)&lt;br /&gt;
		{&lt;br /&gt;
			printf(&amp;quot;%d &amp;quot;, site[a][b]);&lt;br /&gt;
		}&lt;br /&gt;
		printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	printf(&amp;quot;\ne\n\n&amp;quot;);&lt;br /&gt;
	printf(&amp;quot;pause 0.1\n\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedhmendes</name></author>
	</entry>
</feed>