Commit cdcc6548 authored by Olivier Lantsoght's avatar Olivier Lantsoght
Browse files

[Doc] Fix Issue #195 and remove a lot of error/warning message at documentation generation.

parent fed32bd0
......@@ -9,19 +9,19 @@
typedef struct MbsInfoDData
{
int d_type; //! other = 0; simplified = 1, forced = 2, optimized = 3, resulting = 4, related = 5,
double d_0; //! initial value for optimization
double d_min; //! bounds values for optimization
double d_max; //! bounds values for optimization
double d_opti; //! result value of optimization
int d_type; //!< other = 0; simplified = 1, forced = 2, optimized = 3, resulting = 4, related = 5,
double d_0; //!< initial value for optimization
double d_min; //!< bounds values for optimization
double d_max; //!< bounds values for optimization
double d_opti; //!< result value of optimization
// the following variables are "comptute" in "MDS_opti_structurer"
int is_related; //! unrelated = 0, master = 1, equal salve = 2, opposite slave = 3
int is_related; //!< unrelated = 0, master = 1, equal salve = 2, opposite slave = 3
struct MbsInfoDData *master_d_ptr;
double *d_ptr;
double *MBSdata_d_ptr; //! link in the creation of mbs_data
double *MBSdata_d_ptr; //!< link in the creation of mbs_data
} MbsInfoDData;
......@@ -30,8 +30,8 @@ typedef struct MbsInfoDData
*/
typedef struct MbsInfoRefPoint
{
char *bodyname; //! Name of the body that bear the reference point (origin of the joint chain until first body encounter).
char *pointname;//! Name of the reference point on the previous body.
char *bodyname; //!< Name of the body that bear the reference point (origin of the joint chain until first body encounter).
char *pointname;//!< Name of the reference point on the previous body.
} MbsInfoRefPoint;
......@@ -40,15 +40,15 @@ typedef struct MbsInfoRefPoint
*/
typedef struct MbsInfoSensor
{
char *name; //! Name of the sensor
char *name; //!< Name of the sensor
int Pos; //! 1 if the computation of the sensor position has been asked, 0 otherwise.
int Rot; //! 1 if the computation of the sensor rotation matrix has been asked, 0 otherwise.
int Vit; //! 1 if the computation of the sensor linear velocity has been asked, 0 otherwise.
int Om; //! 1 if the computation of the sensor angular velocity has been asked, 0 otherwise.
int Acc; //! 1 if the computation of the sensor linear acceleration has been asked, 0 otherwise.
int Omp; //! 1 if the computation of the sensor angular acceleration has been asked, 0 otherwise.
int Jac; //! 1 if the computation of the sensor Jacobian (\f$ \frac{dV_{sens}}{d\dot{q}} \f$) has been asked, 0 otherwise.
int Pos; //!< 1 if the computation of the sensor position has been asked, 0 otherwise.
int Rot; //!< 1 if the computation of the sensor rotation matrix has been asked, 0 otherwise.
int Vit; //!< 1 if the computation of the sensor linear velocity has been asked, 0 otherwise.
int Om; //!< 1 if the computation of the sensor angular velocity has been asked, 0 otherwise.
int Acc; //!< 1 if the computation of the sensor linear acceleration has been asked, 0 otherwise.
int Omp; //!< 1 if the computation of the sensor angular acceleration has been asked, 0 otherwise.
int Jac; //!< 1 if the computation of the sensor Jacobian (\f$ \frac{dV_{sens}}{d\dot{q}} \f$) has been asked, 0 otherwise.
} MbsInfoSensor;
......@@ -59,12 +59,12 @@ typedef struct MbsInfoExtforce
{
char *name;
int Pos; //! 1 if the computation of the sensor position has been asked, 0 otherwise.
int Rot; //! 1 if the computation of the sensor rotation matrix has been asked, 0 otherwise.
int Vit; //! 1 if the computation of the sensor linear velocity has been asked, 0 otherwise.
int Om; //! 1 if the computation of the sensor angular velocity has been asked, 0 otherwise.
int Acc; //! 1 if the computation of the sensor linear acceleration has been asked, 0 otherwise.
int Omp; //! 1 if the computation of the sensor angular acceleration has been asked, 0 otherwise.
int Pos; //!< 1 if the computation of the sensor position has been asked, 0 otherwise.
int Rot; //!< 1 if the computation of the sensor rotation matrix has been asked, 0 otherwise.
int Vit; //!< 1 if the computation of the sensor linear velocity has been asked, 0 otherwise.
int Om; //!< 1 if the computation of the sensor angular velocity has been asked, 0 otherwise.
int Acc; //!< 1 if the computation of the sensor linear acceleration has been asked, 0 otherwise.
int Omp; //!< 1 if the computation of the sensor angular acceleration has been asked, 0 otherwise.
} MbsInfoExtforce;
......@@ -73,12 +73,12 @@ typedef struct MbsInfoExtforce
*/
typedef struct MbsInfoPoint
{
char *name; //! Name of the point
char *body_name; //! Name of the body holding the point
double *pt; //! Array with the coordinates (x, y, z) of the point relative to the origin of the body expressed in the body frame.
char *name; //!< Name of the point
char *body_name; //!< Name of the body holding the point
double *pt; //!< Array with the coordinates (x, y, z) of the point relative to the origin of the body expressed in the body frame.
MbsInfoSensor *sensor; //! Pointer to a sensor structure if a sensor is defined on the point.
MbsInfoExtforce *extforce; //! Pointer to an external force sensor structure if it is defined on the point.
MbsInfoSensor *sensor; //!< Pointer to a sensor structure if a sensor is defined on the point.
MbsInfoExtforce *extforce; //!< Pointer to an external force sensor structure if it is defined on the point.
MbsInfoDData **d_pt; // x y z
int is_symmmetric; // asymmetric = 0, symmetric master = 1, symmetric salve = 2
......@@ -91,9 +91,9 @@ typedef struct MbsInfoPoint
*/
typedef struct MbsInfoBase
{
double *gravity; //! Array with the component (x, y, z) of the gravity vector expressed in the inertial frame.
int n_base_point; //! Number of point of interest (extremities of joint bearing a sensor plus anchor point) defined on the MBS.
MbsInfoPoint **base_point_list; //! Array of pointers to the MDS_point_strct describing each point of the MBS.
double *gravity; //!< Array with the component (x, y, z) of the gravity vector expressed in the inertial frame.
int n_base_point; //!< Number of point of interest (extremities of joint bearing a sensor plus anchor point) defined on the MBS.
MbsInfoPoint **base_point_list; //!< Array of pointers to the MDS_point_strct describing each point of the MBS.
} MbsInfoBase;
......@@ -102,19 +102,19 @@ typedef struct MbsInfoBase
*/
typedef struct MbsInfoJoint
{
char *name; //! Name of the joint
int type; //! Joint type: T1=1, T2=2, T3=3, R1=4, R2=5, R3=6
int nature; //! Nature of the joint: independent=1, dependent=2, driven=3
char *name; //!< Name of the joint
int type; //!< Joint type: T1=1, T2=2, T3=3, R1=4, R2=5, R3=6
int nature; //!< Nature of the joint: independent=1, dependent=2, driven=3
double q0; //! Initial position of the joint
double qd0; //! Initial velocity of the joint
double qdd0;//! Initial acceleration of the joint
double q0; //!< Initial position of the joint
double qd0; //!< Initial velocity of the joint
double qdd0;//!< Initial acceleration of the joint
int actuated;//! For inverse dynamic only: 1 if actuated, 0 otherwise
int actuated;//!< For inverse dynamic only: 1 if actuated, 0 otherwise
MbsInfoDData *d_qf; //! d_data for the forced q
int is_symmmetric; //! asymmetric = 0, symmetric master = 1, symmetric salve = 2
char *symmetric_joint_name; //! the name of the symmetric joint (filed if master, NULL if slave or non symetric)
MbsInfoDData *d_qf; //!< d_data for the forced q
int is_symmmetric; //!< asymmetric = 0, symmetric master = 1, symmetric salve = 2
char *symmetric_joint_name; //!< the name of the symmetric joint (filed if master, NULL if slave or non symetric)
} MbsInfoJoint;
......@@ -124,19 +124,19 @@ typedef struct MbsInfoJoint
*/
typedef struct MbsInfoBody
{
char *name; //! Name of the body.
char *name; //!< Name of the body.
MbsInfoRefPoint* parent; //! Description of the parent point of the current body.
MbsInfoRefPoint* parent; //!< Description of the parent point of the current body.
int n_joint; //! Number of joints leaving the body.
MbsInfoJoint **joint_list;//! Array of pointers to the MDS_joint_strct describing each joint leaving the body.
int n_joint; //!< Number of joints leaving the body.
MbsInfoJoint **joint_list;//!< Array of pointers to the MDS_joint_strct describing each joint leaving the body.
double mass; //! Mass of the body
double *com; //! Array with the coordinate (x, y, z) of the center of mass of the body relative to the origin of the body expressed in the body frame.
double *inertia; //! Array with the inertia tensor (Ixx, Ixy, Ixz, Iyy, Iyz, Izz) of the body relative to the center of mass expressed in the body frame.
double mass; //!< Mass of the body
double *com; //!< Array with the coordinate (x, y, z) of the center of mass of the body relative to the origin of the body expressed in the body frame.
double *inertia; //!< Array with the inertia tensor (Ixx, Ixy, Ixz, Iyy, Iyz, Izz) of the body relative to the center of mass expressed in the body frame.
int n_point; //! Number of point defined on the body.
MbsInfoPoint **point_list; //! Array of pointers to the MDS_point_strct describing each point of current body.
int n_point; //!< Number of point defined on the body.
MbsInfoPoint **point_list; //!< Array of pointers to the MDS_point_strct describing each point of current body.
} MbsInfoBody;
......@@ -240,10 +240,10 @@ typedef struct MbsInfoLinks
typedef struct MbsInfoParameter
{
char *name;
int type; // scalar=1 ; vector=2 ; lut1D=3 ; lut2D=4 ; state=5 ; structure=6 : integer=7
int type; //!< scalar=1 ; vector=2 ; lut1D=3 ; lut2D=4 ; state=5 ; structure=6 : integer=7
int n_value;
double *value_list;
/** pointer to the memory storing the value in the UserModel structure (redundant with MbsInfoDData **d_value but simpler) **/
void* val_ptr;
......
......@@ -11,7 +11,7 @@
#define MBSfun_h
/*--------------------*/
#include "mbs_data.h"
#include "mbs_aux.h"
#include "mbs_sensor_struct.h"
......@@ -21,7 +21,7 @@
//void checkMBSdata(MbsData *MBSdata);
//void storeMBSdata(MbsData *s, char *s_name);
int dirdynared(MbsAux *mbs_aux,MbsData *s);
int invdynared(MbsAux *mbs_aux, MbsData *s);
......@@ -31,19 +31,19 @@ int invdynared(MbsAux *mbs_aux, MbsData *s);
* necessary for
* - the state space representation (computation of A) and then the modal analysis.
*
* \p aux [in,out], the local computation structure, where the result is stored in the variable Mr.
* \p s [in,out], the MbsData of the system, where q(iqv),qd(iqv) and qdd(iqv) are updated.
* \p[in,out] mbs_aux the local computation structure, where the result is stored in the variable Mr.
* \p[in,out] s the MbsData of the system, where q(iqv),qd(iqv) and qdd(iqv) are updated.
*/
int mbs_Mred(MbsAux *mbs_aux, MbsData *s);
/**
* \brief compute Rred, the reduced equations of motions on a residual form [nqu x 1] obtained after the 2 consecutive reductions (Robotran Basics).
* necessary for
* necessary for
* - equilibrium (even with non zero acceleration)
* - linearization of MBS: obtention of Gr Kr around a given configuration (*) [not necessarely an equilibrium]
*
* \p aux [in,out], the local computation structure, where the result Rred is stored.
* \p s [in,out], the MbsData of the system, where q(iqv),qd(iqv) and qdd(iqv) are updated.
* \p[in,out] mbs_aux the local computation structure, where the result Rred is stored.
* \p[in,out] s the MbsData of the system, where q(iqv),qd(iqv) and qdd(iqv) are updated.
*/
int mbs_Rred(MbsAux *mbs_aux, MbsData *s);
......@@ -54,8 +54,8 @@ int mbs_Rred(MbsAux *mbs_aux, MbsData *s);
* This function assumes that all independent joints and all driven joints are
* up-to-date (coordinates, velocities and accelerations).
*
* \p aux [in,out], the local computation structure, where the result Rred and Qc are stored.
* \p s [in,out], the MbsData of the system, where q[qv], qd[qv], qdd[qv] and Qc are updated.
* \p[in,out] mbs_aux the local computation structure, where the result Rred and Qc are stored.
* \p[in,out] s the MbsData of the system, where q[qv], qd[qv], qdd[qv] and Qc are updated.
*/
int mbs_Rred_core(MbsAux *mbs_aux, MbsData *s);
......@@ -126,6 +126,6 @@ void mbs_calc_jdqd(MbsData *s, MbsAux *mbs_aux);
* \param[in,out] s the MbsData structure.
*/
void mbs_calc_force(MbsData *s);
/*--------------------*/
#endif
......@@ -24,19 +24,19 @@ extern "C" {
/** @brief Enumeration of the possible computation of Qc in dirdyn
*
*
*
* // Set the choice in main :
* mbs_dirdyn->options->flag_compute_Qc = COMPUTE_NO_QC;
* - mbs_dirdyn->options->flag_compute_Qc[2] = 1; // if Qc(1) is wanted
*
*
* - BY DEFAULT : COMPUTE_ALL_QC
* - COMPUTE_NO_QC will produce no computation of Qc at all during the dirdynared process
* - COMPUTE_NO_QC will produce no computation of Qc at all during the dirdynared process
* (and print 0.0 in the dirdyn_Qc file)
* - COMPUTE_CUSTOM_QC will compute only some Qc that the user can chose by setting
* - COMPUTE_CUSTOM_QC will compute only some Qc that the user can chose by setting
* mbs_dirdyn->compute_Qc_vec[index] to 1 when the Qc at index is wanted
* mbs_dirdyn->compute_Qc_vec[] is of size mbs_data->nqc+1 and will be like :
* [nqc 0 0 1 0 0 ] if the third qc is wanted and nqc = 5
* [nqc 0 0 1 0 0 ] if the third qc is wanted and nqc = 5
*/
enum { COMPUTE_ALL_QC, COMPUTE_NO_QC, COMPUTE_CUSTOM_QC };
......@@ -48,7 +48,7 @@ enum { COMPUTE_ALL_QC, COMPUTE_NO_QC, COMPUTE_CUSTOM_QC };
* \param mbs_data the data structure of the model for which
* the time integration will be computed
*/
MbsDirdyn* mbs_new_dirdyn(MbsData* mbs_data);
/**
......@@ -65,7 +65,7 @@ MbsDirdyn* mbs_new_dirdyn_aux(MbsData* mbs_data, MbsAux* mbs_aux);
/**
* Run the direct dynamic simulation
*
* The MbsData structure associated to dirdyn is modified
* The MbsData structure associated to dirdyn is modified
*
* @param[in,out] dirdyn the MbsDirdyn to be run
* @param[in,out] mbs_data the MbsData structure of the model for which the direct dynamic is computed
......@@ -76,7 +76,7 @@ void mbs_run_dirdyn(MbsDirdyn* dirdyn, MbsData* mbs_data);
/**
* Run the startup operations of the run_dirdyn function
*
*
*/
void mbs_dirdyn_init(MbsDirdyn* dirdyn, MbsData* mbs_data);
......@@ -86,13 +86,13 @@ void mbs_dirdyn_init(MbsDirdyn* dirdyn, MbsData* mbs_data);
* - call the time integrator
* - call the discrete state functions
* - call the storing function
*/
*/
void mbs_dirdyn_loop(MbsDirdyn* dirdyn, MbsData* mbs_data);
/**
* Run the finalization operations of the run_dirdyn function
*/
*/
void mbs_dirdyn_finish(MbsDirdyn* dirdyn, MbsData* mbs_data);
......@@ -100,7 +100,7 @@ void mbs_dirdyn_finish(MbsDirdyn* dirdyn, MbsData* mbs_data);
* Free memory of the direct dynamic structure
* The options (MbsDirdynOptions) and MbsAux structures are also freed
*/
void mbs_delete_dirdyn(MbsDirdyn* dirdyn, MbsData* mbs_data);
/**
......@@ -122,7 +122,7 @@ void mbs_delete_dirdyn(MbsDirdyn* dirdyn, MbsData* mbs_data);
* This is usefull for writing simulation results at the end of the simulation.
* This sepcific function is written to be able to ask for writing buffer from
* python.
*
*
* \p dd the MbsDirdyn struct for which the buffers must be written
* \return error (0 if no error)
*/
......@@ -130,7 +130,7 @@ int mbs_dirdyn_write_buffers(MbsDirdyn* dd);
/*! \brief direct dynamics derivative computation
*
* \param[in] tsim current simulation time [s]
* \param[in] t current simulation time [s]
* \param[in] y state vector of size n
* \param[out] dydt derivative
* \param[in,out] s Robotran main structure
......
/**
* @file mbs_invyn.h
* @file mbs_invdyn.h
*
* This header defines functions of the invdyn module in C.
*
......
......@@ -12,13 +12,13 @@
*/
typedef struct MbsPartOptions
{
int rowperm; //! 1 to allow line permutation; 0 otherwise, defaut = 0
int rowperm; //!< 1 to allow line permutation; 0 otherwise, defaut = 0
int visualise; // no = 0, yes = 1, defaut = 0
int drivers; // no = 0, yes = 1, defaut = 0
int verbose; //! 1 to get print indications related partitioning module; 0 otherwise, defaut = 1
int verbose; //!< 1 to get print indications related partitioning module; 0 otherwise, defaut = 1
int clearmbsglobal; // inout = 1, out = 2, none = 3, all = 4, defaut = 1
double random_amplitude; //! Amplitude of the random troubleshoot added to the initial value of generalized coordinates.
//! This randomized value are only used to determine the rank of the Jacobian matrix, default = 1e-2.
double random_amplitude; //!< Amplitude of the random troubleshoot added to the initial value of generalized coordinates.
//!< This randomized value are only used to determine the rank of the Jacobian matrix, default = 1e-2.
} MbsPartOptions;
......@@ -32,21 +32,21 @@ typedef struct MbsPartOptions
typedef struct MbsPart
{
MbsPartOptions *options; //! Structure containing the options for coordinate partitioning module
MbsPartOptions *options; //!< Structure containing the options for coordinate partitioning module
int n_qu; //! Number of independent variable needed
int *ind_qu; //! Array with the indices of best choice for independent variables
int n_qu; //!< Number of independent variable needed
int *ind_qu; //!< Array with the indices of best choice for independent variables
int n_qv; //! Number of dependent variable needed
int *ind_qv; //! Array with the indices of best choice and order for dependent variables
int n_qv; //!< Number of dependent variable needed
int *ind_qv; //!< Array with the indices of best choice and order for dependent variables
int n_hu; //! Number of independent constraint
int *ind_hu; //! Array with the indices of best choice for independent constraints
int n_hu; //!< Number of independent constraint
int *ind_hu; //!< Array with the indices of best choice for independent constraints
int n_hv; //! Number of redundant constraint
int *ind_hv; //! Array with the indices of best choice for redundant constraints
int n_hv; //!< Number of redundant constraint
int *ind_hv; //!< Array with the indices of best choice for redundant constraints
double *q_closed; //! Array with the generalized coordinate in closed configuration (constraints solved)
double *q_closed; //!< Array with the generalized coordinate in closed configuration (constraints solved)
} MbsPart;
......@@ -59,7 +59,7 @@ extern "C" {
* \brief Main function of the coordinate partitioning module.
* It compute the coordinate partitioning for the given
* MbsData structure.
*
*
* @param mbs_part the coord. part. structure
* @param mbs_data the structure of the mbs for which the coord.
* part. must be performed
......@@ -67,7 +67,7 @@ extern "C" {
*/
void mbs_run_part(MbsPart* mbs_part, MbsData* mbs_data);
/**
/**
* \brief Allocate a new MbsPart structure for the given MbsData structure.
* A new MbsPartOptions is also allocated and a pointer
* to this structure is kept from the new MbsPart.
......
/**
* \file eulerIm.c
* \file euler_implicit.c
*
* \brief This file implements the functions of the
* Euler Implicit integrator in C. Warning : not working yet
......@@ -9,7 +9,7 @@
* \author Sebastien Timmermans
*
* @source Arnold M. et al, Linearly implicit time integration methods in real-time applications: DAEs and stiff ODEs
* Multibody System Dynamics, 2007, 17:99117
* Multibody System Dynamics, 2007, 17:99-117
*
* (c) Universite catholique de Louvain
*/
......@@ -103,7 +103,7 @@ int euler_implicit(double y[], double dydx[], int n, double *x, double h, double
for (k = 0; k < nqu; k++)
{
/// B = qdd + h * Jp * Xv
B[k] = dysav[nqu + k] + h * jpxv[k]; // acc index start at nqu
B[k] = dysav[nqu + k] + h * jpxv[k]; // acc index start at nqu
}
int err = 0;
......
......@@ -2,14 +2,14 @@
* \file mbs_custom.h
*
* \brief This header defines global functions for custom integrator in C.
* Advanced user can modify this file
* Advanced user can modify this file
*
* Creation date: May 2018
* \author Sebastien Timmermans
*
* (c) Universite catholique de Louvain
*/
#ifndef MBS_CUSTOM_H_INCLUDED
#define MBS_CUSTOM_H_INCLUDED
......@@ -26,11 +26,11 @@
*/
typedef struct MbsDirdynCustom
{
double *yt2; //! allocated state vector
double *yt2; //!< allocated state vector
} MbsDirdynCustom;
/** @brief Initialize all needed fields in MbsDirdyn for Custom integrator
/** @brief Initialize all needed fields in MbsDirdyn for Custom integrator
*
* @param mbs_data The computed MBS structure
* @param mbs_dd The associated MbsDirdyn structure
......
......@@ -9,7 +9,7 @@
*
* (c) Universite catholique de Louvain
*/
#ifndef MBS_DOPRI5_H_INCLUDED
#define MBS_DOPRI5_H_INCLUDED
......@@ -29,13 +29,13 @@
*/
typedef struct MbsDirdynDopri5
{
int flag_save; //! 1 if first dydt save done, 0 otherwise
int flag_save; //!< 1 if first dydt save done, 0 otherwise
double solout_last_t; //! last time solout was called
double solout_last_t; //!< last time solout was called
double *dydt_save; //! save dydt of the last time step
double *dydt_save; //!< save dydt of the last time step
double **alloc_tab; //! allocated state vectors
double **alloc_tab; //!< allocated state vectors
} MbsDirdynDopri5;
......@@ -53,7 +53,6 @@ void initialize_dopri5(MbsData *mbs_data, MbsDirdyn *mbs_dd);
* @param tf The final time
* @param mbs_data The computed MBS structure
* @param mbs_dd The associated MbsDirdyn structure
* @param fileout Target for output message
*/
void loop_dopri5(double t0, double tf, MbsData *mbs_data, MbsDirdyn *mbs_dd);
......
......@@ -13,7 +13,7 @@
* (c) Universite catholique de Louvain
*
*/
#include "mbs_rk4.h"
#include "mbs_rk4.h"
void initialize_rk4(MbsData *mbs_data, MbsDirdyn *mbs_dd) {
......@@ -80,4 +80,4 @@ void finish_rk4(MbsData *mbs_data, MbsDirdyn *dd) {
free(((MbsDirdynRK4 *)dd->integrator_struct)->dyt);
free(((MbsDirdynRK4 *)dd->integrator_struct)->dym);
}
}
\ No newline at end of file
}
......@@ -6,14 +6,14 @@
*
* Creation date: December 2017
* \author Olivier Lantsoght
*
*
* Modification date: April 2018
* \modified by Sebastien Timmermans
*
*
* (c) Universite catholique de Louvain
*/
#ifndef MBS_RK4_H_INCLUDED
#define MBS_RK4_H_INCLUDED
......@@ -30,9 +30,9 @@
*/
typedef struct MbsDirdynRK4
{
double *yt; //! allocated state vector
double *dyt; //! allocated derivative vector
double *dym; //! allocated saved derivative vector
double *yt; //!< allocated state vector
double *dyt; //!< allocated derivative vector
double *dym; //!< allocated saved derivative vector
} MbsDirdynRK4;
......
......@@ -11,7 +11,7 @@
*
* (c) Universite catholique de Louvain
*/
#ifndef MBS_ROSENBROCK_H_INCLUDED
#define MBS_ROSENBROCK_H_INCLUDED
......@@ -28,11 +28,11 @@
*/
typedef struct MbsDirdynRosenbrock
{
int flag_save; //! 1 if first dydt save done, 0 otherwise
int flag_save; //!< 1 if first dydt save done, 0 otherwise
double solout_last_t; //! last time solout was called (0.0 by default)
double solout_last_t; //!< last time solout was called (0.0 by default)
double *dydt_save; //! save dydt of the last time step
double *dydt_save; //!< save dydt of the last time step
int *indx;
double **a, *dfdx, **dfdy, *dysav, *err;
......
......@@ -29,7 +29,7 @@ int mbs_eig_0(double **A, int n, double *eval_a, double *eval_b, double **evec_a
* n : size of the matrix
* WR : Result of the Eigenvalue problem: real part of the n eigen values (ordered as they appear on the diagonal of the output Schur form T [n x 1]
* WI : Result of the Eigenvalue problem: real part of the n eigen values (ordered as they appear on the diagonal of the output Schur form T [n x 1]
* T : (Re-ordered) schur decomposition matrix
* T : (Re-ordered) schur decomposition matrix
* Z : (Re-ordered) orthogonal matrix Z of Schur vectors [n X n]
* reorder : flag for re-ordering 1=re-ordered 0=non-ordered (default 1)
*/
......@@ -37,15 +37,15 @@ int mbs_schur_0(double **A, int n, double **T, double **Z, double *WR, double *W
/**
*
* \param[in] A : matrix for the rank computation
* \param[in] x : matrix first dimension
* \param[in] y : matrix second dimension
* \param[in] A matrix for the rank computation
* \param[in] m matrix first dimension
* \param[in] n matrix second dimension
*/
int mbs_rank_0(double** A, int m, int n);
/**
* Compute the Cholesky decomposition of A, i.e.
* the upper triangular matrix L
* the upper triangular matrix L
*
* /!\/!\/!\ the upper triangular matrix is expressed in COL major /!\/!\/!\
*
......@@ -65,10 +65,10 @@ int mbs_choldc_0(double **A, int n);
*
** /!\/!\/!\ the B and the X(solution) matrices are expressed in COL major /!\/!\/!\
*
* \param[in,out] In COLUMN major the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A
* \param[in] n : size of the A matrix
* \param[in,out] b : On entry - In COLUMN major - the right hand side matrix B. On exit - In COLUMN major - the solution matrix X.
* \param[in] nb: number of vectors for the RHS matrix B.
* \param[in,out] A COLUMN major the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A
* \param[in] n size of the A matrix
* \param[in,out] B On entry - In COLUMN major - the right hand side matrix B. On exit - In COLUMN major - the solution matrix X.
* \param[in] nb number of vectors for the RHS matrix B.
*
*/
int mbs_cholsl_0(double **A, int n, double **B, int nb);
......
......@@ -13,23 +13,23 @@
typedef struct MbsRiccati
{
// Note that the Riccati Equation is written:
// Note that the Riccati Equation is written: