Saturday, 31 December 2011

***** HAPPY NEW YEAR *******

Have decided what the next project on my road to recovery will be!

We have absolutely loads of Excel spreadsheets being created at our place with no proper control or checking on what is being done. Some of these things contain serious mathematical calculations - though the creators I am sure are not conscious they are producing such complex models.

So - what to do about it?

Look to convert some of these into a more controlled and structured environment. For big maths code that means Fortran in my world.

So that's my next project - first need to identify a sheet to check out feasibility of doing this!!

***** HAPPY NEW YEAR *******

Saturday, 24 December 2011

The final countdown.

All is complete and revival well underway.

Though the journey so far has been more about physics than Fortran!

A set of reports on the code have been produced covering;

1 Functional flowcharts of the routines - took a lot of time this one.

2 A data model - trace of the main parameters used in calculations back to the input screens and files - slog.

3 A report on future maintenance of the code - all things uncovered during the analysis included here.

4 A position paper detailing the calculation scheme usedand an initial assessment of the mathematical models used - mind bending.

The assessments have covered detailing  the main vessel movement forces;

FSPRING – buoyancy forces
ADDMAS – surrounding fluid resistance forces
FRCHULL – hull related forces
FRCPROP – propeller forces
FRCRUD – rudder related forces
FRCTHRU – thruster related forces

The basis for each of these forces has been outlined and referenced to experimental parameterisations have been made where possible. 

Flowcharts and data models for other forces have also related to;

FRCTUG – tug forces
FRCBANKSUCTION – bank interaction (suction) forces
FRCBLOCKING – forces related to navigation in a channel
FRCWIND – wind related forces
FRCWAV – wave related forces
FRCSLOWVAR DRIFT – slowly varying wave drift related forces
FRCLINE – mooring line related forces
FRCFENDER – fender related forces
FRCDBLFENDER – multiple fender related forces
FRCANCHOR – anchor related forces
FRCCHAINS – chain related forces
FRCWLEVGRAD – wave level gradient forces
PASSSHIP – passing ship forces
FRCWAVE – added wave forces
FRCWSIG – wave timeseries related forces
FRCCONV -  wave frequency convolution related forces

So. Not bad going for a few months work - thoroughly enjoyed it in a strange sort of way!!!

Not sure what happens next.....Merry Christmas and Happy New Year ;-)

Saturday, 17 December 2011

How it works.....very simple.....and clever!

DIVPAG solves an initial-value problem for ordinary differential equations using the ABM ODE solver method described previously.

Illustration of how the predictor - corrector ODE solver moves forward in a timestep. Values in the XX vector (only one element or vector illustrated) are interpolated to give an estimate of the XX element at the current time-step (prediction). The XX vector is then also used to calculate, along with the associated forces on the vessel, the corresponding rates of change of the XX values (DXDT). Integration of the DXDT values then produces a corresponding value at the current time-step (the correction). If the predicted and corrected values lie within a tolerance level then the solution moves forward in time. If they do not agree a the solver reduces the time-step and recalculates. This process is continued until there is agreement between the predicted and corrected values.

Almost there now.

Saturday, 10 December 2011

The heart of the matter.....

To illustrate how the Fortran code operates an overview of the differential equation solution mechanism used by the code is outlined below. This solution mechanism uses standard IMSL (International Mathematics and Statistics Library) functions to solve the equations of motions for the vessel under study both in navigation and mooring modes.

Two IMSL functions are at the core of the code, these are;

ñ     DIVPAG (Double precision IVPAG routine) which uses a predictor-corrector or Adams-Bashforth-Moulton method to solve the set of ODE's (Ordinary Differential Equations) that are used to calculate the vessel's various position and velocity parameters.
ñ     DLSLRG (Double precision LSLRG routine) which is used to solve the linear set of equations  for the various forces acting on the vessel using the equation set F =ma

Integration time-frame for ODE solution from
time T to TEND

DIVPAG called to determine solution of the 
XX system vector between T and TEND

DIVPAG uses FCMANVR to calculate derivatives of 
XX which it stores in DXDT vector at intermediate time-step 't'

FCMANVR combines all vessel forces and uses DLSLRG 
to solve F=ma for velocity components at intermediate time 't'

DIVPAG moves solution forward from T to TEND
 through intermediate time-steps 't'

Return to STEP 1

A familiar set of procedures at last - continuing the journey!

Saturday, 3 December 2011

A point of reference....

Yet another mind boggling complication has raised its head!

What reference system should be used for evaluation of the ship equations of motion? Sounds like a fairly simple question - until I started to unpick the various force equations - we have....

1 The Earth coordinate system (x, y, z) easy enough,
2 The ship coordinate system (x, y, z) relative to the centre of gravity of the ship, OK understand that too,
3 The ship coordinate system (x, y, z) relative to the centre of 'floatation' of the ship, bit more mind boggling this one - how do you determine the CoF - complex stuff,
4 The ship rotating coordinate system (yaw, pitch, heave) - phew,

There are probably others but I lost the will to live - translating between this lot has got to cause some problems - carrying on trucking!