linear_solver{ }#

Calling sequence

currents{ linear_solver{ } }

Properties

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: maximum 1

Dependencies

Functionality

This group allows modifying parameters impacting algorithm of linear equation solver in current equation.

Examples

currents{
    recombination_model{}
    linear_solver{}
}
currents{
    recombination_model{}
    linear_solver{
        extended_accuracy = 1
    }
}

global{
    simulate1D{}
}

Nested keywords


iterations#

Calling sequence

currents{ linear_solver{ iterations } }

Properties

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: integer

  • unit: \(\mathrm{-}\)

  • values: \(z \geq 1\)

  • default: \(z=10000\)

Functionality

Maximum number of iterations allowed in this solver.

Example

currents{
    recombination_model{}
    linear_solver{
        iterations = 50000
    }
}

abs_accuracy#

Calling sequence

currents{ linear_solver{ abs_accuracy } }

Properties

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: real number

  • unit: \(\mathrm{-}\)

  • values: [0.0, ...)

  • default: \(r=1e-30\)

Functionality

—

Example

currents{
    recombination_model{}
    linear_solver{
        abs_accuracy = 1e-32
    }
}

rel_accuracy#

Calling sequence

currents{ linear_solver{ rel_accuracy } }

Properties

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: real number

  • unit: \(\mathrm{-}\)

  • values: \(0.0 \leq r \leq 10^{-6}\)

  • default: \(r=1e-13\)

Functionality

—

Example

currents{
    recombination_model{}
    linear_solver{
        rel_accuracy = 1e-15
    }
}

dkr_value#

Calling sequence

currents{ linear_solver{ dkr_value } }

Properties

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: real number

  • unit: \(\mathrm{-}\)

  • values: \(0.0 \leq r \leq 0.5\)

  • default: \(r=-1.0\)

Functionality

A parameter to speed up calculations, affects preconditioning

Note

Negative values are ignored but will switch to a slightly slower but more stable preconditioning.

Example

currents{
    recombination_model{}
    linear_solver{
        dkr_value = 0.1
    }
}

method#

Added in version 3.0.0.

Calling sequence

currents{ linear_solver{ method = "..." } }

Properties

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: choice

  • values: cg or cscg or bicgstab

  • default: cg (LAPACK for non-perioic 1D simulations)

Functionality

Selects linear solver to be used:

cg: Conjugate Gradient
csgs: Composite Step Conjugate Gradient
bicgstab: Biconjugate Gradient Stabilized Method

Example

currents{
    recombination_model{}
    linear_solver{
        method = bicgstab
    }
}

force_diagonal_preconditioner#

Calling sequence

currents{ linear_solver{ force_diagonal_preconditioner } }

Properties

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: choice

  • values: yes or no

  • default: no

Functionality

Only for debugging purposes, enabling will make code much slower or prevent convergence. Forces the use of a slower but more robust diagonal preconditioner.

This keyword should be used only for debugging purposes. Enabling the diagonal preconditioner makes algorithm much slower or prevent convergence. It can be enabled in case when then default preconditioning fails or the linear solver diverges. In such circumstances, also iterations may require further increasing.

Example

currents{
    recombination_model{}
    linear_solver{
        force_diagonal_preconditioner = yes
    }
}

extended_accuracy#

Calling sequence

currents{ linear_solver{ extended_accuracy } }

Properties

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: integer

  • unit: \(\mathrm{-}\)

  • values: \(z=0\) or \(z=1\)

  • default: \(z=0\)

Functionality

If set to 1, then current equation is solved using slower but more accurate solver. It is only implemented for not periodic 1D simulations.

Warning

This feature is at the prototyping stage and may not bring expected improvements.

Example

currents{
    recombination_model{}
    linear_solver{
        extended_accuracy = 1
    }
}