Bearing : Pressure Distribution in a Journal Bearing


  • Neculai Andrei, Nonlinear Optimization Applications Using the GAMS Technology,Springer Optimization and Its Applications, Model Bearing (5.26) in chapter Applications of Mechanical Engineering , 2013

Category : GAMS NOA library

Mainfile : bearing.gms

Given the eccentricity e of the journal bearing, find the pressure
distribution in the lubricant separating the shaft from the bearing.

This model is from the COPS benchmarking suite.

The number of internal grid points can be specified using the command
line parameters --nx and --ny.

COPS performance tests have been reported for
nx-1 = 50, ny-1 = 25, 50, 75, 100
Dolan, E D, and More, J J, Benchmarking Optimization Software with COPS.
Tech. rep., Mathematics and Computer Science Division, 2000.

Capriz, G, and Cimatti, G, Free Boundary Problems in the Theory of
Hydrodynamic Lubrication: A Survey.
In Fasano, A, and Primicerio, M, Eds, Resarch Notes in Mathematics.
Pitman, 1983, pp. 613-635.

Averick, B M, Carter, R G, More, J J, and Xue, G L, The MINPACK-2 Test
Problem Collection.
Tech. rep., Mathematics and Computer Science Division,
Argonne National Laboratory, 1992.

$if not set nx $set nx 100
$if not set ny $set ny 100

Set nx / 0*%nx% /
    ny / 0*%ny% /

alias (nx,i),(ny,j);

Scalar pi
       b "grid is (0,2*pi)x(0,2*b)"  /10/
       e eccentricity                /0.1/
       hx, hy grid spacing
       area area of triangle;

pi = 2*arctan(inf);
hx = 2*pi/%nx%;
hy = 2*b/%ny%;
area = 0.5*hx*hy;

Parameter wq(nx);

wq(nx) = power(1+e*cos((ord(nx)-1)*hx),3);

Positive variable v(nx,ny);
Variable obj;

Equation defobj Objective function;

defobj.. obj =e= (hx*hy/12)*sum{(nx(i+1),ny(j+1)),
     (sqr((v[i+1,j]-v[i,j])/hx) + sqr((v[i,j+1]-v[i,j])/hy))}+
     (hx*hy/12)*sum{(nx(i+1),ny(j+1)), (2*wq[i+1]+2*wq[i])*
     (sqr((v[i,j+1]-v[i+1,j+1])/hx) +
     sqr((v[i+1,j]-v[i+1,j+1])/hy))} -
     hx*hy*sum {(nx,ny), e*sin((ord(nx)-1)*hx)*v[nx,ny]};

* Starting point
v.l[nx,ny] = max(sin((ord(nx)-1)*hx),0);

v.fx[nx, '0'] = 0;
v.fx[nx,'%ny%'] = 0;
v.fx[ '0',ny] = 0;

v.fx['%nx%',ny] = 0;

model bearing /all/;

$iftheni x%mode%==xbook
$onecho >minos.opt
  superbasic limit 5000

$onecho >bench.opt
  solvers conopt knitro minos.1

option nlp=bench;

solve bearing minimizing obj using nlp;

$iftheni x%mode%==xbook
file rez /bearing.dat/
put rez;
loop(i, loop(j, put v.l(i,j):6:2); put/;);put/;

* End bearing