avanços da semana passada / planos para a semana 2008.09.22

avanços da semana passada / planos para a semana 2008.09.22

por Alexandre Roma -
Número de respostas: 2
Pessoal -

Fábio, o padrão do resumo será por enquanto o padrão dos resumos pós-discussão usuais. Tá muito cru ainda para algo muito elaborado.
Olhei hoje as condições de contorno. Elas estão em source/apputils/boundary/appu_cartbdry2d.f Vamos ver se copiamos localmente e alteramos para entender melhor ==> Catalina, assim que vc chegar cobre isto de mim, ok?

Não entendi ainda porque mesmo numa aplicação 2D os arrays tem 3 indices mas, a grosso modo, DIRICHLET e NEUMANN são mais ou menos o que se esperaria (na verdade, em DIRICHLET eu esperaria ver umas médias que não estão lá; vamos discutir depois). FLOW é para escoamento livre / completamente desenvolvido ==> e.g. as células fantasmas à direita do domínio repetem o valor da última célula do domínio (estamos falando de condições na "east" boundary). REFLECT são condições reflexivas: uma das fantasmas assume o negativo do último valor do domínio (de novo se numa "east bdry condition"). Não tenho certeza ainda fisicamente o que ela significa pois nunca usei (engenheiros?) Certamente ainda há espaço para aprofundarmos nisto (tem um monte de parâmetros que precisamos entender na chamada).

Podemos discutir mais isto no nosso próximo encontro.

Fábio, esta semana, não vamos ter Catalina e Priscila que estão em SCarlos. Proponho que falemos de suas atividades (verão, InC, mestrado, etc - e Amauri).

O entendimento do SAMRAI está mais complexo e tomando mais tempo que o previsto originalmente. Se Priscila achar que pode avançar mais no trabalho dela se dedicando apenas aos tópicos específicos do trabalho dela, fique à vontade para não vir às reuniões do SAMRAI - pelo menos até conseguirmos avançar substancialmente e podermos passar com segurança o conhecimento.

Acho melhor continuarmos alterarmos o código visando a um tutorial *apenas* qdo tivermos entendido exemplo LInAdv do SAMRAI como um todo (e não apenas partes). Catalina, guarde suas versões e não jogue nada fora.

Outra coisa: aparentemente m4 é uma linguagem para processamento de macros - veja em http://en.wikipedia.org/wiki/M4_(computer_language) e de lá, consultem um tutorial online. (external links)

CUIDADO: Finalizando, isto que estamos fazendo com o SAMRAI faz parte dos "Desenvolvimentos 3D" (c.f. TOPICO 08 do Paca - vejam tbm "cronograma tentativo" lá). Este assunto é importante por muitas razões (razões até demais para meu gosto): ele é essencial para os 2 projetos Petrobras do Aristeu (de onde sairão parte dos recursos para a viagem de Catalina e estadia dela em Uberlândia durante o ERMAC), ele faz parte do projeto de bolhas que submeti à Petrobras (e ao CNPq) e, *muito* mais importante que estes 3 projetos, é importante para o desenvolvimento das ferramentas de doutorado de Catalina, Priscila, Pivello e Rafael e espero, com otimismo, que seja tbm da dissertação de mestrado do Fabio (além do fim de sua iniciação científica). Então, peço a vcs que estão diretamente envolvidos: vamos por todo o foco e esforço nisto. Ainda estamos no cronograma citado acima - mas acho que vamos sair dele em breve pois não vejo como iniciarmos desenvolvimentos básicos a partir da Semana 05 (que já é, pasmem!, semana que vem).

Não sei como andam as coisas avançando na UFU (pessoal daí?) 5a. feira, 11-12h, tem reunião skype - confirmam?

Não vou conseguir por mais a mão pessoalmente no SAMRAI esta semana - então o assunto está por conta dos universitários.


PARA A SEMANA DE 2008.09.22
Bom, gostaría que forçássemos adiante o entendimento do programa em t=0, até qdo se inicia o laço temporal (linha 399 ou 457 do main.C). O ideal seria saber reescrever isto tudo num outro código (myMain.C) sem se preocupar com paralelismo e reinicialização do código: definir o domínio, condição inicial e de contorno, definir os critérios de marcação de células ruins, gerar uma primeira malha inicial e inicializá-la com a condição inicial. Claro, tbm visualizar. Vcs têm alguma outra proposta? Há como dividir o problema para conquistá-lo mais rapidamente?

Outra coisa: estamos, Catalina e eu, indo em 28 de Outubro para UFU. Precisamos começar a pensar em metas e nas atividades que iremos desenvolver. Idealmente, estaríamos fazendo as primeiras implementações básicas 2D e 3D (tomara!)

[]s Alexandre

Em resposta à Alexandre Roma

Re: avanços da semana passada / planos para a semana 2008.09.22

por Alexandre Roma -
Oi pessoal -
Conversei com Pivello e Rafael no skype hoje para vermos como a carroça anda.

Estamos, aqui e lá, tentando digerir aos poucos o código e a biblioteca SAMRAI usando o exemplo LinAdv que vem com o pacote. Da conversa, ficou mais uma vez clara a importância de entendermos os objetos que configuram a geometria do domínio, os parâmetros que norteiam a construção da malha composta (tamanho máximo dos patches, no. de células fantasmas, etc.), os arquivos de input e definição da condição inicial.

Vou verificar como a extrapolação de Richardson foi implementada para comentar com vcs na semana que vem (ou antes). Vou tbm ver um pouco mais das condições de contorno empregadas.

Ficou acertado que, cada um com sua estratégia própria de ataque e estudo, vamos estudar os métodos makeCoarsestLevel() e makeFinerLevel(), tomando o cuidado de olhar o caso no qual dt é o mesmo para toda a hierarquia. Tbm vamos olhar apenas o caso em que cada level é gerado a partir do mais grosso abaixo indo para cima, ficando para o futuro ver como geraremos a hierarquia de cima para baixo (qdo usarmos o IB Method). Tbm não nos preocuparemos com nada que tenha a ver com o tutorial agora.

Fica a sugestão que vcs tbm mergulhem mais fundo na marcação de pontos e como a partir deste conjunto de pontos marcados saimos com os boxes (BergerRigoutsos) para o nível sendo gerado.

Por fim, ao estudar o exemplo, se aparecerem dúvidas sobre a metodologia implementada, escrevam para mim imediatamente para discutirmos os detalhes - este desenvolvimento tem para mim a prioridade máxima.

Quero a partir da semana que vem iniciar o laço temporal.
[]s Alexandre

Em resposta à Alexandre Roma

Re: avanços da semana passada / planos para a semana 2008.09.22

por Márcio Ricardo Pivello -
Alexandre, sobre o código mínimo para gerarmos a malha inicial no visit, realmente é tudo o que está no main.C até o trecho

if ( viz_dump_data )
{
#ifdef HAVE_HDF5
visit_data_writer->writePlotData(
patch_hierarchy,
time_integrator->getIntegratorStep(),
time_integrator->getIntegratorTime());

#endif
}

que é o comando para gerar o arquivo inicial. Estudei o código acima, e todos os objetos estão relacionados de alguma forma com os parâmetros de entrada para os objetos patch_hierarchy e time_integrator.

Já parti para os métodos makeCoarsestLevel() e makeFinerLevel().