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; }
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; }
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; }
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; }
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; }
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; }
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; }