quinta-feira, 26 de setembro de 2013

"Pausa" no aquecimento global? Acho que não.

Espero que as pessoas se lembrem das experiências de Joule e usem a cabeça. A relação da energia mecânica com a temperatura basicamente. Estão esquecendo da dinâmica dos gases da atmosfera e das águas dos mares e dos oceanos.  Vão pensando em segundo plano.

Agora, qual a temperatura média da mistura  água e gelo no copo? Até o gelo derreter por completo se mantém a 0°C. Mas se você por um aquecedor no copo, vai ter lugares mais quentes que 0°C. Simplificando, é por isso que a merda da média temperatura global não diz muita coisa. O gelo do seu copo derrete e a temperatura média é 0°C.  E a energia que fez derreter o gelos do Ártico e dos glaciares alguém pôs na conta dessa temperatura? Claro que não, pois é temperatura que estão olhando e só temperaturas que vão entrar no gráfico da temperatura.
A temperatura global caiu nesses ultimos anos porque o gelo do do artico derreteu. Enquanto em estado sólido só estava no Ártico, mas na forma líquida ela flui para outros lugares. Alguém calculou quanto de energia precisou para derreter?
Se alguém se lembrar de como as águas fluem nos oceanos, principalmente do fundo do oceano que leva a água derretida do Ártico. Vai perceber que pode ser uma explicação para o aumento dos gelos do polo Antártico.

Agora vamos voltar para a dinâmica dos gases e das águas. O que é que mais nos chama atenção das coisas que elas afetam? Acho que os furacões. Todo mundo sabe que o número de furacões aumentou e dobrou no ultimo século e números do gás carbônico na atmosfera na mesma ordem. Se a temperatura é aproximadamente a mesma como no copo de água com gelo, a dinâmica dos gases e águas estão dizendo que clima está mais agitado, e quem se lembrar dos experimentos do Joule, vai lembrar que precisa somar todos os tipos de enegia. Tire os antolhos da sua cabeça e tente ver o mundo com seus próprios olhos, olhe todas as variáveis e pense e faça uma explicação com suas palavras.

quarta-feira, 4 de setembro de 2013

Reduzindo o poder flatulência de alguns alimentos cozidos

Resumindo, todo alimento que tem açúcar e alguns desses açucares não conseguimos digerir ou só digerimos parcialmente. Os microorganismos presentes no nosso intestino "gostam" de açúcar também, e é de quem pegar primeiro, e muitos deles produzem esses gases indesejaveis com açúcar. Eu particularmente, tenho intolerância à lactose. E quando consumo leite me dá diarreia e muita flatulência.

Todo cervejeiro já leu que as enzimas presentes no malte quebram o amido em açucares menores. Aí pensei o feijão tem alguns açucares que não digerimos e ele possuem uma cadeia maior (principalmente a rafinose, estaquiose e verbascose), o que acontece se eu cozinhar com o bagaço do mate e fazendo que nem faço a cerveja? Dá menos gases quando como esse feijão? A resposta é SIM!!! Cozinhei o feijão com a própria água que deixei de molho para deixar com todo açúcar "não digerivel", foram aproximadamente 500g de feijão antes de deixar de molho, e usei 500g de bagaço de malte que era a quantidade que saparei para fazer pão de malte. O chato que fiz com bagaço com pedaços de casca muito grande, da próxima transformo em farinha fina,  vou comento esse feijão cheio de palha em compensação não me dá gases.

quarta-feira, 24 de julho de 2013

AMD-APP-SDK (2.8/2.8.1.0) patch to make samples (Slackware-current)

Get slackbuild files on
http://slackbuilds.org/repository/14.0/development/amd-app-sdk/
build package and install

*************************************************************
--- ./make/openclsdkdefs.mk-orig    2012-05-14 04:43:34.000000000 -0300
+++ ./make/openclsdkdefs.mk    2012-11-30 20:41:05.275285082 -0200
@@ -230,7 +230,7 @@
 ifdef MINGW
   LDFLAGS           += -L/usr/X11R6/lib
 else
-  LDFLAGS           += -lpthread -ldl -L/usr/X11R6/lib
+  LDFLAGS           += -lpthread -ldl -L/usr/X11R6/lib64 -lX11
 endif
   LD_LIBDIR_FLAG    := -L
   LD_SHARED_FLAG    := -shared 
--- ./samples/opencl/SDKUtil/include/SDKCommon.hpp-orig    2012-05-14 04:43:34.000000000 -0300
+++ ./samples/opencl/SDKUtil/include/SDKCommon.hpp    2012-11-30 14:38:11.671185385 -0200
@@ -18,6 +18,7 @@
 #include <string.h>
 #include <vector>
 #include <malloc.h>
+#include <unistd.h>

 #include <CL/opencl.h>
***************************************************************
# cd /opt/amd-app-sdk
patchs the files and
# LIBAPARAPI=/opt/amd-app-sdk/samples/aparapi/AparapiUtil make

domingo, 16 de junho de 2013

Equação para calcular carbonação da cerveja a partir da pressão e temperatura

Na minhas buscas pela internet sobre a carbonação de cervejas, não encontrei nenhuma equação para calcular. No máximo que encontrei, foram tabelas, e essas só em unidades Fahrenheit e PSI.
http://www.kegerators.com/carbonation-table.php
http://www.homebrewing.com/reference/carbonation-chart.php
A solubilidade de um gás dissolvido em um líquido é proporcional à pressão parcial do gás acima do líquido, conhecida como a lei de Henry. E essa lei é uma constante para uma dada temperatura, mas essa varia com decaimento exponencial em função da temperatura.
Fazendo ajustes de curva com os dados da tabela até 60F, pois as duas tabelas são as mesmas de 30F a 60F, obtive a equação

 Volume de CO2 = 1.169394*(EXP(-T/21.72)+0.3099)*(p+1.0332)

T em Celsius, p em kgf/cm², se for querer em g/L basta multiplicar por 1.977. E esssa pressão que coloquei é pressão relativa, se fosse absoluta não precisaria somar uma atmosfera. Com essa equação fica fácil estimar a concentração de CO2 dissolvido na cerveja do tanque sabendo a temperatura e pressão.

For Volumes CO2 with temerature in degrees Fahrenheit and pressure in PSI

 Volume = 0.18639*(EXP(-T/39.0964)+0.136697)*(p+14.06959488)

sábado, 11 de maio de 2013

Problemas de internet (principalmente facebook) no linux nos usuários que possuem o roteador da D-link

D-Link+Linux = problema

Esses dias estava com problemas com a minha internet, achava que era NET, que estava barrando de alguma forma o facebook e alguns outros sites.
Eu estava usando um roteador da D-Link, e eu só uso linux. Colocava o DNS do Google para ficar utilizavel, pois não dava para entrar no facebook com o DNS padrão da NET, mas a maioria dos sites internacionais continuava ruim.

Decidí por outro roteador (para Linksys), aí tudo voltou a ficar rápido e entrar no facebook.
Ontem convesando com um amigo, ele também estava com o mesmo problema, ele é ususário linux, mas estava usando windows por causa do problema de não poder entrar no facebook pelo linux. Andei perguntando várias vezes aos amigos que usavam a NET, mas como ele usavam windows não tinham problemas de conexão.

Procurei na internet sobre esse problema, achei a forma de resolver
https://under-linux.org/showthread.php?t=147666

mudei o MTU para 1492 do router, mas não foi suficiente

http://serverfault.com/questions/25089/how-to-increase-mtu-size-on-linux-2-6
ifconfig eth0 mtu 1492

Voltei a conectar no facebook com o router da D-Link, mas ainda acho que com o outro router da Linksys com MTU 1500 mais rápido.

Tem um outro site que diz para usar 1305
http://www.conexaodlink.com/2011/03/solucao-problema-do-d-link-di-524150.html

 Se o router D-Link fosse meu já estaria com o dd-wrt :)

quinta-feira, 4 de abril de 2013

open64 4.5.2.1 patch

--- ./osprey/be/opt/opt_emit.cxx.orig    2012-08-08 08:14:06.000000000 -0300
+++ ./osprey/be/opt/opt_emit.cxx    2012-08-12 20:03:04.850966207 -0300
@@ -78,6 +78,7 @@

 #include <stdint.h>
 #include <sys/times.h>
+#include <unistd.h>
 #include "defs.h"
 #include "tracing.h"
 #include "erglob.h"
--- ./osprey/ipa/local/Makefile.gbase.orig    2012-08-08 08:14:43.000000000 -0300
+++ ./osprey/ipa/local/Makefile.gbase    2012-08-12 20:30:36.601746311 -0300
@@ -338,4 +338,6 @@
 #----------------------------------------------------------------------
 #  Temporary workaround
 #----------------------------------------------------------------------
+ifeq ($(BUILD_COMPILER), OPEN64)
 ipl_summarize_util.o: OPTIMIZER += -CG:all_sched=0
+endif
\ No newline at end of file
--- ./osprey-gcc-4.2.0/gcc/config/i386/linux-unwind.h.orig    2012-08-08 08:14:52.000000000 -0300
+++ ./osprey-gcc-4.2.0/gcc/config/i386/linux-unwind.h    2013-04-01 18:02:22.000000000 -0300
@@ -137,9 +137,9 @@
     {
       struct rt_sigframe {
     int sig;
-    struct siginfo *pinfo;
+    siginfo_t *pinfo;
     void *puc;
-    struct siginfo info;
+    siginfo_t info;
     struct ucontext uc;
       } *rt_ = context->cfa;
       /* The void * cast is necessary to avoid an aliasing warning.

quarta-feira, 3 de abril de 2013

QuTiP 2.2.0 packages (Slackware64-current 20130331) with patch

mcsolve_f90 not work (qutip 2.2.0 20130301), dont have blas library dependencies in the qutraj_run.so library
***** the patch ***** 
--- ./qutip/fortran/setup.py.orig       2013-03-01 04:49:31.000000000 -0300
+++ ./qutip/fortran/setup.py    2013-04-03 22:29:32.114191894 -0300
@@ -42,7 +42,7 @@
     if not lapack_opt:
         blas_opt = get_info('blas', notfound_action=2)
     else:
-        blas_opt = lapack_opt
+        blas_opt = get_info('blas', notfound_action=1)

     # Remove libraries key from blas_opt
     if 'libraries' in blas_opt:  # key doesn't exist on OS X ...

***********************
d340344fa72098276ca41a76cdf377e9  Cython-0.18-x86_64-1.txz
3b1bfbeeaf59f6683f38aa2fe3d2a67a  QuTiP-2.2.0-x86_64-1.txz
2481a78855f9d267c7f27c2cf2f93fb1  apiextractor-0.10.10-x86_64-2.txz
32145606c53e7e3a037f379547acdfce  blas-20110419-x86_64-3.txz
1fdd7b25d04996e2e240a90f4fae92c2  generatorrunner-0.6.16-x86_64-2.txz
201fde17c76e7dd88341e748a5bab7db  ipython-0.13.1-x86_64-1.txz
12c53c6efcfe7e2a91dbe724b33ea537  lapack-3.4.2-x86_64-2.txz
c9b79e07630931f52f1612daa3ab572b  matplotlib-1.2.1-x86_64-1.txz
b0f7603ea8925262649ee5b31008241b  nose-1.2.1-x86_64-1.txz
9fb835e2d268333efe00595c53ac6da0  numpy-1.7.0-x86_64-1.txz
03ce18e89658c8abf9c534b40a57505f  pysetuptools-0.6c11-x86_64-2.txz
64b584595a2c1d0da368c75396158e6f  pyside-qt4.8+1.1.2-x86_64-1.txz
b4e97d03d781b95d87a4ed21c1819bbe  python-dateutil-1.5-x86_64-2.txz
a8af1cec2c85ef9c9850013379e6c6d0  pytz-2013b-x86_64-1.txz
2dd6dadd6484d2ff6bcd06841d070689  scipy-0.11.0-x86_64-1.txz
e04240f5eb4b83e0709c140aaf83b275  shiboken-1.1.2-x86_64-1.txz

Google drve link
qutip-2.2.0-packages.tar

>>> import qutip.testing as qt
>>> qt.run()
Qobj data ... ok
Qobj type ... ok
Qobj Hermicity ... ok
Qobj shape ... ok
Qobj addition ... ok
Qobj subtraction ... ok
Qobj multiplication ... ok
Qobj division ... ok
Qobj power ... ok
Qobj negation ... ok
Qobj equals ... ok
Qobj getitem ... ok
Qobj multiplication type ... ok
Qobj conjugate ... ok
Qobj adjoint (dagger) ... ok
Qobj diagonals ... ok
Qobj eigenenergies ... ok
Qobj eigenstates ... ok
Qobj expm ... ok
Qobj full ... ok
Qobj ket type ... ok
Qobj bra type ... ok
Qobj operator type ... ok
Qobj superoperator type ... ok
Transform 2-level to eigenbasis and back ... ok
Transform 10-level real-values to eigenbasis and back ... ok
Transform 10-level to eigenbasis and back ... ok
Transform 10-level imag to eigenbasis and back ... ok
Consistency between transformations of kets and denstity matrices ... ok
correlation: comparing me and es for oscillator in coherent initial state ... ok
correlation: comparing me and es for oscillator in steady state ... ok
correlation: compare spectrum obtained for eseries and fft methods ... ok
Diagonalization of random two-level system ... ok
Diagonalization of composite systems ... ok
von-Neumann entropy ... ok
Linear entropy ... ok
Concurrence ... ok
Mutual information ... ok
Conditional entropy ... ok
Read and write complex valued decimal formatted data ... ok
Read and write complex valued default formatted data ... ok
Read and write complex valued exp formatted data ... ok
Read and write real valued decimal formatted data ... ok
Read and write real valued default formatted data ... ok
Read and write real valued exp formatted data ... ok
Read and write with automatic separator detection ... ok
Floquet: test unitary evolution of time-dependent two-level system ... ok
Monte-carlo: Constant H with no collapse ops (expect) ... ok
Monte-carlo: Constant H with no collapse ops (states) ... ok
Monte-carlo: Constant H (str format) with no collapse ops (expect) ... ok
Monte-carlo: Constant H (func format) with no collapse ops (expect) ... ok
Monte-carlo: Constant H (str format) with no collapse ops (states) ... ok
Monte-carlo: Constant H (func format) with no collapse ops (states) ... ok
Monte-carlo: Constant H with constant collapse ... ok
Monte-carlo: Constant H with single collapse operator ... ok
Monte-carlo: Constant H with single expect operator ... ok
Monte-carlo: Collapse terms constant (func format) ... ok
Monte-carlo: Collapse terms constant (str format) ... ok
Monte-carlo: Time-dependent H (func format) ... ok
Monte-carlo: Time-dependent H (str format) ... ok
Monte-carlo: check for correct dtypes (mc_avg=True) ... ok
Monte-carlo: check for correct dtypes (mc_avg=False) ... ok
mcsolve_f90: Constant H with no collapse ops (expect) ... ok
mcsolve_f90: Constant H with no collapse ops (states) ... ok
mcsolve_f90: Constant H with constant collapse ... ok
mcsolve_f90: Constant H with single collapse operator ... ok
mcsolve_f90: Constant H with single expect operator ... ok
mcsolve_f90: check for correct dtypes (mc_avg=True) ... ok
mcsolve_f90: check for correct dtypes (mc_avg=False) ... ok
mesolve: cavity-qubit interaction, no dissipation ... ok
mesolve: cavity-qubit without interaction, decay ... ok
mesolve: cavity-qubit with interaction, decay ... ok
mesolve: qubit without dissipation ... ok
mesolve: simple time-dependence as function list ... ok
mesolve: simple time-dependence as string list ... ok
mesolve: simple constant decay ... ok
mesolve: constant decay as function list ... ok
mesolve: constant decay as string list ... ok
mesolve: simple constant decay ... ok
mesolve: simple constant decay ... ok
odechecks: monte-carlo ... ok
Spin 1/2 operators ... ok
Spin 3/2 operators ... ok
Spin 2 operators ... ok
Spin 5/2 operators ... ok
Destruction operator ... ok
Creation operator ... ok
Identity operator ... ok
Number operator ... ok
Squeezing operator ... ok
Displacement operator ... ok
parfor ... ok
partial transpose of bipartite systems ... ok
partial transpose: comparing sparse and dense implementations ... ok
partial transpose: randomized tests on tripartite system ... ok
quantum process tomography for snot gate ... ok
quantum process tomography for cnot gate ... ok
Test mesolve qubit, with dissipation ... ok
Test mesolve qubit, no dissipation ... ok
Test essolve qubit, with dissipation ... ok
Test mcsolve qubit, with dissipation ... ok
Test mcsolve qubit, no dissipation ... ok
random Unitary ... ok
random density matrix ... ok
random hermitian ... ok
random ket ... ok
Sparse eigs Hermitian ... ok
Sparse eigs non-Hermitian ... ok
Sparse eigvals only Hermitian. ... ok
Dense eigs Hermitian. ... ok
Dense eigs non-Hermitian ... ok
Dense eigvals only Hermitian ... ok
states: coherent density matrix ... ok
states: Fock density matrix ... ok
states: thermal density matrix ... ok
Steady state: Thermal qubit ... ok
Steady state: Thermal harmonic oscillator ... ok
Superoperator: Conversion matrix to vector to matrix ... ok
Superoperator: Test compability between matrix/vector conversion and ... ok
Superoperator: Conversion between matrix and vector indices ... ok
Superoperator: Conversion vector to matrix to vector ... ok
wigner: test wigner function calculation for coherent states ... ok
wigner: test wigner function calculation for Fock states ... ok
wigner: compare wigner methods for random density matrices ... ok
wigner: compare wigner methods for random state vectors ... ok

----------------------------------------------------------------------
Ran 125 tests in 316.766s

OK

quarta-feira, 30 de janeiro de 2013

Modelo ABNT/LaTeX não oficial DF/UFSCar

Criei um modelo tentando seguir a norma ABNT quando estava escrevendo a minha tese de doutorado em 2008 no Departamento de Física da UFSCar. Para quem já sabe mexer com LaTeX vai ser muito fácil. Clique no link abaixo para fazer o download, está no meu google drive.
modelo ABNT(DF/UFSCar)

Requesito: compilador LaTeX (PDFLaTex), abntex
Eu uso o Texlive e o abntex 0.9 beta2 com as correções nos arquivos .def
nbr10520-1988.def
nbr10520-2001.def
nbr10520-2002.def
-\ifx\AbntCitetype\AbntCitetypeALF
+\ifx\AbntCallType\AbntCallTypeALF
Ou seja, precisa modificar AbntCitetypeALF para AbntCallTypeALF

Extraia o conteudo do arquivo em alguma pasta/diretorio e siga o exemplo tese.tex, para quem usa o kile tem o projeto pronto para facilitar.

o ABNTEX, pegue-o no endereço http://abntex.codigolivre.org.br/
como root copie o conteudo texmf no texmf-dist no caso do Texlive, localize os def que citei e faça as modificações e atualize a arvore dos diretorios do seu LaTeX.
Se você for usar uma tabela de siglas é melhor copiar o bin/geratss.

Esse modelo foi feito para facilitar a criação da folha de rosto, usa o pacote lastpage.sty para contar o número de paginas/folhas. Dependendo da intituição vai ter que sentar com o bibliotecario antes e fazer a folha com os dados da ficha catalografica na versao final da sua tese ou dissertação.
Pode ser usado para dissertação de Mestrado, bem como para a tese de Doutorado, que automaticamente rearruma para o número de membros da banca de defesa.

Pode ser facilmente modificado para o formato dos outros departamentos da UFSCar, e tambem nos formatos das outras universidades.

Os nomes das pessoas são ficticios, criadas de forma humorada sentida na pele de muitos durante uma pós-graduação. Andei passando esse modelo para algumas pessoas, mas ainda muitos usam Word e Powerpoint.
Para aproveitar o que já foi feito no LaTeX, você pode usar o Beamer para fazer os silides da sua defesa, eu recomendo o tema progressbar do Sylvain Bouveret que pode ser obtido no endereço: http://recherche.noiraudes.net/fr/LaTeX.php
Mas se você não consegue abandonar o Powerpoint, pode gerar as figuras das equações, existem muitos programas que fazem isso.

sexta-feira, 25 de janeiro de 2013

Benchmark on GPU HD7970 / LAMMPS

AMD FX-8150@4.086GHz / GPU XFX HD7970 GHz edition / MPICH 3.0.1 / Open64 4.5.2 (AMD) / APP SDK 2.8 / LAMMPS 20130121 (compiled with -O3)

Results for Rhodopsin
On the FX-8150
Single core 45.9495 seconds
4 cores 11.94 seconds
8 cores 7.06722 seconds

On the GPU HD7970 GHz edition
1 proc 4.8 seconds
2 procs 3.67 seconds

Results with FirePro3D V8800 and Tesla C2050
https://sites.google.com/site/akohlmey/news-and-announcements/gpuacceleratedlammpsonamdgpus

Results for EAM

1 procs
mpirun -n 1 ./lmp_mpich  -sf gpu -c off -v g 1 -v x 80 -v y 80 -v z 80 -v t 100 < in.eam.gpu
--------------------------------------------------------------------------
GPU 0: Tahiti, 256 cores, 2.9 GB, 1.1 GHZ (Double Precision)
--------------------------------------------------------------------------

Initializing GPU and compiling on process 0...Done.
Initializing GPU 0 on core 0...Done.

Setting up run ...
Memory usage per processor = 426.905 Mbytes
Step Temp E_pair E_mol TotEng Press
       0         1600     -7249920            0   -6826360.6    18704.149
      50    780.81547   -7031660.9            0   -6824959.8    52291.364
     100    798.21786   -7036295.3            0   -6824987.4    51479.467
Loop time of 27.893 on 1 procs for 100 steps with 2048000 atoms


2 procs

mpirun -n 2 ./lmp_mpich  -sf gpu -c off -v g 1 -v x 80 -v y 80 -v z 80 -v t 100 < in.eam.gpu
--------------------------------------------------------------------------
GPU 0: Tahiti, 256 cores, 2.9 GB, 1.1 GHZ (Double Precision)
--------------------------------------------------------------------------

Initializing GPU and compiling on process 0...Done.
Initializing GPU 0 on core 0...Done.
Initializing GPU 0 on core 1...Done.

Setting up run ...
Memory usage per processor = 225.757 Mbytes
Step Temp E_pair E_mol TotEng Press
       0         1600     -7249920            0   -6826360.6    18704.149
      50    780.81547   -7031660.9            0   -6824959.8    52291.364
     100    798.21786   -7036295.3            0   -6824987.4    51479.467
Loop time of 22.4219 on 2 procs for 100 steps with 2048000 atoms



mpirun -n 1 ./lmp_cuda  -sf cuda -v g 2 -v x 80 -v y 80 -v z 80 -v t 100 < in.eam.cuda

LAMMPS (21 Jan 2013)
# Using LAMMPS_CUDA
USER-CUDA mode is enabled (lammps.cpp:393)
# CUDA: Activate GPU
# Using device 0: GeForce GTX 580
Lattice spacing in x,y,z = 3.615 3.615 3.615
Created orthogonal box = (0 0 0) to (289.2 289.2 289.2)
  1 by 1 by 1 MPI processor grid
Created 2048000 atoms
# CUDA: VerletCuda::setup: Allocate memory on device for maximum of 2050000 atoms...
# CUDA: Using precision: Global: 8 X: 8 V: 8 F: 8 PPPM: 8
Setting up run ...
# CUDA: VerletCuda::setup: Upload data...
# CUDA: Total Device Memory useage post setup: 1314.117188 MB
Memory usage per processor = 416.017 Mbytes
Step Temp E_pair E_mol TotEng Press
       0         1600     -7249920            0   -6826360.6    18704.149
      50    780.81547   -7031660.9            0   -6824959.8    52291.364
     100    798.21786   -7036295.3            0   -6824987.4    51479.467
Loop time of 20.0248 on 1 procs for 100 steps with 2048000 atoms