Ir para o conteúdo

!SOLVER

Controle do solver

Dados de controle obrigatórios.

Parâmetros

METHOD =    Método de solução (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
            DIRECT     : Método direto, exceto para análise de contato (somente processamento serial) (atualmente indisponível)
            DIRECTmkl  : Método direto usando Intel MKL
            MUMPS      : Método direto usando MUMPS
            Quando um método direto é selecionado, as linhas de dados são ignoradas.
            Métodos iterativos para problemas com 3 DOFs oferecem execução paralela por threads com OpenMP

PRECOND =   Método de precondicionamento para solvers iterativos (1, 2, 3, 5, 10, 11, 12)
            1, 2       : SSOR (em bloco) (com ordenação multicolor somente para problemas com 3 DOFs)
            3          : Escalonamento diagonal (em bloco)
            5          : AMG usando o pacote de precondicionamento multigrid ML
            10         : ILU(0) em bloco
            11         : ILU(1) em bloco
            12         : ILU(2) em bloco
            10, 11 e 12 estão disponíveis somente para problemas com 3 DOFs
            Para execução paralela por threads OpenMP, recomenda-se SSOR, escalonamento diagonal ou ML

ITERLOG =   Se o histórico de convergência do solver iterativo deve ser gerado          (YES/NO)(Padrão: NO)

TIMELOG =   Se o tempo de cálculo do solver deve ser gerado                       (YES/NO/VERBOSE)(Padrão: NO)

USEJAD =    Se deve ser usada ordenação para processadores vetoriais                    (YES/NO)(Padrão: NO)
            Válido somente quando um método iterativo é usado para um problema com 3 DOFs

SCALING =   Se a matriz deve ser escalonada de modo que as entradas diagonais sejam 1       (YES/NO)(Padrão: NO)
            Válido somente quando um método iterativo é usado para um problema com 3 DOFs

DUMPTYPE =  Formato de dump da matriz (NONE, MM, CSR, BSR) (principalmente para depuração)
            NONE : Não gerar dump (Padrão)
            MM   : Formato Matrix Market
            CSR  : Formato Compressed Sparse Row (CSR)
            BSR  : Formato CSR em blocos

DUMPEXIT =  Encerra o programa imediatamente após o dump da matriz           (YES/NO)(Padrão: NO)

MPCMETHOD = Método de tratamento de restrições multiponto (1, 2, 3)
            1: Método da penalidade (Padrão ao usar um método direto)
            2: Método MPC-CG (Obsoleto)
            3: Eliminação explícita de DOFs (Padrão ao usar um método iterativo)

ESTCOND =   Frequência de estimativa do número de condição (experimental)
            Estima o número de condição a cada intervalo de iterações especificado e ao final das iterações
            Nenhuma estimativa é realizada quando 0 é especificado

METHOD2 =   Método de solução secundário (BiCGSTAB, GMRES, GPBiCG) (experimental)
            Válido somente quando CG é especificado para METHOD
            Se CG divergir, muda automaticamente para o método secundário e continua a solução
            Os mesmos valores são usados para os demais parâmetros e linhas de dados

CONTACT_ELIM = Especifica se a eliminação de DOFs é realizada na análise de contato (0,1)
               0: Realiza a eliminação de DOFs somente ao usar um método iterativo (Padrão)
               1: Sempre realiza a eliminação de DOFs (inclusive ao usar um método direto)

** 2ª linha e seguintes **

(2ª linha) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Variável Atributo Descrição
NITER I Número de iterações (Padrão: 100)
iterPREmax I Número de iterações do precondicionamento Additive Schwarz (Padrão: 1)
(Valor recomendado: 1; 2 pode ser eficaz em alguns cálculos paralelos)
NREST I Número de subespaços de Krylov (Padrão: 10)
(Válido somente quando GMRES é selecionado como método de solução)
NCOLOR_IN I Número-alvo de cores para ordenação multicolor (Padrão: 10)
(Válido somente quando o número de threads OpenMP é 2 ou maior)
RECYCLEPRE I Número de vezes que as informações de configuração do precondicionador são reutilizadas (Padrão: 3)
(Válido somente em análise não linear)
(3ª linha) RESID, SIGMA_DIAG, SIGMA
Variável Atributo Descrição
RESID R Erro de truncamento (Padrão: 1.0e-8)
SIGMA_DIAG R Fator de escala aplicado às entradas diagonais ao calcular a matriz de precondicionamento (Padrão: 1.0)
(Se ocorrer divisão por zero ou divergência com precondicionamento ILU, o problema poderá convergir quando for especificado um valor maior que 1.0)
SIGMA R Não utilizado (Padrão: 0.0)

Quando PRECOND=5 (opcional)

Se qualquer outro valor for especificado para PRECOND, a 4ª linha será ignorada.

(4ª linha) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
Variável Atributo Descrição
ML_CoarseSolver I Solver da malha grossa para ML (1: usar smoother, 2: KLU (método direto serial), 3: MUMPS (método direto paralelo)) (Padrão: 1)
(Recomendado: 3 ou 2 para problemas difíceis, 1 para problemas comuns)
ML_Smoother I Smoother do ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (Padrão: 1)
(Recomendado: 1)
ML_MGCycle I Ciclo multigrid do ML (1: ciclo V, 2: ciclo W, 3: ciclo Full-V) (Padrão: 1)
(Recomendado: 2 para problemas difíceis, 1 para problemas comuns)
ML_MaxLevels I Número máximo de níveis do ML (Padrão: 10)
(Para problemas particularmente difíceis, use um solver direto na malha grossa e 2 níveis (ou 3 se a memória for insuficiente); para problemas comuns, recomenda-se 10)
ML_CoarseningScheme I Esquema de coarsening do ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (Padrão: 1)
(Recomendado: 1 ou 5)
ML_NumSweep I Número de sweeps do smoother do ML (grau do polinômio para Chebyshev) (Padrão: 2)
(Recomendado: 2 para Chebyshev, 1 para SymBlockGaussSeidel)

Exemplos

Usar CG com precondicionamento SSOR e definir o número máximo de iterações como 10000 e o erro de truncamento como 1.0e-8

!SOLVER, METHOD=CG, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Usar GMRES com precondicionamento SSOR e definir o número de subespaços de Krylov como 40 e o número-alvo de cores para ordenação multicolor como 100

!SOLVER, METHOD=GMRES, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1, 40, 100
  1.0e-8, 1.0, 0.0

Usar CG com precondicionamento ILU(0) e definir como 1.1 o fator de escala aplicado às entradas diagonais ao calcular a matriz de precondicionamento

!SOLVER, METHOD=CG, PRECOND=10, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.1, 0.0

Usar AMG por ML como precondicionador do CG

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Usar AMG por ML como precondicionador do CG e MUMPS como solver da malha grossa (para problemas difíceis)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

Usar AMG por ML como precondicionador do CG e ciclo W como ciclo multigrid (para problemas difíceis)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  1, 1, 2

Usar AMG por ML como precondicionador do CG, MUMPS como solver da malha grossa e definir o número máximo de níveis como 2 (para problemas muito difíceis)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3, 1, 1, 2