User Tools

Site Tools


petsc_test

This is an old revision of the document!


Juntamente com os arquivos que compõem a biblioteca PETSc, são disponibilizados diversos exemplos de aplicação do pacote.

Basicamente existem pacotes para três tipos de aplicações:

KSP - Solvers para Equações Lineares baseados em métodos de Krylov (Krylov Subspace Methods);
SNES - Solvers para Equações Não Lineares;
TS - Solvers para  Equações Diferenciais Ordinárias (ODE) e Algébricas (DAE) escalonáveis.

Os exemplos de teste de cada um dos tipos de aplicações localizam-se nas seguintes pastas:

KSP - {PETSC_DIR}/src/ksp/ksp/examples/tutorials
SNES - {PETSC_DIR}/src/snes/examples/tutorials
TS - {PETSC_DIR}/src/ts/examples/tutorials

Para testar um exemplo qualquer, em C/C++, basta acessar seu diretório, por exemplo:

cd {PETSC_DIR}/src/ksp/ksp/examples/tutorials

Em seguida, a compilação é realizada por meio do arquivo 'makefile'. Para compilar o exemplo 50, por exemplo, deve-se usar o comando:

make ex50

Este exemplo resolve, usando método multigrid, a equação de Poisson 2D: ∇·(∇p)=f(x,y) no domínio 0 ≤ {\displaystyle \leq } ≤ x,y ≤ 1, com f(x,y)=-cos(nπx)·cos(nπy) e condições de Neumann: dp/dx = 0 para x=0 e x=1 e dp/dy=0 para y=0 e y=1.

Para executar um exemplo usando apenas 1 processador, uma malha estruturada 3×3 e visualizar a matriz montada, duas opções são possíveis:

./ex50 -da_grid_x 4 -da_grid_y 4 -mat_view

mpiexec.openmpi -n 1 ./ex50  -da_grid_x 4 -da_grid_y 4 -mat_view

Na primeira opção pode-se alterar as dimensões do problema, porém sempre será resolvido utilizando-se apenas um processador. Executando da segunda forma, pode-se alterar o número de processadores, aumentando o desempenho computacional. Caso não seja necessário visualizar a matriz montada, pode-se retirar a opção '-mat_view'.

Com este mesmo exemplo pode-se testar por exemplo uma malha de 2049×2049 utilizando o solver multigrid com 16 processadores e 10 níveis multigrid com o comando:

mpiexec.openmpi -n 16 ./ex50 -da_grid_x 2049 -da_grid_y 2049 -pc_type mg -pc_mg_levels 10 -ksp_monitor

Para o teste de alguns outros exemplos utilizando os pacotes SNES e TS, por exemplo, pode-se consultar este site.

petsc_test.1470765215.txt.gz · Last modified: by jeferson