cpp/sims.h
2024-11-09 17:59:37 +01:00

44 lines
1.2 KiB
C++

//
// Created by dominik on 8/14/24.
//
#ifndef RWSIM_SIMS_H
#define RWSIM_SIMS_H
#include <unordered_map>
#include <string>
#include "motions/base.h"
#include "times/base.h"
/**
* @brief Run simulation for spectra
*
* @param parameter Dictionary of parameter for simulation
* @param motion Motion model
* @param dist Distribution of correlation times
*/
void run_spectrum(std::unordered_map<std::string, double>& parameter, Motion& motion, Distribution& dist);
/**
* @brief Run simulation for stimulated echoes
*
* @param parameter Dictionary of parameter for simulation
* @param motion Motion model
* @param dist Distribution of correlation times
*/
void run_ste(std::unordered_map<std::string, double>& parameter, Motion& motion, Distribution& dist);
/**
* @brief Create trajectory of a single walker
*
* @param motion Motion model
* @param dist Distribution of correlation times
* @param t_max Double that defines maximum time of trajectory
* @param out_time Vector of waiting times
* @param out_phase Vector of phase between waiting times
*/
void make_trajectory(Motion& motion, Distribution& dist, double t_max, std::vector<double>& out_time, std::vector<double>& out_phase);
#endif //RWSIM_SIMS_H