Scippy

SCIP

Solving Constraint Integer Programs

spring.c File Reference

Detailed Description

Coil Compression Spring Design model.

Author
Stefan Vigerske

This example shows how to setup quadratic and nonlinear constraints in SCIP when using SCIP as callable library. The example implements a model for the design of a coil compression spring as it can be found in the GAMS model library: https://www.gams.com/latest/gamslib_ml/libhtml/gamslib_spring.html

The task is to find a minimum volume of a wire for the production of a coil compression spring.

Original model source:

E. Sangren
Nonlinear Integer and Discrete Programming in Mechanical Design Optimization
Journal of Mechanical Design, Trans. ASME 112 (1990), 223-229

Definition in file spring.c.

#include <stdio.h>
#include <math.h>
#include "scip/scip.h"
#include "scip/scipdefplugins.h"

Go to the source code of this file.

Macros

#define nwires   11
 

Functions

static SCIP_RETCODE setupProblem (SCIP *scip)
 
static SCIP_RETCODE runSpring (void)
 
int main (int argc, char **argv)
 

Variables

static const SCIP_Real diameters [] = { 0.207, 0.225, 0.244, 0.263, 0.283, 0.307, 0.331, 0.362, 0.394, 0.4375, 0.500 }
 
static const SCIP_Real preload = 300
 
static const SCIP_Real maxworkload = 1000
 
static const SCIP_Real maxdeflect = 6
 
static const SCIP_Real deflectpreload = 1.25
 
static const SCIP_Real maxfreelen = 14.0
 
static const SCIP_Real maxcoildiam = 3.0
 
static const SCIP_Real maxshearstress = 189000.0
 
static const SCIP_Real shearmod = 11500000.0
 

Macro Definition Documentation

◆ nwires

#define nwires   11

number of possible wire types

Definition at line 61 of file spring.c.

Function Documentation

◆ setupProblem()

◆ runSpring()

◆ main()

int main ( int  argc,
char **  argv 
)

main method starting SCIP

Parameters
argcnumber of arguments from the shell
argvarray of shell arguments

Definition at line 467 of file spring.c.

References runSpring(), SCIP_OKAY, and SCIPprintError().

Variable Documentation

◆ diameters

const SCIP_Real diameters[] = { 0.207, 0.225, 0.244, 0.263, 0.283, 0.307, 0.331, 0.362, 0.394, 0.4375, 0.500 }
static

diameters of available diameters (in)

Definition at line 64 of file spring.c.

Referenced by setupProblem().

◆ preload

const SCIP_Real preload = 300
static

preload (lb)

Definition at line 67 of file spring.c.

Referenced by setupProblem().

◆ maxworkload

const SCIP_Real maxworkload = 1000
static

maximal working load (lb)

Definition at line 70 of file spring.c.

Referenced by setupProblem().

◆ maxdeflect

const SCIP_Real maxdeflect = 6
static

maximal deflection (in)

Definition at line 73 of file spring.c.

Referenced by setupProblem().

◆ deflectpreload

const SCIP_Real deflectpreload = 1.25
static

deflection from preload (in)

Definition at line 76 of file spring.c.

Referenced by setupProblem().

◆ maxfreelen

const SCIP_Real maxfreelen = 14.0
static

maximal free length of spring (in)

Definition at line 79 of file spring.c.

Referenced by setupProblem().

◆ maxcoildiam

const SCIP_Real maxcoildiam = 3.0
static

maximal coil diameter (in)

Definition at line 82 of file spring.c.

Referenced by setupProblem().

◆ maxshearstress

const SCIP_Real maxshearstress = 189000.0
static

maximal shear stress

Definition at line 85 of file spring.c.

Referenced by setupProblem().

◆ shearmod

const SCIP_Real shearmod = 11500000.0
static

shear modulus of material

Definition at line 88 of file spring.c.

Referenced by setupProblem().