Translation update pending
The Brazilian Portuguese translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.
!SOLVER¶
Controle do solver
Dados de controle obrigatórios.
Parâmetros¶
METHOD = Método de solução (CG, BiCGSTAB, GMRES, GPBiCG, CR,PipeCG,GroppCG,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.
Os métodos iterativos permitem paralelismo por threads com OpenMP
PRECOND = Método de pré-condicionamento para solvers iterativos (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : SSOR (por blocos) (com ordenação multicolor)
3 : Escalonamento diagonal (em bloco)
5 : AMG usando o pacote de pré-condicionamento multigrid ML
10 : ILU(0) em bloco
11 : ILU(1) em bloco
12 : ILU(2) em bloco
22 : AMG usando o SA-AMG integrado ao HEC-MW (AMG por agregação suavizada)
10, 11 e 12 estão disponíveis somente para problemas com 3 DOFs
22 está disponível somente em compilações com LAPACK habilitado
Para paralelismo por threads com OpenMP, recomenda-se SSOR, escalonamento diagonal, ML, SA-AMG,
ou ILU por blocos (10, 11, 12) para problemas com 3 graus de liberdade
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)
LOGLEVEL = Nível de saída das informações de diagnóstico do pré-condicionador (inteiro)(padrão: sem saída)
Especificado independentemente de ITERLOG e TIMELOG
Com valor 1 ou maior, gera a estrutura hierárquica e outras informações dos pré-condicionadores AMG (PRECOND=5,22)
Com valor 2 ou maior, gera informações mais detalhadas (como uso de memória)
USEJAD = Se deve ser usada ordenação para processadores vetoriais (YES/NO)(padrão: NO)
Válido somente quando um método iterativo é usado
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, 3)
1: Método da penalidade (padrão ao usar um método direto)
3: Eliminação explícita de DOFs (padrão ao usar um método iterativo)
O método MPC-CG (2) foi removido. Se 2 for especificado, um aviso será emitido e o método padrão será usado.
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
RECOMPUTE_RESIDUAL = Frequência de recálculo do vetor de resíduo
Válido somente quando CG, BiCGSTAB, GPBiCG ou PipeCG é especificado para METHOD
O período de recálculo do GroppCG é fixado em 50; esta configuração não é usada
Os métodos iterativos atualizam o vetor de resíduo por uma relação de recorrência, acumulando erros de arredondamento
A cada intervalo de iterações especificado, o vetor de resíduo é recalculado a partir de {b}-[A]{x}
Quando 0 é especificado, usa-se o valor padrão de cada método (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Quando um valor negativo é especificado, não é realizado recálculo periódico
O recálculo para confirmar a convergência quando o critério de convergência é satisfeito é sempre realizado, independentemente deste parâmetro
Um intervalo curto demais não só aumenta o número de produtos matriz-vetor,
como também pode piorar a convergência ou até impedir que ela seja alcançada
Se o valor padrão for alterado, verifique o histórico de convergência e o resíduo relativo final
METHOD2 = Método de solução secundário (BiCGSTAB, GMRES, GPBiCG) (experimental)
Válido somente quando CG, PipeCG ou GroppCG é especificado em METHOD
Se o método especificado por METHOD divergir, o método é alternado automaticamente e o sistema é resolvido
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 **
| Variável | Tipo | Descrição |
|---|---|---|
| NITER | I | Número de iterações (padrão: 100) |
| iterPREmax | I | Número de iterações do pré-condicionamento Additive Schwarz (padrão: 1) (Valor recomendado: 1; 2 pode ser eficaz em alguns cálculos paralelos) |
| NREST | I | Tamanho do subespaço 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 pré-condicionador são reutilizadas (padrão: 3) (Válido somente em análise não linear) |
| Variável | Tipo | Descrição |
|---|---|---|
| RESID | R | Tolerância de convergência (padrão: 1.0e-8) |
| SIGMA_DIAG | R | Fator aplicado às entradas diagonais no cálculo da matriz de pré-condicionamento (padrão: 1.0) (Se ocorrer divisão por zero ou divergência com pré-condicionamento ILU, definir um valor maior que 1.0 pode permitir resolver o problema) (Válido somente para pré-condicionamento ILU e por escalonamento diagonal. O pré-condicionamento SSOR usa OMEGA.) |
| OMEGA | R | Parâmetro de relaxação do pré-condicionamento SSOR (padrão: 1.0) (O valor 1.0 coincide com o pré-condicionamento SSOR convencional) (A faixa válida é maior que 0 e menor que 2. Valores fora da faixa e valores cuja diferença para 0 ou 2 seja menor que o épsilon de máquina são tratados como 1.0.) |
Quando PRECOND=5 (opcional)¶
Se for especificado para PRECOND um valor que não seja 5 nem 22, a 4ª linha será ignorada.
| Variável | Tipo | 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) |
Quando PRECOND=22 (opcional)¶
Se for especificado para PRECOND um valor diferente de 22, a 5ª linha será ignorada. A 4ª e a 5ª linhas podem ser omitidas por completo, e também é possível omitir os itens finais de qualquer uma delas. O valor padrão será usado para qualquer item especificado como 0.
Os itens 1 a 7 da 4ª linha são dispostos na mesma ordem da linha de opções de PRECOND=5 (ML), portanto a linha de opções do ML pode ser reutilizada sem alterações. Os itens 8 a 10 são específicos do SA-AMG.
(4ª linha) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (não utilizado), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (não utilizado)
| Variável | Tipo | Descrição |
|---|---|---|
| SA_CoarseSolver | I | Solver da malha grossa (0: automático, 1: usar smoother, 2: método direto para matriz densa, 3: MUMPS (método direto paralelo)) (padrão: 0) (No modo automático, MUMPS é usado em compilações com MUMPS habilitado; caso contrário, usa-se o método direto para matriz densa) |
| SA_Smoother | I | Smoother (0 ou 1: Chebyshev) (padrão: 0) (Somente Chebyshev é suportado. Se outro valor for especificado, um aviso será gerado e Chebyshev será usado) |
| SA_MGCycle | I | Ciclo multigrid (0: padrão (ciclo W), 1: ciclo V, 2: ciclo W) (padrão: 0) (O ciclo Full-V não é suportado) |
| SA_MaxLevels | I | Número máximo de níveis (padrão: 20) |
| (não utilizado) | I | Posição correspondente ao esquema de coarsening do ML. Como o SA-AMG sempre usa agregação desacoplada, um valor diferente de 0 gera um aviso e é ignorado |
| SA_ChebyDegree | I | Grau do polinômio do smoother de Chebyshev (padrão: 2) |
| SA_CoarseSize | I | Tamanho de corte da malha grossa (padrão: 50000 quando MUMPS é usado como solver da malha grossa; caso contrário, 100) |
| SA_MaxAggSize | I | Tamanho máximo do agregado (padrão: 96) |
| SA_GalerkinLowMem | I | Método de cálculo da matriz da malha grossa (0: normal (prioriza a velocidade), valor positivo: economia de memória) (padrão: 0) (Especifique um valor positivo se a memória for insuficiente durante a configuração) |
| (não utilizado) | I | Reservado para extensões futuras |
A 5ª linha é específica do SA-AMG e não é lida pelo ML.
(5ª linha) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Variável | Tipo | Descrição |
|---|---|---|
| SA_Theta | R | Limiar para determinar conexões fortes (padrão: 0.0) (Com 0.0, a estrutura não nula da matriz é usada diretamente como grafo) |
| SA_ChebyAlpha | R | Razão que determina o limite inferior do intervalo de autovalores considerado pelo smoother de Chebyshev (padrão: 20.0) |
| SA_Safety | R | Fator de segurança aplicado ao autovalor máximo estimado (padrão: 1.1) |
| SA_TaperK | R | Coeficiente K de atenuação do coarsening (padrão: 100) (A partir do nível 2, o coarsening se torna mais gradual para que permaneçam pelo menos aproximadamente K agregados. Um valor negativo desabilita a atenuação) |
| SA_AggOrder | R | Ordem de varredura da agregação (0: padrão (ordem BFS), 1: ordem BFS, 2: ordem de hash dos números dos nós (experimental), 3: ordem crescente do grau (experimental), 4: ordem decrescente do grau (experimental), valor negativo: ordem por número do nó) (padrão: 0) |
| SA_MinAggSize | R | Tamanho mínimo do agregado (padrão: 3) |
| SA_Verify | R | Se deve ser executada uma autoverificação durante a configuração (0: não, valor positivo: sim) (padrão: 0) (principalmente para depuração) |
| SA_DumpVTK | R | Se a agregação do nível mais alto deve ser gerada em formato VTK (0: sem saída, valor positivo: saída) (padrão: 0) (principalmente para depuração) |
Exemplo¶
Usar CG com pré-condicionamento SSOR e definir o número máximo de iterações como 10000 e a tolerância de convergência como 1.0e-8
Usar GMRES com pré-condicionamento SSOR e definir o tamanho do subespaço de Krylov como 40 e o número-alvo de cores para ordenação multicolor como 100
Usar CG com pré-condicionamento ILU(0) e definir como 1.1 o fator de escala aplicado às entradas diagonais ao calcular a matriz de pré-condicionamento
Usar AMG por ML como pré-condicionador do CG
Usar AMG por ML como pré-condicionador do CG e MUMPS como solver da malha grossa (para problemas difíceis)
Usar AMG por ML como pré-condicionador do CG e ciclo W como ciclo multigrid (para problemas difíceis)
Usar AMG por ML como pré-condicionador 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)
Usar o SA-AMG integrado ao HEC-MW como pré-condicionador do CG
Usar SA-AMG como pré-condicionador do CG e MUMPS como solver da malha grossa
Em uma análise de contato com atrito, usar BiCGSTAB com pré-condicionamento SA-AMG e gerar a hierarquia do pré-condicionador AMG