Esempio n. 1
0
 void WsmpSolverInterface::RegisterOptions(SmartPtr<RegisteredOptions> roptions)
 {
   roptions->AddLowerBoundedIntegerOption(
     "wsmp_num_threads",
     "Number of threads to be used in WSMP",
     1, 1,
     "This determines on how many processors WSMP is running on.  This option "
     "is only available if Ipopt has been compiled with WSMP.");
   roptions->AddBoundedIntegerOption(
     "wsmp_ordering_option",
     "Determines how ordering is done in WSMP",
     -2, 3, 1,
     "This corresponds to the value of WSSMP's IPARM(16).  This option is "
     "only available if Ipopt has been compiled with WSMP.");
   roptions->AddBoundedNumberOption(
     "wsmp_pivtol",
     "Pivot tolerance for the linear solver WSMP.",
     0.0, true, 1.0, true, 1e-4,
     "A smaller number pivots for sparsity, a larger number pivots for "
     "stability.  This option is only available if Ipopt has been compiled "
     "with WSMP.");
   roptions->AddBoundedNumberOption(
     "wsmp_pivtolmax",
     "Maximum pivot tolerance for the linear solver WSMP.",
     0.0, true, 1.0, true, 1e-1,
     "Ipopt may increase pivtol as high as pivtolmax to get a more accurate "
     "solution to the linear system.  This option is only available if Ipopt "
     "has been compiled with WSMP.");
   roptions->AddBoundedIntegerOption(
     "wsmp_scaling",
     "Determines how the matrix is scaled by WSMP.",
     0, 3, 0,
     "This corresponds to the value of WSSMP's IPARM(10). "
     "This option is only available if Ipopt has been compiled "
     "with WSMP.");
   roptions->AddBoundedNumberOption(
     "wsmp_singularity_threshold",
     "WSMP's singularity threshold.",
     0.0, true, 1.0, true, 1e-18,
     "WSMP's DPARM(10) parameter.  The smaller this value the less likely "
     "a matrix is declared singular.  This option is only available if Ipopt "
     "has been compiled with WSMP.");
   roptions->SetRegisteringCategory("Uncategorized");
   roptions->AddLowerBoundedIntegerOption(
     "wsmp_write_matrix_iteration",
     "Iteration in which the matrices are written to files.",
     -1, -1,
     "If non-negative, this option determins the iteration in which all "
     "matrices given to WSMP are written to files.  This option is only "
     "available if Ipopt has been compiled with WSMP.");
 }
 void MumpsSolverInterface::RegisterOptions(SmartPtr<RegisteredOptions> roptions)
 {
   roptions->AddBoundedNumberOption(
     "mumps_pivtol",
     "Pivot tolerance for the linear solver MUMPS.",
     0, false, 1, false, 1e-6,
     "A smaller number pivots for sparsity, a larger number pivots for "
     "stability.  This option is only available if Ipopt has been compiled "
     "with MUMPS.");
   roptions->AddBoundedNumberOption(
     "mumps_pivtolmax",
     "Maximum pivot tolerance for the linear solver MUMPS.",
     0, false, 1, false, 0.1,
     "Ipopt may increase pivtol as high as pivtolmax to get a more accurate "
     "solution to the linear system.  This option is only available if "
     "Ipopt has been compiled with MUMPS.");
   roptions->AddLowerBoundedIntegerOption(
     "mumps_mem_percent",
     "Percentage increase in the estimated working space for MUMPS.",
     0, 1000,
     "In MUMPS when significant extra fill-in is caused by numerical "
     "pivoting, larger values of mumps_mem_percent may help use the "
     "workspace more efficiently.  On the other hand, if memory requirement "
     "are too large at the very beginning of the optimization, choosing a "
     "much smaller value for this option, such as 5, might reduce memory "
     "requirements.");
   roptions->AddBoundedIntegerOption(
     "mumps_permuting_scaling",
     "Controls permuting and scaling in MUMPS",
     0, 7, 7,
     "This is ICNTL(6) in MUMPS.");
   roptions->AddBoundedIntegerOption(
     "mumps_pivot_order",
     "Controls pivot order in MUMPS",
     0, 7, 7,
     "This is ICNTL(7) in MUMPS.");
   roptions->AddBoundedIntegerOption(
     "mumps_scaling",
     "Controls scaling in MUMPS",
     -2, 77, 77,
     "This is ICNTL(8) in MUMPS.");
   roptions->AddNumberOption(
     "mumps_dep_tol",
     "Pivot threshold for detection of linearly dependent constraints in MUMPS.",
     0.0,
     "When MUMPS is used to determine linearly dependent constraints, this "
     "is determines the threshold for a pivot to be considered zero.  This "
     "is CNTL(3) in MUMPS.");
 }
void Ma57TSolverInterface::RegisterOptions(SmartPtr<RegisteredOptions> roptions)
{
    roptions->AddBoundedNumberOption(
        "ma57_pivtol",
        "Pivot tolerance for the linear solver MA57.",
        0.0, true, 1.0, true, 1e-8,
        "A smaller number pivots for sparsity, a larger number pivots for "
        "stability. This option is only available if Ipopt has been compiled "
        "with MA57.");
    roptions->AddBoundedNumberOption(
        "ma57_pivtolmax",
        "Maximum pivot tolerance for the linear solver MA57.",
        0.0, true, 1.0, true, 1e-4,
        "Ipopt may increase pivtol as high as ma57_pivtolmax to get a more "
        "accurate solution to the linear system.  This option is only available "
        "if Ipopt has been compiled with MA57.");
    roptions->AddLowerBoundedNumberOption(
        "ma57_pre_alloc",
        "Safety factor for work space memory allocation for the linear solver MA57.",
        1., false, 1.05,
        "If 1 is chosen, the suggested amount of work space is used.  However, "
        "choosing a larger number might avoid reallocation if the suggest values "
        "do not suffice.  This option is only available if Ipopt has been "
        "compiled with MA57.");
    roptions->AddBoundedIntegerOption(
        "ma57_pivot_order",
        "Controls pivot order in MA57",
        0, 5, 5,
        "This is ICNTL(6) in MA57.");
    roptions->AddStringOption2(
        "ma57_automatic_scaling",
        "Controls MA57 automatic scaling",
        "yes",
        "no", "Do not scale the linear system matrix",
        "yes", "Scale the linear system matrix",
        "This option controls the internal scaling option of MA57."
        "This is ICNTL(15) in MA57.");

    // CET: 04-29-2010
    roptions->AddLowerBoundedIntegerOption(
        "ma57_block_size",
        "Controls block size used by Level 3 BLAS in MA57BD",
        1, 16,
        "This is ICNTL(11) in MA57.");

    roptions->AddLowerBoundedIntegerOption(
        "ma57_node_amalgamation",
        "Node amalgamation parameter",
        1, 16,
        "This is ICNTL(12) in MA57.");

    roptions->AddBoundedIntegerOption(
        "ma57_small_pivot_flag",
        "If set to 1, then when small entries defined by CNTL(2) are detected "
        "they are removed and the corresponding pivots placed at the end of the "
        "factorization.  This can be particularly efficient if the matrix is "
        "highly rank deficient.",
        0, 1, 0,
        "This is ICNTL(16) in MA57.");
    // CET 04-29-2010

}