Translation update pending
The Portuguese translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.
!SOLVER¶
Controlo do solver
Dados de controlo 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 contacto (apenas processamento série) (atualmente indisponível)
DIRECTmkl : Método direto que utiliza Intel MKL
MUMPS : Método direto que utiliza MUMPS
Quando é selecionado um método direto, 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 : Escalamento diagonal (por blocos)
5 : AMG que utiliza o pacote de pré-condicionamento multigrid ML
10 : ILU(0) por blocos
11 : ILU(1) por blocos
12 : ILU(2) por blocos
22 : AMG que utiliza o SA-AMG integrado no HEC-MW (AMG por agregação suavizada)
10, 11 e 12 estão disponíveis apenas para problemas com 3 graus de liberdade
22 está disponível apenas em compilações com LAPACK ativado
Para paralelismo por threads com OpenMP, recomendam-se SSOR, escalonamento diagonal, ML, SA-AMG,
ou ILU por blocos (10, 11, 12) para problemas com 3 graus de liberdade
ITERLOG = Indica se deve produzir o histórico de convergência do solver iterativo (YES/NO)(Predefinição: NO)
TIMELOG = Indica se deve produzir o tempo de cálculo do solver (YES/NO/VERBOSE)(Predefinição: NO)
LOGLEVEL = Nível de saída das informações de diagnóstico do pré-condicionador (inteiro)(Predefinição: sem saída)
Especificado independentemente de ITERLOG e TIMELOG
Com um valor igual ou superior a 1, produz a estrutura hierárquica e outras informações dos pré-condicionadores AMG (PRECOND=5,22)
Com um valor igual ou superior a 2, produz informações mais detalhadas (como a utilização de memória)
USEJAD = Indica se deve utilizar ordenação para processadores vetoriais (YES/NO)(Predefinição: NO)
Válido apenas quando é utilizado um método iterativo
SCALING = Indica se deve escalar a matriz para que os termos diagonais sejam 1 (YES/NO)(Predefinição: NO)
Válido apenas quando é utilizado um método iterativo num problema com 3 graus de liberdade
DUMPTYPE = Formato de dump da matriz (NONE, MM, CSR, BSR) (principalmente para depuração)
NONE : Não efetuar dump (Predefinição)
MM : Formato Matrix Market
CSR : Formato Compressed Sparse Row (CSR)
BSR : Formato CSR por blocos
DUMPEXIT = Termina o programa imediatamente após o dump da matriz (YES/NO)(Predefinição: NO)
MPCMETHOD = Método para tratar restrições multiponto (1, 3)
1: Método da penalização (Predefinição quando é utilizado um método direto)
3: Eliminação explícita de graus de liberdade (Predefinição quando é utilizado um método iterativo)
O método MPC-CG (2) foi removido. Se for especificado 2, é emitido um aviso e utiliza-se o método predefinido.
ESTCOND = Frequência da estimativa do número de condição (experimental)
Estima o número de condição em cada intervalo de iterações especificado e no fim das iterações
Não é efetuada qualquer estimativa quando é especificado 0
RECOMPUTE_RESIDUAL = Frequência de recálculo do vetor de resíduos
Válido apenas quando CG, BiCGSTAB, GPBiCG ou PipeCG é especificado para METHOD
O período de recálculo do GroppCG é fixado em 50; esta definição não é utilizada
Os métodos iterativos atualizam o vetor de resíduos através de uma relação de recorrência, acumulando erros de arredondamento
Em cada intervalo de iterações especificado, o vetor de resíduos é recalculado a partir de {b}-[A]{x}
Quando é especificado 0, é utilizada a predefinição de cada método (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Quando é especificado um valor negativo, não é efetuado qualquer recálculo periódico
O recálculo para confirmar a convergência quando o critério de convergência é satisfeito é sempre efetuado, independentemente deste parâmetro
Um intervalo demasiado curto não só aumenta o número de produtos matriz-vetor,
como também pode degradar a convergência ou mesmo impedir que seja atingida
Se a predefinição for alterada, 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 apenas quando CG, PipeCG ou GroppCG é especificado em METHOD
Se o método especificado por METHOD divergir, é efetuada automaticamente a mudança de método e a resolução
São utilizados os mesmos valores para os restantes parâmetros e linhas de dados
CONTACT_ELIM = Especifica se é efetuada a eliminação de graus de liberdade na análise de contacto (0,1)
0: Efetuar a eliminação de graus de liberdade apenas quando é utilizado um método iterativo (Predefinição)
1: Efetuar sempre a eliminação de graus de liberdade (incluindo quando é utilizado um método direto)
** 2.ª linha e seguintes **
| Variável | Tipo | Descrição |
|---|---|---|
| NITER | I | Número de iterações (Predefinição: 100) |
| iterPREmax | I | Número de iterações do pré-condicionamento Additive Schwarz (Predefinição: 1) (Valor recomendado: 1; 2 pode ser eficaz em alguns cálculos paralelos) |
| NREST | I | Dimensão do subespaço de Krylov (Predefinição: 10) (Válido apenas quando GMRES é selecionado como método de solução) |
| NCOLOR_IN | I | Número de cores pretendido para a ordenação multicolor (Predefinição: 10) (Válido apenas quando o número de threads OpenMP é 2 ou superior) |
| RECYCLEPRE | I | Número de vezes que a informação de configuração do pré-condicionador é reutilizada (Predefinição: 3) (Válido apenas em análise não linear) |
| Variável | Tipo | Descrição |
|---|---|---|
| RESID | R | Erro de truncatura (Predefinição: 1.0e-8) |
| SIGMA_DIAG | R | Fator aplicado às entradas diagonais ao calcular a matriz de pré-condicionamento (predefinição: 1.0) (Se ocorrer divisão por zero ou divergência com pré-condicionamento ILU, definir um valor superior a 1.0 pode permitir resolver o problema) (Válido apenas para pré-condicionamento ILU e por escalonamento diagonal. O pré-condicionamento SSOR utiliza OMEGA.) |
| OMEGA | R | Parâmetro de relaxação do pré-condicionamento SSOR (predefinição: 1.0) (O valor 1.0 coincide com o pré-condicionamento SSOR convencional) (O intervalo válido é superior a 0 e inferior a 2. Valores fora do intervalo e valores cuja diferença para 0 ou 2 seja inferior ao é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 é ignorada.
(4.ª linha) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
| Variável | Tipo | Descrição |
|---|---|---|
| ML_CoarseSolver | I | Solver da malha grosseira para ML (1: utilizar smoother, 2: KLU (método direto série), 3: MUMPS (método direto paralelo)) (Predefinição: 1) (Recomendado: 3 ou 2 para problemas difíceis, 1 para problemas comuns) |
| ML_Smoother | I | Smoother de ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (Predefinição: 1) (Recomendado: 1) |
| ML_MGCycle | I | Ciclo multigrid de ML (1: ciclo V, 2: ciclo W, 3: ciclo Full-V) (Predefinição: 1) (Recomendado: 2 para problemas difíceis, 1 para problemas comuns) |
| ML_MaxLevels | I | Número máximo de níveis de ML (Predefinição: 10) (Para problemas particularmente difíceis, utilize um solver direto na malha grosseira e 2 níveis (ou 3 se a memória for insuficiente); para problemas comuns, recomenda-se 10) |
| ML_CoarseningScheme | I | Esquema de coarsening de ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (Predefinição: 1) (Recomendado: 1 ou 5) |
| ML_NumSweep | I | Número de sweeps do smoother de ML (grau do polinómio para Chebyshev) (Predefiniçã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 é ignorada. A 4.ª e a 5.ª linhas podem ser integralmente omitidas, e também podem ser omitidos os itens finais de qualquer uma delas. É utilizada a predefinição para qualquer item especificado como 0.
Os itens 1 a 7 da 4.ª linha estão dispostos pela mesma ordem que a linha de opções de PRECOND=5 (ML), pelo que a linha de opções de ML pode ser reutilizada sem alterações. Os itens 8 a 10 são específicos de 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 grosseira (0: automático, 1: utilizar smoother, 2: método direto de matriz densa, 3: MUMPS (método direto paralelo)) (Predefinição: 0) (No modo automático, MUMPS é utilizado nas compilações com MUMPS ativado; caso contrário, é utilizado o método direto de matriz densa) |
| SA_Smoother | I | Smoother (0 ou 1: Chebyshev) (Predefinição: 0) (Apenas Chebyshev é suportado. Se for especificado outro valor, é emitido um aviso e é utilizado Chebyshev) |
| SA_MGCycle | I | Ciclo multigrid (0: predefinição (ciclo W), 1: ciclo V, 2: ciclo W) (Predefinição: 0) (O ciclo Full-V não é suportado) |
| SA_MaxLevels | I | Número máximo de níveis (Predefinição: 20) |
| (não utilizado) | I | Posição correspondente ao esquema de coarsening de ML. Como SA-AMG utiliza sempre agregação não acoplada, um valor diferente de 0 origina um aviso e é ignorado |
| SA_ChebyDegree | I | Grau do polinómio do smoother de Chebyshev (Predefinição: 2) |
| SA_CoarseSize | I | Tamanho de corte da malha grosseira (Predefinição: 50000 quando MUMPS é utilizado como solver da malha grosseira; caso contrário, 100) |
| SA_MaxAggSize | I | Tamanho máximo do agregado (Predefinição: 96) |
| SA_GalerkinLowMem | I | Modo de cálculo da matriz da malha grosseira (0: normal (prioridade à velocidade), valor positivo: poupança de memória) (Predefiniçã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 de SA-AMG e não é lida por 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 ligações fortes (Predefinição: 0.0) (Com 0.0, a estrutura não nula da matriz é utilizada diretamente como grafo) |
| SA_ChebyAlpha | R | Rácio que determina o limite inferior do intervalo de valores próprios visado pelo smoother de Chebyshev (Predefinição: 20.0) |
| SA_Safety | R | Fator de segurança aplicado ao valor próprio máximo estimado (Predefinição: 1.1) |
| SA_TaperK | R | Coeficiente K de atenuação do coarsening (Predefinição: 100) (A partir do nível 2, o coarsening torna-se mais gradual para que permaneçam pelo menos aproximadamente K agregados. Um valor negativo desativa a atenuação) |
| SA_AggOrder | R | Ordem de percurso da agregação (0: predefiniçã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ó) (Predefinição: 0) |
| SA_MinAggSize | R | Tamanho mínimo do agregado (Predefinição: 3) |
| SA_Verify | R | Se deve ser executada uma autoverificação durante a configuração (0: não, valor positivo: sim) (Predefinição: 0) (principalmente para depuração) |
| SA_DumpVTK | R | Se a agregação do nível mais elevado deve ser produzida em formato VTK (0: sem saída, valor positivo: saída) (Predefinição: 0) (principalmente para depuração) |
Exemplo¶
Utilizar CG com pré-condicionamento SSOR e definir o número máximo de iterações como 10000 e o erro de truncatura como 1.0e-8
Utilizar GMRES com pré-condicionamento SSOR e definir a dimensão do subespaço de Krylov como 40 e o número de cores pretendido para a ordenação multicolor como 100
Utilizar CG com pré-condicionamento ILU(0) e definir o fator de escala aplicado aos termos diagonais ao calcular a matriz de pré-condicionamento como 1.1
Utilizar AMG por ML como pré-condicionador para CG
Utilizar AMG por ML como pré-condicionador para CG e utilizar MUMPS como solver da malha grosseira (para problemas difíceis)
Utilizar AMG por ML como pré-condicionador para CG e utilizar o ciclo W como ciclo multigrid (para problemas difíceis)
Utilizar AMG por ML como pré-condicionador para CG, utilizar MUMPS como solver da malha grosseira e definir o número máximo de níveis como 2 (para problemas muito difíceis)
Utilizar o SA-AMG integrado no HEC-MW como pré-condicionador para CG
Utilizar SA-AMG como pré-condicionador para CG e MUMPS como solver da malha grosseira
Numa análise de contacto com atrito, utilizar BiCGSTAB com pré-condicionamento SA-AMG e produzir a hierarquia do pré-condicionador AMG