Skip to content

A C++ tool that converts heater states (e.g. from a logfile) to a trajectory.

License

Notifications You must be signed in to change notification settings

kombinatorix/im-trajectory-model

 
 

Repository files navigation

IMtrajectoryModel

Build Status

A tool that converts heater state changes of a maneuverable melting probe to a trajectory.

The heater state changes can be provided by two possible input files, namely a logfile and a simplified logfile. An example for a logfile is given by test/logfile/icemole_state.log. Examples for simplified logfiles can be found in test/simplifiedLogfile/.

Geo Fluid Dynamics - A research group at RWTH Aachen University
Author: K. Schüller schueller@aices.rwth-aachen.de

Dependencies

Getting Started

To build IMtrajectoryModel, create a build folder in the root directory

mkdir build
cd build

Then execute

cmake ..
make

To make sure that everything works as expected, you can run the tests by

make test

Run

./IMtrajectoryModel -h

to see all possible input options. In order to use IMtrajectoryModel to calculate a melting trajectory from an IceMole logfile you can run

./IMtrajectoryModel -l LOGFILE -i INPUTFILE -o OUTPUTFILE

in which LOGFILE is the location of the logfile that contains the heater states, INPUTFILE the location of the input file (e.g. inputs.ini) and OUTPUTFILE is the location where to save the melting trajectory.

Coordinate System (COS)

Melting Probe COS (local COS)

The IDs of the heating cartridges in the melting head and wall heaters are used to define the melting probe COS as shown in the following schematic (note that the viewer looks from the back of the melting probe to the melting direction)

IMschematic

Ice COS (global COS)

The global COS (x-, y- and z-direction) is connected to the melting probe COS by the initial normal vector n_0 and the initial tangent vector t_0, which can be set by the user. By default n_0=(1,0,0) and t_0=(0,0,-1), which means that the local coordinates X and Y are aligned to the gloabal coordinates x and y. Further examples:

  • n_0=(-1,0,0),t_0=(0,0,-1): X aligns with -x, Y aligns -y
  • n_0=(0,1,0),t_0=(0,0,-1): X aligns with y, Y aligns -x
  • n_0=(0,0,1),t_0=(1,0,0): X aligns with z, Y aligns y

Heater States

Heater Name Position in heater state array
Head Heater 1 1
Head Heater 2 2
Head Heater 3 3
Head Heater 4 4
Head Heater 5 5
Head Heater 6 6
Head Heater 7 7
Head Heater 8 8
Head Heater 9 9
Head Heater 10 10
Head Heater 11 11
Head Heater 12 12
Head Heater 13 13
Head Heater 14 14
Head Heater 15 15
Head Heater 16 16
Wall Heater 1 17
Wall Heater 2 18
Wall Heater 3 19
Wall Heater 4 20
Wall Heater 5 21
Wall Heater 6 22
Wall Heater 7 23
Wall Heater 8 24

Postprocessing

The trajectory given in the output file after successful execution of IMtrajectoryModel is given by

time px py pz tx ty tz nx ny nz distance
0 px_0 py_0 pz_0 tx_0 ty_0 tz_0 nx_0 ny_0 nz_0 0
... ... ... ... ... ... ... ... ... ... ...

in which
time is the time in seconds strating from 0
px, py, pz is the position in meter
tx, ty, tz is the tangential vector of the trajectory in meter
nx, ny, nz is the normal vector of the trajectory in meter
length is the total molten length (arc length) of the trajectory

Miscellaneous

  • tau is the torsion, given in rad/m. With defining tau, the user can set the rotation around the melting probes' main axis. E.g. if the melting probe should rotate 180° every 2 meter, tau is simply pi/(2 m).
  • If computing time is an issue, the user can prevent calculating the arc length of the trajectory using the --distance option with the value 0. The resulting output will still contain the column distance but with all values set to -1.

Limitations/Problems

  • The normal and tangent vectors in the output file may flip. This is because they describe the trajectory and not the orientation of the melting probe. Currently there is no information about the melting probe orientation.

About

A C++ tool that converts heater states (e.g. from a logfile) to a trajectory.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 97.9%
  • CMake 1.7%
  • MATLAB 0.4%