Bearing : Pressure Distribution in a Journal Bearing

Reference

• 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

``````\$ontext
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.
See http://www-unix.mcs.anl.gov/~more/cops/.

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.
\$offtext

\$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)),
(wq[i]+2*wq[i+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
\$offecho
bearing.workspace=125;
bearing.reslim=6000;
\$endif

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/;
\$endif

* End bearing
``````
GAMS Development Corp.
GAMS Software GmbH

General Information and Sales
U.S. (+1) 202 342-0180
Europe: (+49) 221 949-9170