Ir para o conteúdo

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 **

(2.ª linha) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
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)
(3.ª linha) RESID, SIGMA_DIAG, OMEGA
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

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

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

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

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

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

Utilizar AMG por ML como pré-condicionador para CG

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

Utilizar AMG por ML como pré-condicionador para CG e utilizar MUMPS como solver da malha grosseira (para problemas difíceis)

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

Utilizar AMG por ML como pré-condicionador para CG e utilizar o 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

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)

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

Utilizar o SA-AMG integrado no HEC-MW como pré-condicionador para CG

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

Utilizar SA-AMG como pré-condicionador para CG e MUMPS como solver da malha grosseira

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

Numa análise de contacto com atrito, utilizar BiCGSTAB com pré-condicionamento SA-AMG e produzir a hierarquia do pré-condicionador AMG

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