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;
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 <font inherit/inherit;;inherit;;inherit>≤ {\displaystyle \leq }</font> ≤ 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'

Run with a 120×120 mesh on 16 processors using superlu_dist and view the solver options used

mpiexec -n 16 ./ex50  -da_grid_x 120 -da_grid_y 120 -pc_type lu -pc_factor_mat_solver_package superlu_dist -ksp_monitor -ksp_view

Run with a 2049×2049 grid using multigrid solver on 16 processors with 10 multigrid levels

mpiexec -n 16 ./ex50 -da_grid_x 2049 -da_grid_y 2049 -pc_type mg -pc_mg_levels 10 -ksp_monitor
petsc_test.1470760147.txt.gz · Last modified: by jeferson