int frictionContact3D_SOCLCP_setDefaultSolverOptions(SolverOptions* options)
{
  int i;
  if (verbose > 0)
  {
    printf("Set the Default SolverOptions for the SOCLCP Solver\n");
  }

  options->solverId = SICONOS_FRICTION_3D_SOCLCP;
  options->numberOfInternalSolvers = 1;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 8;
  options->dSize = 8;
  options->iparam = (int *)malloc(options->iSize * sizeof(int));
  options->dparam = (double *)malloc(options->dSize * sizeof(double));
  options->dWork = NULL;
  null_SolverOptions(options);
  for (i = 0; i < 8; i++)
  {
    options->iparam[i] = 0;
    options->dparam[i] = 0.0;
  }
  options->iparam[0] = 1000;
  options->dparam[0] = 1e-4;
  options->internalSolvers = (SolverOptions *)malloc(sizeof(SolverOptions));

  soclcp_nsgs_setDefaultSolverOptions(options->internalSolvers);
  options->internalSolvers->iparam[0] =10000;
  return 0;
}
int frictionContact2D_latin_setDefaultSolverOptions(SolverOptions *options)
{
  int i;
  if (verbose > 0)
  {
    printf("Set the Default SolverOptions for the Latin Solver\n");
  }

  /*  strcpy(options->solverName,"Latin");*/
  options->solverId = SICONOS_FRICTION_2D_LATIN;
  options->numberOfInternalSolvers = 0;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 5;
  options->dSize = 5;
  options->iparam = (int *)malloc(options->iSize * sizeof(int));
  options->dparam = (double *)malloc(options->dSize * sizeof(double));
  options->dWork = NULL;
  null_SolverOptions(options);
  for (i = 0; i < 5; i++)
  {
    options->iparam[i] = 0;
    options->dparam[i] = 0.0;
  }
  options->iparam[0] = 1000;
  options->dparam[0] = 1e-4;
  options->dparam[3] = 0.3;
  options ->internalSolvers = NULL;
  return 0;
}
Example #3
0
int fc3d_DeSaxceFixedPoint_setDefaultSolverOptions(SolverOptions* options)
{
  int i;
  if (verbose > 0)
  {
    printf("Set the Default SolverOptions for the DSFP Solver\n");
  }

  /*strcpy(options->solverName,"DSFP");*/
  options->solverId = SICONOS_FRICTION_3D_DSFP;
  options->numberOfInternalSolvers = 0;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 8;
  options->dSize = 8;
  options->iparam = (int *)malloc(options->iSize * sizeof(int));
  options->dparam = (double *)malloc(options->dSize * sizeof(double));
  options->dWork = NULL;
  null_SolverOptions(options);
  for (i = 0; i < 8; i++)
  {
    options->iparam[i] = 0;
    options->dparam[i] = 0.0;
  }
  options->iparam[0] = 20000;
  options->dparam[0] = 1e-3;
  options->dparam[3] = 1.0;

  options->internalSolvers = NULL;

  return 0;
}
Example #4
0
int relay_path_setDefaultSolverOptions(SolverOptions* options)
{
#ifdef HAVE_PATHFERRIS
  //  int i;
  if (verbose > 0)
  {
    printf("Set the Default SolverOptions for the PATH Solver\n");
  }
  /*  strcpy(options->solverName,"PATH");*/
  options->solverId = SICONOS_RELAY_PATH;
  options->numberOfInternalSolvers = 0;
  options->internalSolvers = NULL;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 2;
  options->dSize = 2;
  options->iparam = (int *)malloc(options->iSize * sizeof(int));
  options->dparam = (double *)malloc(options->dSize * sizeof(double));
  options->dWork = NULL;
  null_SolverOptions(options);
  options->dparam[0] = 1e-8;
  options->dparam[1] = 1.0;
#endif /*HAVE_PATHFERRIS*/
  return 0;
}
int variationalInequality_common_setDefaultSolverOptions(SolverOptions* options, int solverId)
{
  int i;
  if (verbose > 0)
  {
    printf("Set the Default SolverOptions for a VI Solver\n");
  }

  options->solverId = solverId;
  options->numberOfInternalSolvers = 0;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 8;
  options->dSize = 8;
  options->iparam = (int *)malloc(options->iSize * sizeof(int));
  options->dparam = (double *)malloc(options->dSize * sizeof(double));
  null_SolverOptions(options);
  for (i = 0; i < 8; i++)
  {
    options->iparam[i] = 0;
    options->dparam[i] = 0.0;
  }
  options->iparam[0] = 1000;
  options->dparam[0] = 1e-10;

  options->internalSolvers = NULL;

  return 0;
}
Example #6
0
int frictionContact2D_enum_setDefaultSolverOptions(SolverOptions* options)
{
  int i;
  if (verbose > 0)
  {
    printf("Set the Default SolverOptions for the Enumerative Solver for FrictionContact2D\n");
  }
  /*  strcpy(options->solverName,"Lemke");*/
  options->solverId = SICONOS_FRICTION_2D_ENUM;
  options->numberOfInternalSolvers = 1;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 5;
  options->dSize = 5;
  options->iparam = (int *)malloc(options->iSize * sizeof(int));
  options->dparam = (double *)malloc(options->dSize * sizeof(double));
  options->dWork = NULL;
  null_SolverOptions(options);
  for (i = 0; i < 5; i++)
  {
    options->iparam[i] = 0;
    options->dparam[i] = 0.0;
  }
  options->dparam[0] = 1e-6;
  options->internalSolvers = (SolverOptions *)malloc(sizeof(SolverOptions));
  LinearComplementarityProblem* problem = NULL;
  linearComplementarity_enum_setDefaultSolverOptions(problem, options->internalSolvers);

  return 0;
}
Example #7
0
int linearComplementarity_nsgs_SBM_setDefaultSolverOptions(SolverOptions* options)
{
  int i;
  if (verbose > 0)
  {
    printf("Set the Default SolverOptions for the NSGS Solver\n");
  }

  options->solverId = SICONOS_LCP_NSGS_SBM;
  options->numberOfInternalSolvers = 1;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 5;
  options->dSize = 5;
  options->iparam = (int *)malloc(options->iSize * sizeof(int));
  options->dparam = (double *)malloc(options->dSize * sizeof(double));
  options->dWork = NULL;
  null_SolverOptions(options);
  for (i = 0; i < 5; i++)
  {
    options->iparam[i] = 0;
    options->dparam[i] = 0.0;
  }
  options->iparam[0] = 1000;
  options->dparam[0] = 1e-6;
  options->internalSolvers = (SolverOptions*)malloc(options->numberOfInternalSolvers * sizeof(SolverOptions));

  return 0;
}
int frictionContact3D_VI_FixedPointProjection_setDefaultSolverOptions(SolverOptions* options)
{
  int i;
  if (verbose > 0)
  {
    printf("Set the Default SolverOptions for the FixedPointProjection Solver\n");
  }

  /*strcpy(options->solverName,"DSFP");*/
  options->solverId = SICONOS_FRICTION_3D_VI_FPP;
  options->numberOfInternalSolvers = 0;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 8;
  options->dSize = 8;
  options->iparam = (int *)malloc(options->iSize * sizeof(int));
  options->dparam = (double *)malloc(options->dSize * sizeof(double));
  options->dWork = NULL;
  null_SolverOptions(options);
  for (i = 0; i < 8; i++)
  {
    options->iparam[i] = 0;
    options->dparam[i] = 0.0;
  }
  options->iparam[0] = 20000;
  options->dparam[0] = 1e-3;
  options->dparam[3] = 1e-3;
  options->dparam[3] = -1.0; // rho is variable by default

  options->internalSolvers = NULL;

  return 0;
}
int frictionContact3D_AlartCurnierNewton_setDefaultSolverOptions(SolverOptions* options)
{
  int i;
  if (verbose > 0)
  {
    printf("Set the Default SolverOptions for the NSGS Solver\n");
  }

  options->solverId = SICONOS_FRICTION_3D_DampedAlartCurnierNewton;
  options->numberOfInternalSolvers = 0;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 5;
  options->dSize = 5;
  options->iparam = (int *)malloc(options->iSize * sizeof(int));
  options->dparam = (double *)malloc(options->dSize * sizeof(double));
  options->dWork = NULL;
  null_SolverOptions(options);
  for (i = 0; i < 5; i++)
  {
    options->iparam[i] = 0;
    options->dparam[i] = 0.0;
  }

  options->iparam[0] = 10;
  options->iparam[1] = 10;
  options->dparam[0] = 1e-16;
  return 0;
}
Example #10
0
int soclcp_VI_ExtraGradient_setDefaultSolverOptions(SolverOptions* options)
{
  int i;
  if (verbose > 0)
  {
    printf("Set the Default SolverOptions for the ExtraGradient Solver\n");
  }

  /*strcpy(options->solverName,"DSFP");*/
  options->solverId = SICONOS_SOCLCP_VI_EG;
  options->numberOfInternalSolvers = 0;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 8;
  options->dSize = 8;
  options->iparam = (int *)malloc(options->iSize * sizeof(int));
  options->dparam = (double *)malloc(options->dSize * sizeof(double));
  options->dWork = NULL;
  null_SolverOptions(options);
  for (i = 0; i < 8; i++)
  {
    options->iparam[i] = 0;
    options->dparam[i] = 0.0;
  }
  options->iparam[0] = 20000;
  options->dparam[0] = 1e-3;
  options->dparam[3] = 1e-3;
  options->dparam[3] = -1.0; // rho is variable by default
  options->internalSolvers = NULL;

  return 0;
}
int frictionContact3D_AlartCurnier_setDefaultSolverOptions(
    SolverOptions* options)
{
    if (verbose > 0)
    {
        printf("Set the default solver options for the LOCALAC Solver\n");
    }

    options->solverId = SICONOS_FRICTION_3D_LOCALAC;
    options->numberOfInternalSolvers = 0;
    options->isSet = 1;
    options->filterOn = 1;
    options->iSize = 14;
    options->dSize = 14;
    options->iparam = (int *) malloc(options->iSize * sizeof(int));
    options->dparam = (double *) malloc(options->dSize * sizeof(double));
    options->dWork = NULL;
    null_SolverOptions(options);
    for (unsigned int i = 0; i < 14; i++)
    {
        options->iparam[i] = 0;
        options->dparam[i] = 0.0;
    }
    options->iparam[0] = 200;
    options->iparam[3] = 100000; /* nzmax*/
    options->iparam[5] = 1;
    options->iparam[7] = 1;      /* erritermax */
    options->dparam[0] = 1e-3;
    options->dparam[3] = 1;      /* default rho */

    options->iparam[8] = -1;     /* mpi com fortran */
    options->iparam[10] = 2;     /* 0 STD AlartCurnier, 1 JeanMoreau, 2 STD generated, 3 JeanMoreau generated */
    options->iparam[11] = 0;     /* 0 GoldsteinPrice line search, 1 FBLSA */
    options->iparam[12] = 100;   /* max iter line search */

#ifdef WITH_MUMPS
    options->iparam[13] = 1;
#else
    options->iparam[13] = 0;     /* Linear solver used at each Newton iteration. 0: cs_lusol, 1 mumps */
#endif

    options->internalSolvers = NULL;

#ifdef HAVE_MPI
    options->solverData = MPI_COMM_NULL;
#endif

    return 0;
}
Example #12
0
void fill_SolverOptions(SolverOptions* options, int solverId, int iSize, int dSize, int iter_max, double tol)
{
  options->solverId = solverId;
  options->numberOfInternalSolvers = 0;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = iSize;
  options->dSize = dSize;
  options->iparam = (int *)calloc(iSize, sizeof(int));
  options->dparam = (double *)calloc(dSize, sizeof(double));
  null_SolverOptions(options);
  /* we set those value, even if they don't make sense. If this is the case,
   * they should be +inf */
  options->iparam[0] = iter_max;
  options->dparam[0] = tol;

}
int fc3d_ProjectedGradientOnCylinder_setDefaultSolverOptions(SolverOptions* options)
{
  int i;
  if (verbose > 0)
  {
    printf("Set the Default SolverOptions for the PGoC Solver\n");
  }

  options->solverId = SICONOS_FRICTION_3D_PGoC;

  options->numberOfInternalSolvers = 0;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 10;
  options->dSize = 10;
  if (options->iparam != NULL)
    free(options->iparam);
  options->iparam = (int *)malloc(options->iSize * sizeof(int));
  if (options->dparam != NULL)
    free(options->dparam);
  options->dparam = (double *)malloc(options->dSize * sizeof(double));
  options->dWork = NULL;
  null_SolverOptions(options);
  for (i = 0; i < 10; i++)
  {
    options->iparam[i] = 0;
    options->dparam[i] = 0.0;
  }
  options->iparam[0] = 20000;
  options->dparam[0] = 1e-6;
  options->dparam[3] = 1e-3;

  if (options->internalSolvers != NULL)
  {
    deleteSolverOptions(options->internalSolvers);
    free(options->internalSolvers);
  }

  options->internalSolvers = NULL;


  return 0;
}
int gfc3d_nonsmooth_Newton_AlartCurnier_setDefaultSolverOptions(
  SolverOptions* options)
{
  if(verbose > 0)
  {
    printf("Set the default solver options for the GLOBAL_AC Solver\n");
  }

  options->solverId = SICONOS_GLOBAL_FRICTION_3D_NSN_AC;
  options->numberOfInternalSolvers = 0;
  options->isSet = 1;
  options->filterOn = 1;
  options->iSize = 14;
  options->dSize = 11;
  options->iparam = (int *) calloc(options->iSize, sizeof(int));
  options->dparam = (double *) calloc(options->dSize,  sizeof(double));
  options->dWork = NULL;
  null_SolverOptions(options);
  options->iparam[0] = 200;    /* input :  itermax */
  options->iparam[1] = 1;      /* output : #iter */
  options->iparam[2] = 0;      /* unused */
  options->iparam[3] = 100000; /* nzmax*/
  options->iparam[4] = 0;      /* unused */
  options->iparam[5] = 1;      /* unused */
  options->iparam[7] = 1;      /* erritermax */
  options->iparam[8] = -1;     /* mpi com fortran */

  options->iparam[9] = 0;      /* > 0 memory is allocated */

  options->iparam[10] = 1;     /* 0 STD AlartCurnier, 1 JeanMoreau, 2 STD generated, 3 JeanMoreau generated */

  options->dparam[0] = 1e-10;


  options->internalSolvers = NULL;

  return 0;
}
int variationalInequality_setDefaultSolverOptions(SolverOptions* options, int solverId)
{
  null_SolverOptions(options);

  int info = -1;
  switch (solverId)
  {
  case SICONOS_VI_EG:
  {
    info =    variationalInequality_ExtraGradient_setDefaultSolverOptions(options);
    break;
  }
  case SICONOS_VI_FPP:
  {
    info =    variationalInequality_FixedPointProjection_setDefaultSolverOptions(options);
    break;
  }
  case SICONOS_VI_HP:
  {
    info =    variationalInequality_HyperplaneProjection_setDefaultSolverOptions(options);
    break;
  }
  case SICONOS_VI_BOX_QI:
  {
    info =    variationalInequality_common_setDefaultSolverOptions(options, solverId);
    break;
  }
  default:
  {
    numericsError("variationalInequality_setDefaultSolverOptions", "Unknown Solver");

  }
  }

  return info;
}
int soclcp_setDefaultSolverOptions(SolverOptions* options, int solverId)
{
    options->iparam = NULL;
    options->dparam = NULL;
    null_SolverOptions(options);

    int info = -1;
    switch(solverId)
    {
    case SICONOS_SOCLCP_NSGS:
    {
        info =    soclcp_nsgs_setDefaultSolverOptions(options);
        break;
    }
    /* case SICONOS_SOCLCP_NSGSV: */
    /* { */
    /*   info =    soclcp_nsgs_velocity_setDefaultSolverOptions(options); */
    /*   break; */
    /* } */
    /* case SICONOS_SOCLCP_*/
    /* { */
    /*   info =    soclcp_proximal_setDefaultSolverOptions(options); */
    /*   break; */
    /* } */
    /* case SICONOS_SOCLCP_TFP: */
    /* { */
    /*   info =    soclcp_TrescaFixedPoint_setDefaultSolverOptions(options); */
    /*   break; */
    /* } */
    /* case SICONOS_SOCLCP_DSFP: */
    /* { */
    /*   info =    soclcp_DeSaxceFixedPoint_setDefaultSolverOptions(options); */
    /*   break; */
    /* } */
    /* case SICONOS_SOCLCP_FPP: */
    /* { */
    /*   info =    soclcp_fixedPointProjection_setDefaultSolverOptions(options); */
    /*   break; */
    /* } */
    /* case SICONOS_SOCLCP_EG: */
    /* { */
    /*   info =    soclcp_ExtraGradient_setDefaultSolverOptions(options); */
    /*   break; */
    /* } */
    case SICONOS_SOCLCP_VI_FPP:
    {
        info =    soclcp_VI_FixedPointProjection_setDefaultSolverOptions(options);
        break;
    }
    case SICONOS_SOCLCP_VI_EG:
    {
        info =    soclcp_VI_ExtraGradient_setDefaultSolverOptions(options);
        break;
    }
    /* case SICONOS_SOCLCP_HP: */
    /* { */
    /*   info =    soclcp_HyperplaneProjection_setDefaultSolverOptions(options); */
    /*   break; */
    /* } */
    /* case SICONOS_SOCLCP_LOCALAC: */
    /* { */
    /*   info =    soclcp_AlartCurnier_setDefaultSolverOptions(options); */
    /*   break; */
    /* } */
    /* case SICONOS_SOCLCP_LOCALFB: */
    /* { */
    /*   info =    soclcp_FischerBurmeister_setDefaultSolverOptions(options); */
    /*   break; */
    /* } */
    /* case SICONOS_SOCLCP_QUARTIC: */
    /* { */
    /*   info =    soclcp_unitary_enumerative_setDefaultSolverOptions(options); */
    /*   break; */
    /* } */
    /* case SICONOS_SOCLCP_QUARTIC_NU: */
    /* { */
    /*   info =    soclcp_unitary_enumerative_setDefaultSolverOptions(options); */
    /*   options->solverId = SICONOS_SOCLCP_QUARTIC_NU; */
    /*   break; */
    /* } */
    default:
    {
        numericsError("soclcp_setDefaultSolverOptions", "Unknown Solver");

    }
    }

    return info;
}