Motion: POSITION_FILE
The prescribed motion (transient wall boundary condition or position file moving wall) is a capability of nanoFluidX that allows you to prescribe any motion of a moving wall using an input .txt file.
Starting with v2021.2, there are two ways to define an arbitrary motion which are chosen by the isOrientation switch.
For the first option (isOrientation = false), the input .txt file must be of column-format 'time x y z alpha beta gamma', with 'space' as the delimiter between the columns, where the alpha, beta and gamma are components of the rotation vector in units of [rot/s]. Furthermore, the Cartesian coordinates of the first row of the input file must be '0 0 0' which corresponds to the initial position of the Center Of Mass (COM). The rotation vector can have arbitrary values, as long as they are in accordance with the reference velocities.
For the second option (isOrientation = true), the input .txt file must be of column-format 'time x y z phi eta zeta orientation', with 'space' as the delimiter between the columns. The phi, eta and zeta are cosine values of a vector which defines the axis of rotation of the body, and the orientation column is body orientation in [rad].
new_COM_pos = initial_COM_pos + <prescribed motion data>
The rotation vector defines the rotation frequency [rotations per second] as a function of time around the COM. Difference in vector positions, divided by the difference in time will of course determine the wall velocity. If the wall velocity exceeds the reference velocity specified in the configuration file at any point in the simulation, the simulation will stop.
Since it is unlikely that the simulation time will exactly correspond to the time in the input file, the code will automatically linearly interpolate between the prescribed position data.
The start time in the prescribed motion file cannot be smaller than the initial time of the simulation. The standard tstart_prescribe /tend_prescribe can be overlaid on top of the times prescribed in the input file. For example, if the data prescribed in the file goes from t = 0 to t = 10 s, and you set 'tend_prescribe = 5', the prescribed motion will stop at t = 5 s, ignoring the rest of the file. 'tstart_prescribe' can be used in a similar fashion, however special care must be taken of the initial position of the moving wall which will start moving with a delay.
Using the position file motion requires some knowledge about the kinematics of the desired motion, but in theory with this capability any motion can be fully described in time.