diff --git a/compile.sh b/compile.sh old mode 100644 new mode 100755 diff --git a/doc/html/annotated.html b/doc/html/annotated.html new file mode 100644 index 0000000..396b3d1 --- /dev/null +++ b/doc/html/annotated.html @@ -0,0 +1,134 @@ + + +
+ + + + ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
▼Nsentinels | |
CSentinel | |
CCollision | Collision Final class =====================================================================/ |
CCollisionsphere | |
CCollisionspheren | Collision Final class ============================================================================/ |
CCylinder | Cylinder Obstacle Derived Class =============================================================/ |
CCylinderCollisionSphere | Class to save the cylinderical obstacles that a can collide to a walker |
CCylinderGammaDistribution | CylinderGammaDistribution Class =============================================================/ |
CDynamicsSimulation | Dynamic simulation main class =============================================================/ |
CGradientWaveform | Gradient Wavefroms =============================================================/ |
CMCSimulation | Aplication Main Class ======================================================================================/ |
CObstacle | Obstacle Base Class ==============================================================================/ |
CParallelMCSimulation | Class to handle multiprocessor paralellisation. This class basicly controls and syncronize several initializations of MonteCarlo simulations and add up the results. It's a way of soft paralelization |
CParameter | Basic class to store simulation parameters =============================================================/ |
CParameters | |
CPGSESequence | |
CPlane | Main class. Implements basic voxel limits and operations. =================================================/ |
CPLYCollisionSphere | |
CPLYObstacle | PlyObstacle Derived Class ====================================================================/ |
CPropagator | |
CScheme | Auxiliary class to save scheme_files values =============================================================/ |
CSentinels | Collision Final class ====================================================================/ |
CSimErrno | Simulation Input and parameter errors handling class =================================================/ |
CSimulableSequence | MR Sequence Primary Class =============================================================/ |
CSubdivision | Auxiliary Subdivision Class =============================================================/ |
CTrajectory | Auxiliary class. Handles i/o operation of walker trayectories. ============================/ |
CTriangle | Auxiliary class. Implements trangular barriers. ===================================/ |
CVertex | Auxiliary class. Implements basic vertices. ====================================/ |
CVoxel | //! Main class. Implements basic voxel limits and operations. Class to handle and manage the voxels in the simulations. So far only one voxel at the time can be handled. To improve to several voxels, modifications shall be done |
CWalker | Spin Final class =============================================================/ |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Collision, including all inherited members.
+bounced_direction | Collision | |
boundary enum value (defined in Collision) | Collision | |
col_location | Collision | |
colision_point | Collision | |
Collision() (defined in Collision) | Collision | inline |
Collision(double u_, double v_, double t_) (defined in Collision) | Collision | inline |
collision_location enum name | Collision | |
collision_type enum name | Collision | |
computeCollisionLocation() | Collision | |
degenerate enum value (defined in Collision) | Collision | |
doIHaveMorePiorityThan(Collision &coll) | Collision | |
hit enum value (defined in Collision) | Collision | |
inside enum value (defined in Collision) | Collision | |
near enum value (defined in Collision) | Collision | |
null enum value (defined in Collision) | Collision | |
obstacle_ind | Collision | |
on_edge enum value (defined in Collision) | Collision | |
on_vertex enum value (defined in Collision) | Collision | |
outside enum value (defined in Collision) | Collision | |
rn | Collision | |
t | Collision | |
triangle_ind | Collision | |
type | Collision | |
u | Collision | |
unknown enum value (defined in Collision) | Collision | |
v | Collision | |
voxel enum value (defined in Collision) | Collision | |
~Collision() | Collision |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Collision Final class =====================================================================/. + More...
+ +#include <collision.h>
+Public Types | |
enum | collision_type { + hit, +near, +null, +boundary, + + degenerate + + } |
enum | collision_location { + inside, +on_edge, +on_vertex, +voxel, + + outside, +unknown + + } |
+Public Member Functions | |
+ | Collision (double u_, double v_, double t_) |
+ | ~Collision () |
Does nothing. | |
+bool | doIHaveMorePiorityThan (Collision &coll) |
Compares a second collision to determine which one has more priority. The comparison is based on the type of collision and distance. | |
void | computeCollisionLocation () |
Computes, based on the the coordinates u,v,t of the collision, the location relative to the triangle. More... | |
+Public Attributes | |
collision_type | type |
collision_location | col_location |
Eigen::Vector3d | colision_point |
Eigen::Vector3d | bounced_direction |
double | rn |
double | u |
double | v |
double | t |
int | triangle_ind |
int | obstacle_ind |
Collision Final class =====================================================================/.
+Class to save and handle collisions between walkers and objects.
+Class to save and handle collisions between walkers and objects.
+This class should handle all the cases where a collision can happened as well as all the operation between collision.
+enum Collision::collision_location | +
Only in case of collision (or a very close ending position) this are the cases where the collision can happened.
+ +enum Collision::collision_type | +
All the possibles cases or situations where a step can end. The next step is performed according to this state
+ +Collision::computeCollisionLocation | +( | +) | ++ |
Computes, based on the the coordinates u,v,t of the collision, the location relative to the triangle.
+Auxiliar function for Triangular barriers
+ +Eigen::Vector3d Collision::bounced_direction | +
Save the bounced direction for a given obstacle
+ +collision_location Collision::col_location | +
Save the colocation of the collision over the object
+ +Eigen::Vector3d Collision::colision_point | +
Saves the position of colision
+ +int Collision::obstacle_ind | +
In case of a generic obstacle saves the obstacle index.
+ +double Collision::rn | +
saves the local orietnation between the wall and the particle
+ +double Collision::t | +
signed, collision distance
+ +int Collision::triangle_ind | +
In case of a PLY obstacle saves the triangle index. t collison distance
+ +collision_type Collision::type | +
Saves the type of collsion (if any)
+ +double Collision::u | +
u position in baricentric coordinates
+ +double Collision::v | +
v position in baricentric coordinates
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Collisionsphere, including all inherited members.
+big_sphere_distance | Collisionsphere | |
Collisionsphere() (defined in Collisionsphere) | Collisionsphere | inline |
list_size (defined in Collisionsphere) | Collisionsphere | |
small_sphere_distance | Collisionsphere |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+Public Attributes | |
float | big_sphere_distance |
float | small_sphere_distance |
+unsigned | list_size |
float Collisionsphere::big_sphere_distance | +
Size of the big (outer) collision sphere
+ +float Collisionsphere::small_sphere_distance | +
Size of the small (inner) collision sphere
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Collision Final class ============================================================================/. + More...
+ +#include <collisionsphere.h>
Collision Final class ============================================================================/.
+Class to implement spherical bounding boxes for the WALKER mean diffusion. This class provides methods in order to create and update spherical bounding boxes used to compute the collisions.
+Father class. this class provides methods in order to create and update spherical bounding box used to compute the collisions. The implementation is based on two collision spheres. The inner one (small) and the (outer). The fist saves the objects where th particle MAY collide in a given time, While the second saves the full set of obstacles where the particle can possibly collide, i.e. that are physically achievable for the walker to collide.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Cylinder, including all inherited members.
+checkCollision(Walker &walker, Eigen::Vector3d &step, double &step_lenght, Collision &colision) | Cylinder | |
Obstacle::checkCollision(Walker &walker, Eigen::Array3d &step, const double &step_lenght, Collision &colision) | Obstacle | |
count (defined in Cylinder) | Cylinder | static |
count_perc_crossings | Obstacle | |
Cylinder() | Cylinder | |
Cylinder(Eigen::Vector3d P_, Eigen::Vector3d Q_, double radius_, double scale=1) | Cylinder | inline |
Cylinder(Cylinder const &cyl) | Cylinder | |
D | Cylinder | |
elasticBounceAgainsPlane(Eigen::Vector3d &ray_origin, Eigen::Vector3d &normal, double &t, Eigen::Vector3d &step) (defined in Obstacle) | Obstacle | |
id | Obstacle | |
minDistance(Walker &w) | Cylinder | |
Obstacle() | Obstacle | |
P (defined in Cylinder) | Cylinder | |
percolation | Obstacle | |
Q | Cylinder | |
radius | Cylinder | |
T2 | Obstacle | |
~Cylinder() (defined in Cylinder) | Cylinder |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Cylinder Obstacle Derived Class =============================================================/. + More...
+ +#include <cylinder.h>
+Public Member Functions | |
+ | Cylinder () |
Default constructor. Does nothing. | |
Cylinder (Eigen::Vector3d P_, Eigen::Vector3d Q_, double radius_, double scale=1) | |
Initialize everything. More... | |
Cylinder (Cylinder const &cyl) | |
Initialize everything. More... | |
bool | checkCollision (Walker &walker, Eigen::Vector3d &step, double &step_lenght, Collision &colision) |
Basic collision function. Returns the if there was any collision on against the obstacle. More... | |
double | minDistance (Walker &w) |
Returns the minimum distance from the walker to the cylinder. Used to set the reachable cylinders that a given walker can reach. More... | |
Public Member Functions inherited from Obstacle | |
+ | Obstacle () |
Default constructor. Does nothing. | |
bool | checkCollision (Walker &walker, Eigen::Array3d &step, const double &step_lenght, Collision &colision) |
Basic collision function. Returns the if there was any collision on against the obstacle. More... | |
+void | elasticBounceAgainsPlane (Eigen::Vector3d &ray_origin, Eigen::Vector3d &normal, double &t, Eigen::Vector3d &step) |
double | minDistance (Walker &w) |
Returns the minimum distance of collision. More... | |
+Public Attributes | |
+Eigen::Vector3d | P |
Eigen::Vector3d | Q |
Eigen::Vector3d | D |
double | radius |
Public Attributes inherited from Obstacle | |
int | id |
int | count_perc_crossings |
double | percolation |
double | T2 |
+Static Public Attributes | |
+static int | count = 0 |
Cylinder Obstacle Derived Class =============================================================/.
+Cylinder class derived from an Obstacle. Defines infinite long cylinders in the direction set by P,Q.
+
+
|
+ +inline | +
Initialize everything.
+P_ | Cylinder origin |
Q_ | cylinder direction. |
radius_ | cylinder's radius |
scale | scale factor for the values passed. Useful when reading a file. |
Cylinder::Cylinder | +( | +Cylinder const & | +cyl | ) | ++ |
Initialize everything.
+P_ | Cylinder origin |
Q_ | cylinder direction. |
radius_ | cylinder's radius |
scale | scale factor for the values passed. Useful when reading a file. |
Cylinder::checkCollision | +( | +Walker & | +walker, | +
+ | + | Eigen::Vector3d & | +step, | +
+ | + | double & | +step_lenght, | +
+ | + | Collision & | +colision | +
+ | ) | ++ |
Basic collision function. Returns the if there was any collision on against the obstacle.
+walker,Walker | instance in the simulation. |
3d | step. Is assumed to be normalized. |
step_length,length | used as the maximum step collision distance. |
collision,Collision | instance to save the collision (if any) details. |
Cylinder::minDistance | +( | +Walker & | +w | ) | ++ |
Returns the minimum distance from the walker to the cylinder. Used to set the reachable cylinders that a given walker can reach.
+walker,Walker | instance in the simulation. |
Eigen::Vector3d Cylinder::D | +
Pre-computed and normalized P - Q vector
+ +Eigen::Vector3d Cylinder::Q | +
Cilinder Axis reference Points, P should be the "center"
+ +double Cylinder::radius | +
Radius of the cylinder
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for CylinderCollisionSphere, including all inherited members.
+big_sphere_distance | Collisionsphere | |
big_sphere_list_end | CylinderCollisionSphere | |
collision_list (defined in CylinderCollisionSphere) | CylinderCollisionSphere | |
Collisionsphere() (defined in Collisionsphere) | Collisionsphere | inline |
CylinderCollisionSphere() | CylinderCollisionSphere | |
list_size (defined in Collisionsphere) | Collisionsphere | |
popFromBigSphere(unsigned i) | CylinderCollisionSphere | |
popFromSmallSphere(unsigned i) | CylinderCollisionSphere | |
push_index(unsigned int element) | CylinderCollisionSphere | |
pushToBigSphere(unsigned i) | CylinderCollisionSphere | |
pushToSmallSphere(unsigned i) | CylinderCollisionSphere | |
setBigSphereSize(float size) | CylinderCollisionSphere | |
setSmallSphereSize(float size) | CylinderCollisionSphere | |
small_sphere_distance | Collisionsphere | |
small_sphere_list_end | CylinderCollisionSphere |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Class to save the cylinderical obstacles that a can collide to a walker. + More...
+ +#include <collisionsphere.h>
+Public Member Functions | |
CylinderCollisionSphere () | |
+void | popFromSmallSphere (unsigned i) |
This function receives a index from the collision list and moves the value to the last position of the list. then decrease the inner sphere end index. This way this index is no longer considered inner collision list. | |
+void | pushToSmallSphere (unsigned i) |
This function receives a index from the collision list and moves the value to the last position of the list. then increase the inner sphere end index. This way this index is now included in the inner collision list. | |
+void | popFromBigSphere (unsigned i) |
This function receives a index from the collision list and moves the value to the last position of the list. Then decrease the inner sphere end index. This way this index is now excluded in the outer collision list. | |
+void | pushToBigSphere (unsigned i) |
This function receives a index from the collision list and moves the value to the last position of the list. Then increase the inner sphere end index. This way this index is now included in the outer collision list. | |
void | setBigSphereSize (float size) |
void | setSmallSphereSize (float size) |
void | push_index (unsigned int element) |
+Public Attributes | |
unsigned | small_sphere_list_end |
unsigned | big_sphere_list_end |
+std::vector< unsigned > * | collision_list |
Public Attributes inherited from Collisionsphere | |
float | big_sphere_distance |
float | small_sphere_distance |
+unsigned | list_size |
Class to save the cylinderical obstacles that a can collide to a walker.
+Class to save the PLY mehses and the subset of triangles that a can collide to a walker.
+CylinderCollisionSphere::CylinderCollisionSphere | +( | +) | ++ |
<Pointer to List with the cylinders indexes. The indexes are permuted in its position.
+ +void CylinderCollisionSphere::push_index | +( | +unsigned int | +element | ) | ++ |
element | value to be added to the obstacle list |
void CylinderCollisionSphere::setBigSphereSize | +( | +float | +size | ) | ++ |
size | of the list |
void CylinderCollisionSphere::setSmallSphereSize | +( | +float | +size | ) | ++ |
size | of the list |
unsigned CylinderCollisionSphere::big_sphere_list_end | +
Index of the LAST element on the list for the big collision sphere
+ +unsigned CylinderCollisionSphere::small_sphere_list_end | +
Index of the LAST element on the list for the small collision sphere
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for CylinderGammaDistribution, including all inherited members.
+alpha | CylinderGammaDistribution | |
beta | CylinderGammaDistribution | |
createGammaSubstrate() | CylinderGammaDistribution | |
CylinderGammaDistribution(unsigned, double, double, double, Eigen::Vector3d &, Eigen::Vector3d &, float min_radius) | CylinderGammaDistribution | |
cylinders | CylinderGammaDistribution | |
displayGammaDistribution() | CylinderGammaDistribution | |
icvf | CylinderGammaDistribution | |
max_limits | CylinderGammaDistribution | |
min_limits | CylinderGammaDistribution | |
min_radius | CylinderGammaDistribution | |
num_cylinders | CylinderGammaDistribution | |
printSubstrate(std::ostream &out) | CylinderGammaDistribution |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
CylinderGammaDistribution Class =============================================================/. + More...
+ +#include <cylindergammadistribution.h>
+Public Member Functions | |
CylinderGammaDistribution (unsigned, double, double, double, Eigen::Vector3d &, Eigen::Vector3d &, float min_radius) | |
Initialize everything. More... | |
+void | displayGammaDistribution () |
Shows a small histogram of the gamma distribution. | |
+void | createGammaSubstrate () |
Samples and constructs a Gamma distribution. | |
void | printSubstrate (std::ostream &out) |
Prints the cylinders positions in a file or output stream. More... | |
+Public Attributes | |
unsigned | num_cylinders |
double | alpha |
double | beta |
double | icvf |
float | min_radius |
Eigen::Vector3d | min_limits |
Eigen::Vector3d | max_limits |
std::vector< Cylinder > | cylinders |
CylinderGammaDistribution Class =============================================================/.
+Class to construct a substrate taken from a Gamma distribution of radiis placed in a single voxel structure.
+CylinderGammaDistribution::CylinderGammaDistribution | +( | +unsigned | +num_cyl, | +
+ | + | double | +a, | +
+ | + | double | +b, | +
+ | + | double | +icvf_, | +
+ | + | Eigen::Vector3d & | +min_l, | +
+ | + | Eigen::Vector3d & | +max_l, | +
+ | + | float | +min_radius = 0.01 |
+
+ | ) | ++ |
Initialize everything.
+P_ | Cylinder origin |
Q_ | cylinder direction. |
radius_ | cylinder's radius |
scale | scale factor for the values passed. Useful when reading a file. |
void CylinderGammaDistribution::printSubstrate | +( | +std::ostream & | +out | ) | ++ |
Prints the cylinders positions in a file or output stream.
+out | ostream where to write the info. |
double CylinderGammaDistribution::alpha | +
alpha coefficient of the Gamma distribution
+ +double CylinderGammaDistribution::beta | +
beta coefficient of the gamma distribution
+ +double CylinderGammaDistribution::icvf | +
Achieved intra-celular volum fraction in the substrate
+ +Eigen::Vector3d CylinderGammaDistribution::max_limits | +
voxel max limits (if any)
+ +Eigen::Vector3d CylinderGammaDistribution::min_limits | +
voxel min limits (if any) (bottom left corner)
+ +float CylinderGammaDistribution::min_radius | +
Minimum radius to be sampled from the gamma distribution
+ +unsigned CylinderGammaDistribution::num_cylinders | +
number of cylnders fit inside the substrate
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for DynamicsSimulation, including all inherited members.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Dynamic simulation main class =============================================================/. + More...
+ +#include <dynamicsSimulation.h>
+Public Member Functions | |
DynamicsSimulation () | |
Default constructor. Initialize everything with 0's and NULL states, object indexes are set to -1. More... | |
DynamicsSimulation (std::string conf_file) | |
DynamicsSimulation (Parameters ¶ms_) | |
+ | ~DynamicsSimulation () |
Does nothing. | |
void | startSimulation (SimulableSequence *dataSynth=nullptr) |
Starts the dynamics simulation and, if a PGSE sequence is given, computes the DW signal. More... | |
void | readConfigurationFile (std::string conf_file_path) |
Reads all the parameters listed in the param conf_file and stores them in the /t params object. More... | |
void | setDuration (const double &duration) |
Sets the simulation duration in milliseconds, this should be synchronized w/r the Time Echo. More... | |
+void | setWalkersNum (const unsigned &N) |
+void | setStepsNum (const unsigned &T) |
bool | isInIntra (Eigen::Vector3d &position, int &cyl_id, int &ply_id, double distance_to_be_intra_ply=1e-6) |
return true if the position is inside any of the obstacles. Only obstacles with a defined "inside region" can be considered. Voxel periodicity is not considered More... | |
+void | writePropagator (std::string path) |
Writes to disk the final propagator matrix. | |
+bool | isInsideCylinders (Eigen::Vector3d &position, int &cyl_id, double distance_to_be_inside=1e-6) |
+bool | isInsidePLY (Eigen::Vector3d &position, int &ply_id, double distance_to_be_inside=1e-6) |
+Static Public Member Functions | |
+static std::string | secondsToMinutes (double) |
+Public Attributes | |
Parameters | params |
Walker | walker |
Trajectory | trajectory |
std::mt19937 | mt |
double | step_lenght |
double | second_passed |
double | max_simulation_time |
double | completed |
std::string | ini_pos_file |
unsigned | ini_pos_file_ini_index |
int | id |
sentinels::Sentinel | sentinela |
std::vector< PLYObstacle > * | plyObstacles_list |
std::vector< Cylinder > * | cylinders_list |
std::vector< unsigned > | cylinders_deque |
std::vector< std::vector< unsigned > > | ply_deque |
std::vector< Voxel > | voxels_list |
Propagator | propagator |
double | icvf |
+unsigned | intra_tries |
unsigned | total_tries |
+Eigen::Vector3d | step |
+double | time_step |
+double | time_dt |
double | last_time_dt |
+std::ifstream | iniPos |
+time_t | start |
time_t | now |
bool | print_expected_time |
unsigned | num_simulated_walkers |
+unsigned | aux_walker_index |
Dynamic simulation main class =============================================================/.
+Main implementation of the particles dynamics. Handles collisions and bouncing
+Main class, implements the particles dynamics. Handles collisions and bouncing.
+DynamicsSimulation::DynamicsSimulation | +( | +) | ++ |
Default constructor. Initialize everything with 0's and NULL states, object indexes are set to -1.
+DynamicsSimulation implementation
+ +DynamicsSimulation::DynamicsSimulation | +( | +std::string | +conf_file | ) | ++ |
configuration | file |
DynamicsSimulation::DynamicsSimulation | +( | +Parameters & | +params_ | ) | ++ |
Parameter | instance |
DynamicsSimulation::isInIntra | +( | +Eigen::Vector3d & | +position, | +
+ | + | int & | +cyl_id, | +
+ | + | int & | +ply_id, | +
+ | + | double | +distance_to_be_intra_ply = 1e-6 |
+
+ | ) | ++ |
return true if the position is inside any of the obstacles. Only obstacles with a defined "inside region" can be considered. Voxel periodicity is not considered
+position | 3d position on space. |
error | minimum distance to be considered "outside" de obstacle (barrier thickness) |
DynamicsSimulation::readConfigurationFile | +( | +std::string | +conf_file_path | ) | ++ |
Reads all the parameters listed in the param conf_file and stores them in the /t params object.
+conf_file_path |
conf_file_path | paremeters file path. |
DynamicsSimulation::setDuration | +( | +const double & | +duration | ) | ++ |
Sets the simulation duration in milliseconds, this should be synchronized w/r the Time Echo.
+duration | simulation duration. |
DynamicsSimulation::startSimulation | +( | +SimulableSequence * | +dataSynth = nullptr | ) | ++ |
Starts the dynamics simulation and, if a PGSE sequence is given, computes the DW signal.
+dataSynth | optional paramter. If this parameter is not given, no signal is computed. |
double DynamicsSimulation::completed | +
Auxiliar variable to save the milestone of percentage of completed walkers
+ +std::vector<unsigned> DynamicsSimulation::cylinders_deque | +
deque with the indexes of the cylinders (used for optmization)
+ +std::vector<Cylinder>* DynamicsSimulation::cylinders_list | +
vector with all the isntances of "Cylider" obstacles
+ +double DynamicsSimulation::icvf | +
Stores the ICVF (1 - Intra-Extra) if needed
+ +int DynamicsSimulation::id | +
Unique id for the dynamic simulation
+ +std::string DynamicsSimulation::ini_pos_file | +
walkers intitial position file
+ +unsigned DynamicsSimulation::ini_pos_file_ini_index | +
starting position in the ini walker position file (multicore support)
+ +double DynamicsSimulation::last_time_dt | +
simulation time steps auxiliar values
+ +double DynamicsSimulation::max_simulation_time | +
Maximum simulation time if not passed we carry all the particles
+ +std::mt19937 DynamicsSimulation::mt | +
rnd, random generator instance
+ +time_t DynamicsSimulation::now | +
Auxiliar Variable for time recording and estimation for time.
+ +unsigned DynamicsSimulation::num_simulated_walkers | +
Saves the final number of simulated walkers (time limit)
+ +Parameters DynamicsSimulation::params | +
Parameters handler instance
+ +std::vector<std::vector<unsigned> > DynamicsSimulation::ply_deque | +
deque with the indexes of the triangles of all ply's (used for opt)
+ +std::vector<PLYObstacle>* DynamicsSimulation::plyObstacles_list | +
pointer to a vector with all the instances of PLYObstacles
+ +bool DynamicsSimulation::print_expected_time | +
Auxiliar flag for time recording and stimation for time.
+ +Propagator DynamicsSimulation::propagator | +
Propagator object to compute and save the particles MSD
+ +double DynamicsSimulation::second_passed | +
Simulation total time in seconds
+ +sentinels::Sentinel DynamicsSimulation::sentinela | +
Sentinel initialization to encoutner error in the simulation
+ +double DynamicsSimulation::step_lenght | +
l, step length
+ +unsigned DynamicsSimulation::total_tries | +
Helper variables to compute the estimated ICVF
+ +Trajectory DynamicsSimulation::trajectory | +
Trajectory instance. Handles i/o operations
+ +std::vector<Voxel> DynamicsSimulation::voxels_list | +
vector with all the voxels to be simulated (if any)
+ +Walker DynamicsSimulation::walker | +
Single walker to diffuse
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for GradientWaveform, including all inherited members.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Gradient Wavefroms =============================================================/. + More...
+ +#include <gradientwaveform.h>
+Public Member Functions | |
+ | GradientWaveform () |
Default constructor, set default NULL values. Not to be used. | |
+ | GradientWaveform (Scheme &scheme) |
Main constructor. Takes a pre-loaded Scheme file. | |
+ | GradientWaveform (Scheme &scheme_, const char *traj_file_name) |
Main constructor. Takes a pre-loaded Scheme file and a traj file name. if this argument is passed a traj file is should be written. | |
double | getNumericalbValue (unsigned) |
+void | getDWISignal () |
Computes de DW signal from a trajfile. | |
+void | readSchemeFile () |
reads the waveform | |
+void | getInterpolatedGradImpulse (uint rep_index, double dt_sim, double t_sim_last, Eigen::Vector3d &Gdt) |
For using with the adt array. | |
void | update_phase_shift (double time_step, Eigen::Matrix3Xd trajectory) |
void | update_phase_shift (double dt, double dt_last, Walker walker) |
+void | update_DWI_signal (Walker &walker) |
Updates the DWI signal using the cumulated phase shift. | |
+void | setNumberOfSteps (unsigned T) |
Set the number of time steps if they are known. | |
void | getGradImpulse (int i, double t, double tLast, Eigen::Vector3d &Gdt) |
Public Member Functions inherited from SimulableSequence | |
virtual double | getbValue (unsigned i) |
+virtual double | getFreeDecay (unsigned i, double D) |
Expected free Decay. | |
+virtual void | computeDynamicTimeSteps () |
Compute the time for all the steps when they are not constant. | |
+virtual void | initializeSubdivisionSignals () |
Initialize the DWI signals for each subdivision. | |
+virtual void | initializeIntraExtraSignals () |
Initialize the DWI signals for each compartment (intra extra) | |
+virtual void | writeResultingData (std::string output_base_name) |
+virtual void | writePhaseShiftDistribution (std::string output_base_name) |
+virtual void | cleanPhaseShift () |
+virtual void | cleanDWISignal () |
+Public Attributes | |
double | TE |
uint | T |
double | dyn_duration |
int | wave_bins |
double | wave_duration |
double | dt |
bool | scale_from_stu |
std::vector< std::vector< float > > | waveform |
Trajectory | trajectory |
Public Attributes inherited from SimulableSequence | |
std::string | scheme_file |
std::vector< double > | DWI |
std::vector< double > | DWI_intra |
std::vector< double > | DWI_extra |
std::vector< double > | DWIi |
std::vector< double > | phase_shift |
int | num_rep |
bool | save_phase_shift |
bool | dynamic |
double | percent_steps_in |
std::vector< double > | time_steps |
Eigen::ArrayXXf | phase_shift_distribution |
std::vector< std::vector< double > > | sub_DWI |
std::vector< std::vector< double > > | sub_DWI_intra |
std::vector< std::vector< double > > | sub_DWI_extra |
std::vector< std::vector< double > > | sub_DWIi |
bool | subdivision_flag = false |
bool | separate_signal = false |
bool | img_signal = false |
std::vector< Subdivision > | subdivisions |
Gradient Wavefroms =============================================================/.
+Implementation of the the General Wavefroms.
+Main implementation of the gradient waveforms protocol
+
+
|
+ +virtual | +
i | Walker index |
t | current time step (in milisenconds) |
tLast | last time step (in milisenconds) |
Gdt | vector to compute de G*dt impulse |
Implements SimulableSequence.
+ +double GradientWaveform::getNumericalbValue | +( | +unsigned | +) | ++ |
+
|
+ +virtual | +
i | updated the phase shift over a whole trajectory |
Implements SimulableSequence.
+ +
+
|
+ +virtual | +
i | updated walker |
Implements SimulableSequence.
+ +double GradientWaveform::dt | +
individual time steps (miliseconds) of the wave
+ +double GradientWaveform::dyn_duration | +
simulation duration (miliseconds)
+ +bool GradientWaveform::scale_from_stu | +
True if the input is in standar units
+ +uint GradientWaveform::T | +
num bins (time steps)
+ +double GradientWaveform::TE | +
Time Echo.
+ +Trajectory GradientWaveform::trajectory | +
If the signal is computed from a .trajfile
+ +int GradientWaveform::wave_bins | +
Wave discretization
+ +double GradientWaveform::wave_duration | +
Wave duration (should be less qeual than dyn_dur.)
+ +std::vector< std::vector<float> > GradientWaveform::waveform | +
Defined waveforms
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for MCSimulation, including all inherited members.
+count | MCSimulation | static |
cylinders_list | MCSimulation | |
dataSynth | MCSimulation | |
dynamicsEngine | MCSimulation | |
getExpectedFreeeDecay(unsigned i) (defined in MCSimulation) | MCSimulation | |
id | MCSimulation | |
ini_walker_positions | MCSimulation | |
iniObstacles() | MCSimulation | |
MCSimulation() | MCSimulation | |
MCSimulation(std::string config_file) (defined in MCSimulation) | MCSimulation | |
MCSimulation(Parameters ¶ms_) (defined in MCSimulation) | MCSimulation | |
params | MCSimulation | |
plyObstacles_list | MCSimulation | |
scheme | MCSimulation | |
startSimulation() | MCSimulation | |
~MCSimulation() | MCSimulation |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Aplication Main Class ======================================================================================/. + More...
+ +#include <mcsimulation.h>
+Public Member Functions | |
MCSimulation () | |
Default constructor. Intialize everything with 0's and NULL states, object indexes are set to -1. More... | |
+ | MCSimulation (std::string config_file) |
+ | MCSimulation (Parameters ¶ms_) |
+ | ~MCSimulation () |
Main destructor. Frees dynamicly allocated memory instances. | |
void | startSimulation () |
Warp function. Calls the dynamicEngine's native DynamicsSimulation::startSimulation function. More... | |
+double | getExpectedFreeeDecay (unsigned i) |
void | iniObstacles () |
+Public Attributes | |
int | id |
DynamicsSimulation * | dynamicsEngine |
Scheme | scheme |
Parameters | params |
SimulableSequence * | dataSynth |
std::vector< std::vector< float > > | ini_walker_positions |
std::vector< PLYObstacle > * | plyObstacles_list |
std::vector< Cylinder > * | cylinders_list |
+Static Public Attributes | |
static int | count =0 |
Aplication Main Class ======================================================================================/.
+Main implementation class. Incorporates the particle's dynamics and the data synthesis.
+Main implementation class. Incorporates the particle's dynamics and the data synthesis.
+MCSimulation::MCSimulation | +( | +) | ++ |
Default constructor. Intialize everything with 0's and NULL states, object indexes are set to -1.
+Secondary constructor.
+Main constructor.
+config_file | .conf file name with the full set of experiments parameters. |
params_ | preloaded simulation parameters. |
void MCSimulation::iniObstacles | +( | +) | ++ |
Adds all the obstacles defined in the confiuration files.
+ +MCSimulation::startSimulation | +( | +) | ++ |
Warp function. Calls the dynamicEngine's native DynamicsSimulation::startSimulation function.
+
+
|
+ +static | +
count of
+ +std::vector<Cylinder>* MCSimulation::cylinders_list | +
pointer to a vector with all the instances of Cylinders
+ +SimulableSequence* MCSimulation::dataSynth | +
Simuleable sequence instance, PGSE and General Wavefroms only
+ +DynamicsSimulation* MCSimulation::dynamicsEngine | +
Instance for the particle dynamics
+ +int MCSimulation::id | +
Unique id of the simulation
+ +std::vector<std::vector<float> > MCSimulation::ini_walker_positions | +
patch for regular sampling in a subdivision
+ +Parameters MCSimulation::params | +
Parameters instance1
std::vector<PLYObstacle>* MCSimulation::plyObstacles_list | +
pointer to a vector with all the instances of PLYObstacles
+ +Scheme MCSimulation::scheme | +
Scheme file, only PGSE in camino format is supported in 0.2
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Obstacle, including all inherited members.
+checkCollision(Walker &walker, Eigen::Array3d &step, const double &step_lenght, Collision &colision) | Obstacle | |
count_perc_crossings | Obstacle | |
elasticBounceAgainsPlane(Eigen::Vector3d &ray_origin, Eigen::Vector3d &normal, double &t, Eigen::Vector3d &step) (defined in Obstacle) | Obstacle | |
id | Obstacle | |
minDistance(Walker &w) | Obstacle | |
Obstacle() | Obstacle | |
percolation | Obstacle | |
T2 | Obstacle |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Obstacle Base Class ==============================================================================/. + More...
+ +#include <obstacle.h>
+Public Member Functions | |
+ | Obstacle () |
Default constructor. Does nothing. | |
bool | checkCollision (Walker &walker, Eigen::Array3d &step, const double &step_lenght, Collision &colision) |
Basic collision function. Returns the if there was any collision on against the obstacle. More... | |
+void | elasticBounceAgainsPlane (Eigen::Vector3d &ray_origin, Eigen::Vector3d &normal, double &t, Eigen::Vector3d &step) |
double | minDistance (Walker &w) |
Returns the minimum distance of collision. More... | |
+Public Attributes | |
int | id |
int | count_perc_crossings |
double | percolation |
double | T2 |
Obstacle Base Class ==============================================================================/.
+Father class to define the base of any other obstacle (wall or substrate)
+Obstacle::checkCollision | +( | +Walker & | +walker, | +
+ | + | Eigen::Array3d & | +step, | +
+ | + | const double & | +step_lenght, | +
+ | + | Collision & | +colision | +
+ | ) | ++ |
Basic collision function. Returns the if there was any collision on against the obstacle.
+walker,Walker | instance in the simulation. |
3d | step. Is assumed to be normalized. |
step_lenght,length | used as the maximum step collision distance. |
colilsion,Collision | instance to save the collision (if any) details. |
double Obstacle::minDistance | +( | +Walker & | +w | ) | ++ |
Returns the minimum distance of collision.
+walker | to find the (closest) distance. |
int Obstacle::count_perc_crossings | +
Auxiliar value to count the number of percolatin crossings in a simulation
+ +int Obstacle::id | +
Unique id of the simulation
+ +double Obstacle::percolation | +
Percolation value between 0 and 1.
+ +double Obstacle::T2 | +
T2 decay, not used by default
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for PGSESequence, including all inherited members.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+Public Member Functions | |
+ | PGSESequence () |
Default constructor, set default NULL values. Not to be used. | |
+ | PGSESequence (Scheme scheme_) |
Main constructor. Takes a pre-loaded Scheme file. | |
+ | PGSESequence (Scheme scheme_, const char *traj_file_name) |
Main constructor. Takes a pre-loaded Scheme file and a traj file name. if this argument is passed a traj file is should be written. | |
+ | PGSESequence (const char *scheme_file_name) |
Constructor. Takes a the scheme file name to be loaded. | |
+ | PGSESequence (const char *scheme_file_name, const char *traj_file_name) |
Constructor. Takes a scheme file name to be loaded and atraj file name. if this argument is passed a traj file is should be written. | |
+ | ~PGSESequence () |
Destuctor. Does nothing. | |
+void | getGradImpulse (int i, double t, double tLast, Eigen::Vector3d &Gdt) |
For using w/o the adt array. | |
+void | getGradImpuse (int i, double t, Eigen::Vector3d Gdt) |
For using with the adt array. | |
+double | getbValue (unsigned) |
Analytical defined b-value. | |
+double | getFreeDecay (unsigned i, double D) |
Expected free Decay. | |
double | getNumericalbValue (unsigned) |
+void | getDWISignal () |
Computes de DW signal from a trajfile. | |
+void | readSchemeFile () |
reads the scheme files | |
virtual void | update_phase_shift (double dt, double dt_last, Walker walker) |
+virtual void | update_phase_shift (double time_step, Eigen::Matrix3Xd trajectory) |
Updates the phase shift using the full stored trajectory. | |
+virtual void | update_DWI_signal (Walker &walker) |
Updates the DWI signal using the cumulated phase shift. | |
+double | get_adt (int grad_index, double t, double tLast) |
computes de signal value and sign in a certain time step. | |
+double | print_adt_and_dt (int grad_index, double t, double tLast) |
prints the array adt in the format (). | |
+virtual void | setNumberOfSteps (unsigned T) |
Set the number of time steps if they are known. | |
+virtual void | computeDynamicTimeSteps () |
Compute the time for all the steps when they are not constant. | |
Public Member Functions inherited from SimulableSequence | |
+virtual void | initializeSubdivisionSignals () |
Initialize the DWI signals for each subdivision. | |
+virtual void | initializeIntraExtraSignals () |
Initialize the DWI signals for each compartment (intra extra) | |
+virtual void | writeResultingData (std::string output_base_name) |
+virtual void | writePhaseShiftDistribution (std::string output_base_name) |
+virtual void | cleanPhaseShift () |
+virtual void | cleanDWISignal () |
+Public Attributes | |
double | TE |
int | T |
double | dyn_duration |
std::vector< std::vector< double > > | scheme |
Trajectory | trajectory |
Public Attributes inherited from SimulableSequence | |
std::string | scheme_file |
std::vector< double > | DWI |
std::vector< double > | DWI_intra |
std::vector< double > | DWI_extra |
std::vector< double > | DWIi |
std::vector< double > | phase_shift |
int | num_rep |
bool | save_phase_shift |
bool | dynamic |
double | percent_steps_in |
std::vector< double > | time_steps |
Eigen::ArrayXXf | phase_shift_distribution |
std::vector< std::vector< double > > | sub_DWI |
std::vector< std::vector< double > > | sub_DWI_intra |
std::vector< std::vector< double > > | sub_DWI_extra |
std::vector< std::vector< double > > | sub_DWIi |
bool | subdivision_flag = false |
bool | separate_signal = false |
bool | img_signal = false |
std::vector< Subdivision > | subdivisions |
double PGSESequence::getNumericalbValue | +( | +unsigned | +i | ) | ++ |
+
|
+ +virtual | +
i | updated walker |
Implements SimulableSequence.
+ +double PGSESequence::dyn_duration | +
simulation duration (miliseconds)
+ +std::vector< std::vector<double> > PGSESequence::scheme | +
Scheme file values
+ +int PGSESequence::T | +
num bins (time steps)
+ +double PGSESequence::TE | +
Time Echo.
+ +Trajectory PGSESequence::trajectory | +
If the signal is computed from a .trajfile
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for PLYCollisionSphere, including all inherited members.
+big_sphere_distance | Collisionsphere | |
big_sphere_list_end | PLYCollisionSphere | |
collision_list | PLYCollisionSphere | |
Collisionsphere() (defined in Collisionsphere) | Collisionsphere | inline |
list_size (defined in Collisionsphere) | Collisionsphere | |
PLYCollisionSphere() (defined in PLYCollisionSphere) | PLYCollisionSphere | |
popFromBigSphere(unsigned i, unsigned t) | PLYCollisionSphere | |
popFromSmallSphere(unsigned i, unsigned t) | PLYCollisionSphere | |
push_ply(std::vector< unsigned > list) | PLYCollisionSphere | |
pushToBigSphere(unsigned i, unsigned t) | PLYCollisionSphere | |
pushToSmallSphere(unsigned i, unsigned t) | PLYCollisionSphere | |
setBigSphereSize(float size) | PLYCollisionSphere | |
setSmallSphereSize(float size) | PLYCollisionSphere | |
small_sphere_distance | Collisionsphere | |
small_sphere_list_end | PLYCollisionSphere |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+Public Member Functions | |
void | popFromSmallSphere (unsigned i, unsigned t) |
This function receives a index from the collision list and moves the value to the last position of the list. then decrease the inner sphere end index. This way this index is no longer considered inner collision list. More... | |
void | pushToSmallSphere (unsigned i, unsigned t) |
This function receives a index from the collision list and moves the value to the last position of the list. then increse the inner sphere end index. This way this index is now included in the inner collision list. More... | |
+void | popFromBigSphere (unsigned i, unsigned t) |
This function receives a index from the collision list and moves the value to the last position of the list. Then decrease the inner sphere end index. This way this index is now excluded in the outer collision list. | |
+void | pushToBigSphere (unsigned i, unsigned t) |
This function receives a index from the collision list and moves the value to the last position of the list. Then increase the inner sphere end index. This way this index is now included in the outer collision list. | |
void | setBigSphereSize (float size) |
void | setSmallSphereSize (float size) |
void | push_ply (std::vector< unsigned > list) |
+Public Attributes | |
std::vector< unsigned > | small_sphere_list_end |
std::vector< unsigned > | big_sphere_list_end |
std::vector< std::vector< unsigned > > * | collision_list |
Public Attributes inherited from Collisionsphere | |
float | big_sphere_distance |
float | small_sphere_distance |
+unsigned | list_size |
void PLYCollisionSphere::popFromSmallSphere | +( | +unsigned | +i, | +
+ | + | unsigned | +t | +
+ | ) | ++ |
This function receives a index from the collision list and moves the value to the last position of the list. then decrease the inner sphere end index. This way this index is no longer considered inner collision list.
+Removes one index from the list by moving it to the end of the list and decreading the index.
+ +void PLYCollisionSphere::push_ply | +( | +std::vector< unsigned > | +list | ) | ++ |
element | value to be added to the obstacle list |
void PLYCollisionSphere::pushToSmallSphere | +( | +unsigned | +i, | +
+ | + | unsigned | +t | +
+ | ) | ++ |
This function receives a index from the collision list and moves the value to the last position of the list. then increse the inner sphere end index. This way this index is now included in the inner collision list.
+Adds one element to the list by moving it in front of the current index and increasing the index.
+ +void PLYCollisionSphere::setBigSphereSize | +( | +float | +size | ) | ++ |
size | of the list |
void PLYCollisionSphere::setSmallSphereSize | +( | +float | +size | ) | ++ |
size | of the list |
std::vector<unsigned> PLYCollisionSphere::big_sphere_list_end | +
Index vecotr of the LAST element on the list for the big collision sphere
+ +std::vector<std::vector<unsigned> >* PLYCollisionSphere::collision_list | +
Pointer to the list with the triangle indexes for each PLY. The indexes are permuted in its position.
+ +std::vector<unsigned> PLYCollisionSphere::small_sphere_list_end | +
Index vector of the LAST element on the list for the small collision sphere
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for PLYObstacle, including all inherited members.
+checkCollision(Walker &walker, Eigen::Vector3d &step, double &step_lenght, Collision &colision) (defined in PLYObstacle) | PLYObstacle | |
checkCollision(Walker &walker, Eigen::Vector3d &step, double &step_lenght, Collision &colision, std::vector< unsigned > &triangle_list, unsigned list_end) (defined in PLYObstacle) | PLYObstacle | |
Obstacle::checkCollision(Walker &walker, Eigen::Array3d &step, const double &step_lenght, Collision &colision) | Obstacle | |
count_perc_crossings | Obstacle | |
elasticBounceAgainsPlane(Eigen::Vector3d &ray_origin, Eigen::Vector3d &normal, double &t, Eigen::Vector3d &step) (defined in Obstacle) | Obstacle | |
face_number (defined in PLYObstacle) | PLYObstacle | |
faces (defined in PLYObstacle) | PLYObstacle | |
file_path (defined in PLYObstacle) | PLYObstacle | |
id (defined in PLYObstacle) | PLYObstacle | |
minDistance(Walker &w, unsigned t) (defined in PLYObstacle) | PLYObstacle | |
Obstacle::minDistance(Walker &w) | Obstacle | |
Obstacle() | Obstacle | |
percolation | Obstacle | |
PLYObstacle() (defined in PLYObstacle) | PLYObstacle | |
PLYObstacle(std::string path, double scale_factor_=1) (defined in PLYObstacle) | PLYObstacle | |
PLYObstacle(std::string path, std::vector< Eigen::Vector3d > ¢ers, double max_distance=INFINITY, double scale_factor_=1) (defined in PLYObstacle) | PLYObstacle | |
readPLY_ASCII_triangleFan(std::string ply_file) (defined in PLYObstacle) | PLYObstacle | |
readPLY_ASCII_triangles(std::string ply_file) (defined in PLYObstacle) | PLYObstacle | |
readPLY_ASCII_trianglesSubdivitionDistance(std::string ply_file, std::vector< Eigen::Vector3d > ¢ers, double max_distance) (defined in PLYObstacle) | PLYObstacle | |
scale_factor (defined in PLYObstacle) | PLYObstacle | |
setScaleFactor(double scale) (defined in PLYObstacle) | PLYObstacle | inline |
T2 | Obstacle | |
vert_number (defined in PLYObstacle) | PLYObstacle | |
vertices (defined in PLYObstacle) | PLYObstacle |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
PlyObstacle Derived Class ====================================================================/. + More...
+ +#include <plyobstacle.h>
+Public Member Functions | |
+ | PLYObstacle (std::string path, double scale_factor_=1) |
+ | PLYObstacle (std::string path, std::vector< Eigen::Vector3d > ¢ers, double max_distance=INFINITY, double scale_factor_=1) |
+void | readPLY_ASCII_triangleFan (std::string ply_file) |
+void | readPLY_ASCII_triangles (std::string ply_file) |
+void | readPLY_ASCII_trianglesSubdivitionDistance (std::string ply_file, std::vector< Eigen::Vector3d > ¢ers, double max_distance) |
+void | setScaleFactor (double scale) |
+bool | checkCollision (Walker &walker, Eigen::Vector3d &step, double &step_lenght, Collision &colision) |
+bool | checkCollision (Walker &walker, Eigen::Vector3d &step, double &step_lenght, Collision &colision, std::vector< unsigned > &triangle_list, unsigned list_end) |
+double | minDistance (Walker &w, unsigned t) |
Public Member Functions inherited from Obstacle | |
+ | Obstacle () |
Default constructor. Does nothing. | |
bool | checkCollision (Walker &walker, Eigen::Array3d &step, const double &step_lenght, Collision &colision) |
Basic collision function. Returns the if there was any collision on against the obstacle. More... | |
+void | elasticBounceAgainsPlane (Eigen::Vector3d &ray_origin, Eigen::Vector3d &normal, double &t, Eigen::Vector3d &step) |
double | minDistance (Walker &w) |
Returns the minimum distance of collision. More... | |
+Public Attributes | |
+unsigned | vert_number |
+unsigned | face_number |
+std::string | file_path |
+Vertex * | vertices |
+Triangle * | faces |
+double | scale_factor |
+int | id |
Public Attributes inherited from Obstacle | |
int | id |
int | count_perc_crossings |
double | percolation |
double | T2 |
PlyObstacle Derived Class ====================================================================/.
+PLYObstacle derived class. Implements obstacles loaded from pre-defined PY meshes.
+Implements obstacles loaded from pre-constructed PLY meshes. The PLY format should be without any other experiment.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for ParallelMCSimulation, including all inherited members.
+aprox_volumen | ParallelMCSimulation | |
cylinders_list | ParallelMCSimulation | |
icvf | ParallelMCSimulation | |
illegal_count | ParallelMCSimulation | |
mean_second_passed | ParallelMCSimulation | |
ParallelMCSimulation(std::string config_file) | ParallelMCSimulation | |
ParallelMCSimulation(Parameters ¶ms) | ParallelMCSimulation | |
ParallelMCSimulation() (defined in ParallelMCSimulation) | ParallelMCSimulation | inline |
params | ParallelMCSimulation | |
plyObstacles_list | ParallelMCSimulation | |
sim_threads | ParallelMCSimulation | |
simulations | ParallelMCSimulation | |
startSimulation() | ParallelMCSimulation | |
stuck_count | ParallelMCSimulation | |
total_ini_walker_pos | ParallelMCSimulation | |
total_sim_particles | ParallelMCSimulation | |
~ParallelMCSimulation() (defined in ParallelMCSimulation) | ParallelMCSimulation |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Class to handle multiprocessor paralellisation. This class basicly controls and syncronize several initializations of MonteCarlo simulations and add up the results. It's a way of soft paralelization. + More...
+ +#include <parallelmcsimulation.h>
+Public Member Functions | |
ParallelMCSimulation (std::string config_file) | |
Main constructor. More... | |
ParallelMCSimulation (Parameters ¶ms) | |
Constructor. More... | |
void | startSimulation () |
Warp function. Calls the MCSimulation's native function for all the instances. More... | |
+Public Attributes | |
Parameters | params |
double | mean_second_passed |
unsigned | total_sim_particles |
unsigned | stuck_count |
unsigned | illegal_count |
double | icvf |
double | aprox_volumen |
std::vector< MCSimulation * > | simulations |
std::vector< std::thread > | sim_threads |
std::vector< PLYObstacle > | plyObstacles_list |
std::vector< Cylinder > | cylinders_list |
std::vector< Eigen::Vector3f > | total_ini_walker_pos |
Class to handle multiprocessor paralellisation. This class basicly controls and syncronize several initializations of MonteCarlo simulations and add up the results. It's a way of soft paralelization.
+Implementation of the PGSE protocol.
+==============================================================================/
+Class to handle multiprocessor paralellisation
+ParallelMCSimulation::ParallelMCSimulation | +( | +std::string | +config_file | ) | ++ |
Main constructor.
+config_file | .conf file name with the full set of experiments parameters. |
ParallelMCSimulation::ParallelMCSimulation | +( | +Parameters & | +params | ) | ++ |
Constructor.
+parameters | of the simulation. Read form a conf file or given by the user. |
ParallelMCSimulation::startSimulation | +( | +) | ++ |
Warp function. Calls the MCSimulation's native function for all the instances.
+double ParallelMCSimulation::aprox_volumen | +
Stores the volumen based on ICVF and the voxel size
+ +std::vector<Cylinder> ParallelMCSimulation::cylinders_list | +
vector with all the instances of cylinders
+ +double ParallelMCSimulation::icvf | +
Stores the ICVF based on the particles sampling
+ +unsigned ParallelMCSimulation::illegal_count | +
Counts the number of particles that attempt to cross
+ +double ParallelMCSimulation::mean_second_passed | +
Simualation total time in seconds
+ +Parameters ParallelMCSimulation::params | +
Parameters instance
std::vector<PLYObstacle> ParallelMCSimulation::plyObstacles_list | +
vector with all the instances of PLYObstacles
+ +std::vector<std::thread> ParallelMCSimulation::sim_threads | +
Number of threads (instances and processors) to be used
+ +std::vector<MCSimulation*> ParallelMCSimulation::simulations | +
vector of pointers to MCSimulation instances
+ +unsigned ParallelMCSimulation::stuck_count | +
Counts the number of particles stuck in the simulations
+ +std::vector<Eigen::Vector3f> ParallelMCSimulation::total_ini_walker_pos | +
Number of threads (instances and processors) to be used
+ +unsigned ParallelMCSimulation::total_sim_particles | +
Total number of simulated particles
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Basic class to store simulation parameters =============================================================/. + More...
+ +#include <parameters.h>
Basic class to store simulation parameters =============================================================/.
+Basic class to store and handle all the possible simulation parameters.
+Class used to hold and operate all the user and simulation parameters. This is the main class to comunicate between instances of the simulations and derived classes. So, in a way, it's an interface for the comunication between component classes in the simulation.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Parameters, including all inherited members.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+Public Member Functions | |
+ | Parameters () |
Default constructor. Sets all the parameters to default and NULL values. | |
void | readSchemeFile (std::string conf_file) |
Reads all the parameters from a scheme file in the correct format the function scales them if necessary. The parameters are passed by listing, first, the parameter name, followed by the value. The supported parameters are: number of walkers (N), number of steps (T), duration (duration), PGSE scheme file (scheme_file), min voxles limits (min limits), max voxel limits (max_limits), diffusivity (diffusivity), index name for the trajectory and output values (out_traj_file_index), initial walker position file (ini_walkers_file), write a txt traj flag and header (write_text), write binary traj file and header, write_bin, flag to scale the values from estandar unit (scale_from_stu), random seed (seed). More... | |
+void | setNumWalkers (unsigned N) |
void | setNumSteps (unsigned T) |
set the number of steps in the simulation. More... | |
void | setDiffusivity (double Diff) |
set the simulation diffusivity. More... | |
void | setSimDuration (double duration) |
sets the simulation duration. More... | |
+void | setWriteTrajFlag (bool write_bin) |
+void | setWriteTextFlag (bool write_txt_) |
void | setMinLimits (Eigen::Vector3d min_limits_) |
set the bottom left corner of the voxel to be simulated. More... | |
void | setMaxLimits (Eigen::Vector3d max_limits_) |
set the bottom left corner of the voxel to be simulated. More... | |
void | setTrajFileName (std::string traj_file_) |
Set the prefix of the name for the traj file (txt and .traj) More... | |
void | setOutputBaseFileName (std::string output_base_name_) |
Set the prefix of the name for all the outputs in the simulation. More... | |
void | iniWalkersFileName (std::string ini_walkers_file_) |
void | setSchemeFileName (std::string scheme_file_) |
Sets the scheme file name to be used for the data synthesis. More... | |
unsigned | getNumWalkers () |
unsigned | getNumSteps () |
double | getDiffusivity () |
bool | getWriteTrajFlag () |
bool | getWriteTextFlag () |
Eigen::Vector3d | getMinLimits () |
Eigen::Vector3d | getMaxLimits () |
std::string | getTrajFileName () |
std::string | getOutputBaseFileName () |
+std::string | getIniWalkersFileName () |
std::string | getSchemeFileName () |
+void | addSubdivisions () |
+Static Public Member Functions | |
+static int | str_dist (std::string s, std::string t) |
+Public Attributes | |
unsigned | num_walkers |
unsigned | num_steps |
double | diffusivity |
double | sim_duration |
bool | write_traj |
bool | write_txt |
bool | write_bin |
bool | scale_from_stu |
bool | save_phase_shift |
long | seed |
bool | verbatim |
std::string | traj_file |
std::string | output_base_name |
std::string | ini_walkers_file |
unsigned | ini_walkers_file_count |
std::string | ini_walker_flag |
std::string | scheme_file |
Eigen::Vector3d | min_limits |
Eigen::Vector3d | max_limits |
std::vector< std::string > | cylinders_files |
std::vector< std::string > | PLY_files |
std::vector< double > | PLY_scales |
std::vector< double > | PLY_percolation |
std::vector< float > | ini_delta_pos |
unsigned | num_proc |
std::vector< std::pair< Eigen::Vector3d, Eigen::Vector3d > > | voxels_list |
std::vector< Eigen::Vector3f > | prop_dirs |
std::vector< unsigned > | record_pos_times |
std::vector< unsigned > | record_phase_times |
std::vector< unsigned > | record_prop_times |
bool | hex_packing |
double | hex_packing_radius |
double | hex_packing_separation |
bool | gamma_packing |
+bool | gamma_output_conf |
+double | gamma_packing_alpha |
+double | gamma_packing_beta |
+double | gamma_icvf |
+double | gamma_output_configuration |
+unsigned | gamma_num_cylinders |
float | min_cyl_radii |
bool | subdivision_flag = false |
unsigned | number_subdivisions = 0 |
std::string | subdivisions_file = "" |
std::vector< Subdivision > | subdivisions |
double | obstacle_permeability = 0 |
double | collision_sphere_distance = 0 |
double | max_simulation_time = 0 |
bool | log_phase_shift = false |
bool | log_opp = false |
bool | discard_stucks = true |
bool | discard_illegals = true |
bool | log_propagator = false |
Eigen::Vector3d | min_sampling_area |
Eigen::Vector3d | max_sampling_area |
bool | custom_sampling_area |
bool | computeVolume |
bool | separate_signals |
bool | img_signal |
Parameters::getDiffusivity | +( | +) | ++ |
Parameters::getMaxLimits | +( | +) | ++ |
Parameters::getMinLimits | +( | +) | ++ |
Parameters::getNumSteps | +( | +) | ++ |
Parameters::getNumWalkers | +( | +) | ++ |
Parameters::getOutputBaseFileName | +( | +) | ++ |
Parameters::getSchemeFileName | +( | +) | ++ |
Parameters::getTrajFileName | +( | +) | ++ |
Parameters::getWriteTextFlag | +( | +) | ++ |
Parameters::getWriteTrajFlag | +( | +) | ++ |
Parameters::iniWalkersFileName | +( | +std::string | +ini_walkers_file_ | ) | ++ |
Parameters::readSchemeFile | +( | +std::string | +conf_file | ) | ++ |
Reads all the parameters from a scheme file in the correct format the function scales them if necessary. The parameters are passed by listing, first, the parameter name, followed by the value. The supported parameters are: number of walkers (N), number of steps (T), duration (duration), PGSE scheme file (scheme_file), min voxles limits (min limits), max voxel limits (max_limits), diffusivity (diffusivity), index name for the trajectory and output values (out_traj_file_index), initial walker position file (ini_walkers_file), write a txt traj flag and header (write_text), write binary traj file and header, write_bin, flag to scale the values from estandar unit (scale_from_stu), random seed (seed).
+conf_file |
Parameters::setDiffusivity | +( | +double | +Diff | ) | ++ |
set the simulation diffusivity.
+Diff | diffusivity value. |
Parameters::setMaxLimits | +( | +Eigen::Vector3d | +max_limits_ | ) | ++ |
set the bottom left corner of the voxel to be simulated.
+max_limits_ | vector with the maximum voxel limits (bottom right corner). |
Parameters::setMinLimits | +( | +Eigen::Vector3d | +min_limits_ | ) | ++ |
set the bottom left corner of the voxel to be simulated.
+min_limits_ | vector with the minimum voxel limits (bottom left corner). |
Parameters::setNumSteps | +( | +unsigned | +T | ) | ++ |
set the number of steps in the simulation.
+T | number of steps |
Parameters::setOutputBaseFileName | +( | +std::string | +output_base_name_ | ) | ++ |
Set the prefix of the name for all the outputs in the simulation.
+output_base_name | prefix for the outputs |
Parameters::setSchemeFileName | +( | +std::string | +scheme_file_ | ) | ++ |
Sets the scheme file name to be used for the data synthesis.
+scheme_file_ | scheme (PGSE )file name. |
Parameters::setSimDuration | +( | +double | +duration | ) | ++ |
sets the simulation duration.
+duration | simulation duration. |
Parameters::setTrajFileName | +( | +std::string | +traj_file_ | ) | ++ |
Set the prefix of the name for the traj file (txt and .traj)
+traj_file_ | prefix of the traj file. |
double Parameters::collision_sphere_distance = 0 | +
Custiom size for the collision sphere
+ +bool Parameters::computeVolume | +
Forces the volumen computation (slower) even without custom sampling
+ +bool Parameters::custom_sampling_area | +
True if a custom sampling area is defined (voxel for default)
+ +std::vector<std::string> Parameters::cylinders_files | +
file paths with a list of cilinders obstacles
+ +double Parameters::diffusivity | +
D, diffusivity constant
+ +bool Parameters::discard_illegals = true | +
flag, true to discard possible illegal crossings, Trump by default.
+ +bool Parameters::discard_stucks = true | +
flag, true to discard posible stuck particles (max bouncing reached)
+ +bool Parameters::gamma_packing | +
flag, true if a gamma distribution of cylinders will be initialized
+ +bool Parameters::hex_packing | +
flag, true if an haxagonal packing should be used
+ +double Parameters::hex_packing_radius | +
float, constant radius for the cylinders
+ +double Parameters::hex_packing_separation | +
float, separation distance betwen cylinders (separation > 2*radius)
+ +bool Parameters::img_signal | +
True to save the img part of the dwi signal (false by default)
+ +std::vector<float> Parameters::ini_delta_pos | +
Delta position for the walkers
+ +std::string Parameters::ini_walker_flag | +
where to initialize the walkers
+ +std::string Parameters::ini_walkers_file | +
initial walker position file (if any)
+ +unsigned Parameters::ini_walkers_file_count | +
number of walker positions initialize in the configuration file
+ +bool Parameters::log_opp = false | +
flag, true to save one per process output
+ +bool Parameters::log_phase_shift = false | +
flag, true to save the final phase shift distribution
+ +bool Parameters::log_propagator = false | +
flag, true saves the propagator for a given set of directions and times
+ +Eigen::Vector3d Parameters::max_limits | +
voxel max limits (if any)
+ +Eigen::Vector3d Parameters::max_sampling_area | +
Max defining point to delimiter the uniform sampling of walkers
+ +double Parameters::max_simulation_time = 0 | +
Maximum simulation time for the DYNAMIC SIMULATION
+ +float Parameters::min_cyl_radii | +
Minimum radii (in um) to be sampled
+ +Eigen::Vector3d Parameters::min_limits | +
voxel min limits (if any) (bottom left corner)
+ +Eigen::Vector3d Parameters::min_sampling_area | +
Min defining point to delimiter the uniform sampling of walkers
+ +unsigned Parameters::num_proc | +
Number of precessors/process to launch in parallel
+ +unsigned Parameters::num_steps | +
T, number of steps
+ +unsigned Parameters::num_walkers | +
N, number of walkers
+ +unsigned Parameters::number_subdivisions = 0 | +
saves the number of subdivisions for an initialzied voxel (needed)
+ +double Parameters::obstacle_permeability = 0 | +
Obstacles permeability
+ +std::string Parameters::output_base_name | +
output files base name (path + sufix)
+ +std::vector<std::string> Parameters::PLY_files | +
file paths with PLY obstacle files
+ +std::vector<double> Parameters::PLY_percolation | +
Auxiliary vector to save PLY percolation
+ +std::vector<double> Parameters::PLY_scales | +
Auxiliary vector to save PLY file scales
+ +std::vector<Eigen::Vector3f> Parameters::prop_dirs | +
Saves the directions used to compute the propagator
+ +std::vector<unsigned> Parameters::record_phase_times | +
time indexes, used to save the phase shif of all walkers at certain time
+ +std::vector<unsigned> Parameters::record_pos_times | +
time indexes, used to save the position of all walkers at certain time
+ +std::vector<unsigned> Parameters::record_prop_times | +
time indexes, used to save the mean propagator of the walkers at c. times
+ +bool Parameters::save_phase_shift | +
flag, saves the phase shift distribution for all particles
+ +bool Parameters::scale_from_stu | +
flag, true if the scheme file is in standar units m,s
+ +std::string Parameters::scheme_file | +
signal adquisition scheme file (if any)
+ +long Parameters::seed | +
Initial seed for the random generator
+ +bool Parameters::separate_signals | +
Separate the signals into intra and extra (compute_volume on)
+ +double Parameters::sim_duration | +
simulation total time
+ +bool Parameters::subdivision_flag = false | +
flag to check if we have several voxel subdivision to compute the signal
+ +std::vector<Subdivision> Parameters::subdivisions | +
saves actual positions of the subdivision to compute the signal
+ +std::string Parameters::subdivisions_file = "" | +
file with the list of subdivisions coordinates to compute the signal
+ +std::string Parameters::traj_file | +
Trajectory file path
+ +bool Parameters::verbatim | +
False to omit displaying state and warnings
+ +std::vector<std::pair<Eigen::Vector3d,Eigen::Vector3d> > Parameters::voxels_list | +
voxel min and max positions list (deprecated)
+ +bool Parameters::write_bin | +
flag, writes the output signal in binary format (True by default)
+ +bool Parameters::write_traj | +
flag, write a traj file or not, binary format only
+ +bool Parameters::write_txt | +
flag, writes DWI output signals in .txt if True
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Plane, including all inherited members.
+CheckCollision(Walker &walker, Eigen::Vector3d &step, double tmax, Collision &colision) (defined in Plane) | Plane | |
d (defined in Plane) | Plane | |
normal (defined in Plane) | Plane | |
Plane() (defined in Plane) | Plane | inline |
Plane(Eigen::Vector3d normal_, Eigen::Vector3d plane_center_, double d_) (defined in Plane) | Plane | |
Plane(Eigen::Vector3d &a, Eigen::Vector3d &b, Eigen::Vector3d &c, Eigen::Vector3d &d) (defined in Plane) | Plane | |
plane_center (defined in Plane) | Plane |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Main class. Implements basic voxel limits and operations. =================================================/. + More...
+ +#include <voxel.h>
+Public Member Functions | |
+ | Plane (Eigen::Vector3d normal_, Eigen::Vector3d plane_center_, double d_) |
+ | Plane (Eigen::Vector3d &a, Eigen::Vector3d &b, Eigen::Vector3d &c, Eigen::Vector3d &d) |
+bool | CheckCollision (Walker &walker, Eigen::Vector3d &step, double tmax, Collision &colision) |
+Public Attributes | |
+Eigen::Vector3d | normal |
+Eigen::Vector3d | plane_center |
+double | d |
Main class. Implements basic voxel limits and operations. =================================================/.
+Class to handle and manage the voxels in the simulations. So far only one voxel at the time can be handled. To improve to several voxels, modifications shall be done.
+ +Auxiliary class to implements plane's interactions with particles.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Propagator, including all inherited members.
+directions (defined in Propagator) | Propagator | |
initPropagator() (defined in Propagator) | Propagator | |
log_times (defined in Propagator) | Propagator | |
num_dirs (defined in Propagator) | Propagator | |
num_times (defined in Propagator) | Propagator | |
Propagator() (defined in Propagator) | Propagator | |
propagator_log (defined in Propagator) | Propagator |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+Public Member Functions | |
+void | initPropagator () |
+Public Attributes | |
+uint | num_dirs =0 |
+uint | num_times = 0 |
+Eigen::Matrix3Xf | directions |
+std::vector< unsigned > | log_times |
+std::vector< std::vector< float > > | propagator_log |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Scheme, including all inherited members.
+duration | Scheme | |
header | Scheme | |
num_rep | Scheme | |
readSchemeFile(std::string scheme_file_, bool scale_from_stu=0) (defined in Scheme) | Scheme | |
scale_from_stu | Scheme | |
scheme | Scheme | |
Scheme() (defined in Scheme) | Scheme | |
Scheme(std::string scheme_file_) (defined in Scheme) | Scheme | |
scheme_file | Scheme | |
T | Scheme | |
type | Scheme | |
~Scheme() (defined in Scheme) | Scheme | inline |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Auxiliary class to save scheme_files values =============================================================/. + More...
+ +#include <scheme.h>
+Public Member Functions | |
+ | Scheme (std::string scheme_file_) |
+void | readSchemeFile (std::string scheme_file_, bool scale_from_stu=0) |
+Public Attributes | |
std::string | scheme_file |
std::string | header |
std::string | type |
int | num_rep |
float | duration |
float | T |
bool | scale_from_stu |
std::vector< std::vector< double > > | scheme |
Auxiliary class to save scheme_files values =============================================================/.
+Helper class to store, handle and read scheme files values .
+float Scheme::duration | +
time duration (wavefroms)
+ +std::string Scheme::header | +
Header on the scheme_file
+ +int Scheme::num_rep | +
Number of gradients
+ +bool Scheme::scale_from_stu | +
True if the input is in standar units
+ +std::vector< std::vector<double> > Scheme::scheme | +
Scheme values
+ +std::string Scheme::scheme_file | +
Scheme file path
+ +float Scheme::T | +
number of time steps (wavefroms)
+ +std::string Scheme::type | +
Sequence type (PGSE only so far)
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Collision Final class ====================================================================/. + More...
+ +#include <sentinel.h>
Collision Final class ====================================================================/.
+Auxiliar class to check error and misbehaviours during the particle dynamics.
+Class used to check the possible numerical errors or un-handed cases inside the dynamic simulation.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for SimErrno, including all inherited members.
+appendRepetitionLabel(Parameters ¶ms) | SimErrno | static |
checkConfigurationFile(const char *configuration_file) | SimErrno | static |
checkCylindersListFile(Parameters ¶ms) | SimErrno | static |
checkFileExist(const std::string name) | SimErrno | inlinestatic |
checkGammaDistributionParamaters(Parameters ¶ms) | SimErrno | static |
checkInitWalkerFile(Parameters ¶ms) | SimErrno | static |
checkOuputPrefixAndWriteInfo(Parameters ¶ms) | SimErrno | static |
checkPLYFiles(Parameters ¶ms) | SimErrno | static |
checkSchemeFile(Parameters ¶ms) | SimErrno | static |
checkSimulationParameters(Parameters ¶ms) | SimErrno | static |
checkSubdivisionsFile(Parameters ¶ms) | SimErrno | static |
checkVoxelLimits(Parameters ¶ms) | SimErrno | static |
currentDateTime() (defined in SimErrno) | SimErrno | static |
error(std::string message, std::ostream &, bool color=1) | SimErrno | static |
expectedTime(std::string completed, std::string time, std::ostream &, bool color=1, std::string steps_second="", std::string endl_str="") | SimErrno | static |
info(std::string message, std::ostream &, bool color=1) | SimErrno | static |
infoMenu(std::string message, std::string value, std::ostream &, bool color=1, int space=0) | SimErrno | static |
printSimulatinInfo(Parameters ¶ms, std::ostream &, bool color=1) | SimErrno | static |
SimErrno() (defined in SimErrno) | SimErrno | |
warning(std::string message, std::ostream &, bool color=1) | SimErrno | static |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Simulation Input and parameter errors handling class =================================================/. + More...
+ +#include <simerrno.h>
+Static Public Member Functions | |
static bool | checkFileExist (const std::string name) |
Return true if the file does exist, false otherwise. More... | |
static bool | checkSimulationParameters (Parameters ¶ms) |
Return false if any of the parameters are inconsistent or bugged. In may assert the program. More... | |
static bool | checkSchemeFile (Parameters ¶ms) |
Return false if any of the parameters are inconsistent or bugged. In may assert the program. More... | |
static bool | checkPLYFiles (Parameters ¶ms) |
Return false if any of the PLY files are inconsistent or bugged. In may assert the program. More... | |
static bool | checkCylindersListFile (Parameters ¶ms) |
Return false if any of the cylinder list files are inconsistent or bugged. In may assert the program. More... | |
static bool | checkInitWalkerFile (Parameters ¶ms) |
Return false if the initial position file is inconsistent or bugged. In may assert the program. More... | |
static bool | checkVoxelLimits (Parameters ¶ms) |
Return false if the voxel instances are inconsistent or bugged. In may assert the program. More... | |
static bool | checkConfigurationFile (const char *configuration_file) |
Return false if the scheme file does not exist or there are inconsistent or bugs. In may assert the program. More... | |
static void | printSimulatinInfo (Parameters ¶ms, std::ostream &, bool color=1) |
static void | checkOuputPrefixAndWriteInfo (Parameters ¶ms) |
Return false if the output location and prefix are inconsistence or bugged. More... | |
static bool | checkGammaDistributionParamaters (Parameters ¶ms) |
Return false if the there are errors or inconsistencies in the gamma distr. parameters. More... | |
static void | warning (std::string message, std::ostream &, bool color=1) |
static void | info (std::string message, std::ostream &, bool color=1) |
static void | infoMenu (std::string message, std::string value, std::ostream &, bool color=1, int space=0) |
static void | error (std::string message, std::ostream &, bool color=1) |
static void | expectedTime (std::string completed, std::string time, std::ostream &, bool color=1, std::string steps_second="", std::string endl_str="") |
+static std::string | currentDateTime () |
static bool | checkSubdivisionsFile (Parameters ¶ms) |
Return false if any of the elements in the file are miss configured. More... | |
static void | appendRepetitionLabel (Parameters ¶ms) |
Appends a repetition label on the prefix command so no results are overwritten, helpful if you are running batch of simulation inside a server. More... | |
Simulation Input and parameter errors handling class =================================================/.
+Class ot handle the errors in the parameters, logical and on the syntaxis.
+Class to handle the errors in the parameters, logical and on the syntax
+This class contains a set of static methods to check that the configuration files exist and that the parameters are correctly set. This may cause asserts ERRORS or WARNINGS.
+
+
|
+ +static | +
Appends a repetition label on the prefix command so no results are overwritten, helpful if you are running batch of simulation inside a server.
+parameter | instance |
+
|
+ +static | +
Return false if the scheme file does not exist or there are inconsistent or bugs. In may assert the program.
+parameter | instance |
+
|
+ +static | +
Return false if any of the cylinder list files are inconsistent or bugged. In may assert the program.
+parameter | instance |
+
|
+ +inlinestatic | +
Return true if the file does exist, false otherwise.
+name | file path |
+
|
+ +static | +
Return false if the there are errors or inconsistencies in the gamma distr. parameters.
+parameter | instance |
+
|
+ +static | +
Return false if the initial position file is inconsistent or bugged. In may assert the program.
+parameter | instance |
+
|
+ +static | +
Return false if the output location and prefix are inconsistence or bugged.
+parameter | instance |
+
|
+ +static | +
Return false if any of the PLY files are inconsistent or bugged. In may assert the program.
+parameter | instance |
+
|
+ +static | +
Return false if any of the parameters are inconsistent or bugged. In may assert the program.
+parameter | instance |
+
|
+ +static | +
Return false if any of the parameters are inconsistent or bugged. In may assert the program.
+parameter | instance |
+
|
+ +static | +
Return false if any of the elements in the file are miss configured.
+parameter | instance |
+
|
+ +static | +
Return false if the voxel instances are inconsistent or bugged. In may assert the program.
+parameter | instance |
+
|
+ +static | +
iostream | where to print ! |
colour | flag, false if no colour should be display or written |
+
|
+ +static | +
iostream | where to print ! |
colour | flag, false if no colour should be display or written ! |
end | flag, false if no end of line string should be printing |
+
|
+ +static | +
iostream | where to print |
colour | flag, false if no colour should be display or written |
+
|
+ +static | +
iostream | where to print ! |
colour | flag, false if no colour should be display or written ! |
spacing | at the end of the message |
+
|
+ +static | +
parameter | instance |
iostream | to print to |
color | flag, false if no colour should be display or written |
+
|
+ +static | +
iostream | where to print |
colour | flag, false if no colour should be display or written |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for SimulableSequence, including all inherited members.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
MR Sequence Primary Class =============================================================/. + More...
+ +#include <simulablesequence.h>
+Public Member Functions | |
virtual void | getGradImpulse (int i, double t, double tLast, Eigen::Vector3d &Gdt)=0 |
virtual double | getbValue (unsigned i) |
+virtual double | getFreeDecay (unsigned i, double D) |
Expected free Decay. | |
virtual void | update_phase_shift (double dt, double dt_last, Walker walker)=0 |
virtual void | update_phase_shift (double time_step, Eigen::Matrix3Xd trajectory)=0 |
+virtual void | update_DWI_signal (Walker &walker)=0 |
Updates the DWI signal using the cumulated phase shift. | |
+virtual void | setNumberOfSteps (unsigned T)=0 |
Set the number of time steps if they are known. | |
+virtual void | computeDynamicTimeSteps () |
Compute the time for all the steps when they are not constant. | |
+virtual void | initializeSubdivisionSignals () |
Initialize the DWI signals for each subdivision. | |
+virtual void | initializeIntraExtraSignals () |
Initialize the DWI signals for each compartment (intra extra) | |
+virtual void | writeResultingData (std::string output_base_name) |
+virtual void | writePhaseShiftDistribution (std::string output_base_name) |
+virtual void | cleanPhaseShift () |
+virtual void | cleanDWISignal () |
+Public Attributes | |
std::string | scheme_file |
std::vector< double > | DWI |
std::vector< double > | DWI_intra |
std::vector< double > | DWI_extra |
std::vector< double > | DWIi |
std::vector< double > | phase_shift |
int | num_rep |
bool | save_phase_shift |
bool | dynamic |
double | percent_steps_in |
std::vector< double > | time_steps |
Eigen::ArrayXXf | phase_shift_distribution |
std::vector< std::vector< double > > | sub_DWI |
std::vector< std::vector< double > > | sub_DWI_intra |
std::vector< std::vector< double > > | sub_DWI_extra |
std::vector< std::vector< double > > | sub_DWIi |
bool | subdivision_flag = false |
bool | separate_signal = false |
bool | img_signal = false |
std::vector< Subdivision > | subdivisions |
MR Sequence Primary Class =============================================================/.
+Elemental base clase. Abstract class to synthesise the MRI signal
+
+
|
+ +inlinevirtual | +
i | index of the gradient in the scheme_file (0,N-1) |
Reimplemented in PGSESequence.
+ +
+
|
+ +pure virtual | +
i | Walker index |
t | current time step (in milisenconds) |
tLast | last time step (in milisenconds) |
Gdt | vector to compute de G*dt impulse |
Implemented in GradientWaveform, and PGSESequence.
+ +
+
|
+ +pure virtual | +
i | updated walker |
Implemented in PGSESequence, and GradientWaveform.
+ +
+
|
+ +pure virtual | +
i | updated the phase shift over a whole trajectory |
Implemented in PGSESequence, and GradientWaveform.
+ +std::vector<double> SimulableSequence::DWI | +
Real part of the DWI signal
+ +std::vector<double> SimulableSequence::DWI_extra | +
Real part of the DWI signal extra axonal only (if needed)
+ +std::vector<double> SimulableSequence::DWI_intra | +
Real part of the DWI signal intra axonal olny (if needed)
+ +std::vector<double> SimulableSequence::DWIi | +
imaginary part of the DWI signal
+ +bool SimulableSequence::dynamic | +
Flag to indicate if the time steps are non-uniform
+ +bool SimulableSequence::img_signal = false | +
flag to check if the img part will be computed or not (false default
+ +int SimulableSequence::num_rep | +
number of repetitions .
+ +double SimulableSequence::percent_steps_in | +
percentage of steps that should be inside the gradient times
+ +std::vector<double> SimulableSequence::phase_shift | +
auxiliar phase shift for signal computations.
+ +Eigen::ArrayXXf SimulableSequence::phase_shift_distribution | +
Matrix to save the phase shif distribution
+ +bool SimulableSequence::save_phase_shift | +
flag, if true, saves the pahse shift distribution.
+ +std::string SimulableSequence::scheme_file | +
Scheme file path
+ +bool SimulableSequence::separate_signal = false | +
flag to check if we will separate the signal in intra and extra
+ +std::vector<std::vector<double> > SimulableSequence::sub_DWI | +
Real part of the DWI signal for each subDivision
+ +std::vector<std::vector<double> > SimulableSequence::sub_DWI_extra | +
Real part of the DWI extra signal for each subDivision
+ +std::vector<std::vector<double> > SimulableSequence::sub_DWI_intra | +
Real part of the DWI intra signal for each subDivision
+ +std::vector<std::vector<double> > SimulableSequence::sub_DWIi | +
Imaginary part of the DWI signal for each subdivision
+ +bool SimulableSequence::subdivision_flag = false | +
flag to check if we have several voxel subdivision to compute the signal
+ +std::vector<Subdivision> SimulableSequence::subdivisions | +
saves the actual positions of the subdivision to compute the signal
+ +std::vector<double> SimulableSequence::time_steps | +
Auxiliary array to save the time steps
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Subdivision, including all inherited members.
+density | Subdivision | |
density_extra | Subdivision | |
density_intra | Subdivision | |
isInside(Eigen::Vector3d &pos) | Subdivision | |
max_limits | Subdivision | |
min_limits | Subdivision | |
Subdivision() | Subdivision | |
Subdivision(Eigen::Vector3f &, Eigen::Vector3f &) | Subdivision |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Auxiliary Subdivision Class =============================================================/. + More...
+ +#include <subdivision.h>
+Public Member Functions | |
+ | Subdivision () |
Naive constructor. | |
+ | Subdivision (Eigen::Vector3f &, Eigen::Vector3f &) |
Constructor for a defined list of min and max positions. | |
bool | isInside (Eigen::Vector3d &pos) |
Auxiliary function to check if a 3d position is inside a "subdivision" i.e. defined cube. More... | |
+Public Attributes | |
Eigen::Vector3f | min_limits |
Eigen::Vector3f | max_limits |
int | density |
int | density_intra |
int | density_extra |
Auxiliary Subdivision Class =============================================================/.
+Auxiliary Class. Implementation of the subdivision of a voxel into separate adquisitions
+bool Subdivision::isInside | +( | +Eigen::Vector3d & | +pos | ) | ++ |
Auxiliary function to check if a 3d position is inside a "subdivision" i.e. defined cube.
+pos | 3d position |
int Subdivision::density | +
Counter to save the number of particles inside that region
+ +int Subdivision::density_extra | +
Counter to save the number of particles labeled as Extra in that region
+ +int Subdivision::density_intra | +
Counter to save the number of particles labeled as Intra in that region
+ +Eigen::Vector3f Subdivision::max_limits | +
Vector with the list of max limits points of each subdivisions
+ +Eigen::Vector3f Subdivision::min_limits | +
Vector with the list of min limits points of each subdivisions
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Trajectory, including all inherited members.
+bheaderout (defined in Trajectory) | Trajectory | |
bout (defined in Trajectory) | Trajectory | |
closeTrajReaderFile() | Trajectory | |
dyn_duration (defined in Trajectory) | Trajectory | |
headerfile | Trajectory | |
in (defined in Trajectory) | Trajectory | |
in_header | Trajectory | |
initTrajectory(Parameters params) | Trajectory | |
initTrajReaderFile() (defined in Trajectory) | Trajectory | |
initTrajWriter() | Trajectory | |
initTrajWriterBinary() (defined in Trajectory) | Trajectory | |
initTrajWriterText() (defined in Trajectory) | Trajectory | |
io_flag (defined in Trajectory) | Trajectory | |
isBigEndian | Trajectory | |
N (defined in Trajectory) | Trajectory | |
openTrajReaderFile() (defined in Trajectory) | Trajectory | |
pos_times | Trajectory | |
readCurrentWalkersTrajectory(Eigen::Matrix3Xd &) (defined in Trajectory) | Trajectory | |
readTrajectoryHeader() (defined in Trajectory) | Trajectory | |
reWriteHeaderFile(unsigned num_walkers) (defined in Trajectory) | Trajectory | |
setTrajFile(std::string) | Trajectory | |
steps_subset | Trajectory | |
T | Trajectory | |
theaderout (defined in Trajectory) | Trajectory | |
tout (defined in Trajectory) | Trajectory | |
Trajectory() | Trajectory | |
Trajectory(const char *traj_file, bool isBigEndian_=true, std::string io_flag_="rb") | Trajectory | |
trajfile | Trajectory | |
write_bin | Trajectory | |
write_traj | Trajectory | |
write_txt | Trajectory | |
writePosition(Eigen::Vector3d &) (defined in Trajectory) | Trajectory | |
writePosition(Eigen::Matrix3Xd &) (defined in Trajectory) | Trajectory | |
writePositionBinary(Eigen::Vector3d &) (defined in Trajectory) | Trajectory | |
writePositionBinary(Eigen::Matrix3Xd &) (defined in Trajectory) | Trajectory | |
writePositionText(Eigen::Vector3d &) (defined in Trajectory) | Trajectory | |
writePositionText(Eigen::Matrix3Xd &) (defined in Trajectory) | Trajectory | |
writeTrajectoryHeaderBinary() (defined in Trajectory) | Trajectory | |
writeTrajectoryHeaderText() (defined in Trajectory) | Trajectory | |
~Trajectory() | Trajectory |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Auxiliary class. Handles i/o operation of walker trayectories. ============================/. + More...
+ +#include <trajectory.h>
+Public Member Functions | |
+ | Trajectory () |
Main constructor, Initialice everythin to default. | |
+ | Trajectory (const char *traj_file, bool isBigEndian_=true, std::string io_flag_="rb") |
Contructor , Initialice everythin by parameters. | |
+ | ~Trajectory () |
Destructor, close files and fstreams. | |
+void | initTrajectory (Parameters params) |
Initialice the output files if any. | |
+void | setTrajFile (std::string) |
Setd the traj file operations. | |
void | closeTrajReaderFile () |
+void | openTrajReaderFile () |
+void | initTrajReaderFile () |
+void | readTrajectoryHeader () |
+void | readCurrentWalkersTrajectory (Eigen::Matrix3Xd &) |
void | initTrajWriter () |
+void | initTrajWriterBinary () |
+void | initTrajWriterText () |
+void | writeTrajectoryHeaderBinary () |
+void | writeTrajectoryHeaderText () |
+void | reWriteHeaderFile (unsigned num_walkers) |
+void | writePosition (Eigen::Vector3d &) |
+void | writePositionText (Eigen::Vector3d &) |
+void | writePositionBinary (Eigen::Vector3d &) |
+void | writePosition (Eigen::Matrix3Xd &) |
+void | writePositionText (Eigen::Matrix3Xd &) |
+void | writePositionBinary (Eigen::Matrix3Xd &) |
+Public Attributes | |
std::string | trajfile |
std::string | headerfile |
+FILE * | in |
FILE * | in_header |
+std::ofstream | bout |
+std::ofstream | tout |
+std::ofstream | bheaderout |
+std::ofstream | theaderout |
+unsigned | N |
unsigned | T |
+double | dyn_duration |
+std::string | io_flag |
std::vector< unsigned > | pos_times |
bool | isBigEndian |
bool | write_traj |
bool | write_txt |
bool | write_bin |
bool | steps_subset |
Auxiliary class. Handles i/o operation of walker trayectories. ============================/.
+ +void Trajectory::closeTrajReaderFile | +( | +) | ++ |
Read operations
+ +void Trajectory::initTrajWriter | +( | +) | ++ |
Write operations
+ +std::string Trajectory::headerfile | +
header name
+ +FILE * Trajectory::in_header | +
Files to be written using the previous names binary out, text out, binary header, text header
+ +bool Trajectory::isBigEndian | +
flag if the format is big endian
+ +std::vector<unsigned> Trajectory::pos_times | +
Times indexes when to save the particle positions.
+ +bool Trajectory::steps_subset | +
true if the steps are no uniform
+ +unsigned Trajectory::T | +
number of walkers, total time;
+ +std::string Trajectory::trajfile | +
trajfile name
+ +bool Trajectory::write_bin | +
flag if we want to write a binary traj file
+ +bool Trajectory::write_traj | +
flag if we want to write a traj file
+ +bool Trajectory::write_txt | +
flag if we want to write a text traj file
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Triangle, including all inherited members.
+center (defined in Triangle) | Triangle | |
getNormal(Eigen::Vector3d &normal) (defined in Triangle) | Triangle | |
getVertex(const unsigned i, Eigen::Vector3d &v) (defined in Triangle) | Triangle | |
index (defined in Triangle) | Triangle | |
indexes (defined in Triangle) | Triangle | |
minDistance(const Eigen::Vector3d p) (defined in Triangle) | Triangle | |
normal (defined in Triangle) | Triangle | |
radius (defined in Triangle) | Triangle | |
rayIntersects(const Eigen::Vector3d &ray_origin, const Eigen::Vector3d &step, double &t) (defined in Triangle) | Triangle | |
rayIntersects_MT(const Eigen::Vector3d &ray_origin, const Eigen::Vector3d &step, double &u, double &v, double &t) (defined in Triangle) | Triangle | |
saveNormalAndAuxInfo() (defined in Triangle) | Triangle | |
stepIntersects_MT(Walker &walker, const Eigen::Vector3d &step, const double &max_length, Collision &colision) (defined in Triangle) | Triangle | |
stepIntersects_MT_limits(const Eigen::Vector3d &ray_origin, const Eigen::Vector3d &step, const double &max_length, Collision &colision, const Eigen::Vector3d &limits_mod, double limit_x, double limit_y, double limit_z) (defined in Triangle) | Triangle | |
Triangle() (defined in Triangle) | Triangle | |
Triangle(Vertex *vertices, unsigned index) (defined in Triangle) | Triangle | |
vertices (defined in Triangle) | Triangle |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Auxiliary class. Implements trangular barriers. ===================================/. + More...
+ +#include <triangle.h>
+Public Member Functions | |
+ | Triangle (Vertex *vertices, unsigned index) |
+void | getVertex (const unsigned i, Eigen::Vector3d &v) |
+void | getNormal (Eigen::Vector3d &normal) |
+void | saveNormalAndAuxInfo () |
+bool | rayIntersects (const Eigen::Vector3d &ray_origin, const Eigen::Vector3d &step, double &t) |
+void | stepIntersects_MT (Walker &walker, const Eigen::Vector3d &step, const double &max_length, Collision &colision) |
+void | stepIntersects_MT_limits (const Eigen::Vector3d &ray_origin, const Eigen::Vector3d &step, const double &max_length, Collision &colision, const Eigen::Vector3d &limits_mod, double limit_x, double limit_y, double limit_z) |
+bool | rayIntersects_MT (const Eigen::Vector3d &ray_origin, const Eigen::Vector3d &step, double &u, double &v, double &t) |
+double | minDistance (const Eigen::Vector3d p) |
+Public Attributes | |
+unsigned | index |
+Vertex * | vertices |
+Eigen::Array3i | indexes |
+Eigen::Vector3d | normal |
+Eigen::Vector3d | center |
+double | radius |
Auxiliary class. Implements trangular barriers. ===================================/.
+Helper class to strore and handle trangular barriers.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Vertex, including all inherited members.
+index (defined in Vertex) | Vertex | |
operator()(unsigned i) (defined in Vertex) | Vertex | inline |
points (defined in Vertex) | Vertex | |
Vertex() (defined in Vertex) | Vertex | |
Vertex(const double &x, const double &y, const double &z) (defined in Vertex) | Vertex |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Auxiliary class. Implements basic vertices. ====================================/. + More...
+ +#include <vertex.h>
+Public Member Functions | |
+ | Vertex (const double &x, const double &y, const double &z) |
+double | operator() (unsigned i) |
+Public Attributes | |
+unsigned | index |
+double | points [3] |
Auxiliary class. Implements basic vertices. ====================================/.
+Helper class to strore and handle vertices.
+Vertex of a 3d poly
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Voxel, including all inherited members.
+CheckCollision(Walker &walker, Eigen::Vector3d &step, double &tmax, Collision &colision) (defined in Voxel) | Voxel | |
max_limits (defined in Voxel) | Voxel | |
min_limits (defined in Voxel) | Voxel | |
Voxel() (defined in Voxel) | Voxel | |
Voxel(Eigen::Vector3d min_limits_, Eigen::Vector3d max_limits_) (defined in Voxel) | Voxel | |
walls (defined in Voxel) | Voxel |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
//! Main class. Implements basic voxel limits and operations. Class to handle and manage the voxels in the simulations. So far only one voxel at the time can be handled. To improve to several voxels, modifications shall be done. + More...
+ +#include <voxel.h>
+Public Member Functions | |
+ | Voxel (Eigen::Vector3d min_limits_, Eigen::Vector3d max_limits_) |
+bool | CheckCollision (Walker &walker, Eigen::Vector3d &step, double &tmax, Collision &colision) |
+Public Attributes | |
+Eigen::Vector3d | min_limits |
+Eigen::Vector3d | max_limits |
+Plane | walls [6] |
//! Main class. Implements basic voxel limits and operations. Class to handle and manage the voxels in the simulations. So far only one voxel at the time can be handled. To improve to several voxels, modifications shall be done.
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for Walker, including all inherited members.
+bouncing enum value (defined in Walker) | Walker | |
collision_sphere_cylinders | Walker | |
collision_sphere_ply | Walker | |
extra enum value (defined in Walker) | Walker | |
extra_coll_count | Walker | |
free enum value (defined in Walker) | Walker | |
getIndex() const (defined in Walker) | Walker | |
getInitialPosition(double &, double &, double &) const (defined in Walker) | Walker | |
getInitialPosition(Eigen::Vector3d &) const (defined in Walker) | Walker | |
getNextDirection(Eigen::Vector3d &) const (defined in Walker) | Walker | |
getRealPosition(double &, double &, double &) const (defined in Walker) | Walker | |
getRealPosition(Eigen::Vector3d &) const (defined in Walker) | Walker | |
getVoxelPosition(double &, double &, double &) const (defined in Walker) | Walker | |
getVoxelPosition(Eigen::Vector3d &) const (defined in Walker) | Walker | |
in_obj_index | Walker | |
in_ply_index | Walker | |
index | Walker | |
ini_pos | Walker | |
initial_location (defined in Walker) | Walker | |
initial_sphere_pos_v | Walker | |
intra enum value (defined in Walker) | Walker | |
intra_coll_count | Walker | |
intra_extra_consensus | Walker | |
last_pos_r | Walker | |
last_pos_v | Walker | |
location | Walker | |
next_direction | Walker | |
on_edge enum value (defined in Walker) | Walker | |
on_object enum value (defined in Walker) | Walker | |
on_vertex enum value (defined in Walker) | Walker | |
on_voxel enum value (defined in Walker) | Walker | |
pos_r | Walker | |
pos_r_log | Walker | |
pos_v | Walker | |
pos_v_log | Walker | |
rejection_count | Walker | |
RelativeLocation enum name | Walker | |
setIndex(unsigned int &) (defined in Walker) | Walker | |
setInitialPosition(const double &, const double &, const double &) (defined in Walker) | Walker | |
setInitialPosition(const Eigen::Vector3d &) (defined in Walker) | Walker | |
setNextDirection(Eigen::Vector3d &) (defined in Walker) | Walker | |
setNumberOfSteps(unsigned T) (defined in Walker) | Walker | |
setRandomInitialPosition(const Eigen::Vector3d &min, const Eigen::Vector3d &max) (defined in Walker) | Walker | |
setRealPosition(const double &, const double &, const double &) (defined in Walker) | Walker | |
setRealPosition(const Eigen::Vector3d &) (defined in Walker) | Walker | |
setRealPosLog(const Eigen::Vector3d &pos, unsigned t) (defined in Walker) | Walker | |
setRealPosLog(double x, double y, double z, unsigned t) (defined in Walker) | Walker | |
setVoxelPosition(const double &, const double &, const double &) (defined in Walker) | Walker | |
setVoxelPosition(const Eigen::Vector3d &) (defined in Walker) | Walker | |
setVoxPosLog(const Eigen::Vector3d &pos, unsigned t) (defined in Walker) | Walker | |
setVoxPosLog(double x, double y, double z, unsigned t) (defined in Walker) | Walker | |
state enum name | Walker | |
status | Walker | |
steps_count | Walker | |
steps_per_second | Walker | |
unknown enum value (defined in Walker) | Walker | |
Walker() | Walker | |
Walker(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax) | Walker | |
~Walker() | Walker | inline |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
Spin Final class =============================================================/. + More...
+ +#include <walker.h>
+Public Types | |
enum | state { + on_object, +on_edge, +on_vertex, +on_voxel, + + free, +bouncing + + } |
An enum. More... | |
enum | RelativeLocation { unknown, +intra, +extra + } |
An enum. More... | |
+Public Member Functions | |
Walker () | |
Default constructor. More... | |
~Walker () | |
Walker (double xmin, double xmax, double ymin, double ymax, double zmin, double zmax) | |
Constructor. More... | |
+void | getRealPosition (double &, double &, double &) const |
+void | getRealPosition (Eigen::Vector3d &) const |
+void | getVoxelPosition (double &, double &, double &) const |
+void | getVoxelPosition (Eigen::Vector3d &) const |
+void | getInitialPosition (double &, double &, double &) const |
+void | getInitialPosition (Eigen::Vector3d &) const |
+void | getNextDirection (Eigen::Vector3d &) const |
+unsigned int | getIndex () const |
+void | setRealPosition (const double &, const double &, const double &) |
+void | setRealPosition (const Eigen::Vector3d &) |
+void | setVoxelPosition (const double &, const double &, const double &) |
+void | setVoxelPosition (const Eigen::Vector3d &) |
+void | setInitialPosition (const double &, const double &, const double &) |
+void | setInitialPosition (const Eigen::Vector3d &) |
+void | setNextDirection (Eigen::Vector3d &) |
+void | setRandomInitialPosition (const Eigen::Vector3d &min, const Eigen::Vector3d &max) |
+void | setIndex (unsigned int &) |
+void | setRealPosLog (const Eigen::Vector3d &pos, unsigned t) |
+void | setRealPosLog (double x, double y, double z, unsigned t) |
+void | setVoxPosLog (const Eigen::Vector3d &pos, unsigned t) |
+void | setVoxPosLog (double x, double y, double z, unsigned t) |
+void | setNumberOfSteps (unsigned T) |
+Public Attributes | |
Eigen::Vector3d | pos_r |
Eigen::Vector3d | pos_v |
Eigen::Vector3d | last_pos_r |
Eigen::Vector3d | last_pos_v |
Eigen::Vector3d | ini_pos |
Eigen::Vector3d | next_direction |
Eigen::Matrix3Xd | pos_r_log |
Eigen::Matrix3Xd | pos_v_log |
int | in_obj_index |
int | in_ply_index |
CylinderCollisionSphere | collision_sphere_cylinders |
PLYCollisionSphere | collision_sphere_ply |
Eigen::Vector3d | initial_sphere_pos_v |
unsigned | steps_count |
state | status |
+RelativeLocation | initial_location |
RelativeLocation | location |
int | intra_extra_consensus |
unsigned | intra_coll_count |
unsigned | extra_coll_count |
unsigned int | index |
unsigned int | rejection_count |
float | steps_per_second |
Spin Final class =============================================================/.
+Basic unit of the diffusion process.
+ +Alias for a particle. Basic unit on the simulation process. Saves all the necessary information to perform the particles dynamics.
+enum Walker::RelativeLocation | +
An enum.
+Possible location of the walker inside the voxel. Checks illegal crossings of the barrier (border, lol)
+ +enum Walker::state | +
An enum.
+All the possibles states that a walker can be in a given step. The next step is perform according to this state
+ +Walker::Walker | +( | +) | ++ |
+
|
+ +inline | +
Default destructor.
+Does nothing
+ +Walker::Walker | +( | +double | +xmin, | +
+ | + | double | +xmax, | +
+ | + | double | +ymin, | +
+ | + | double | +ymax, | +
+ | + | double | +zmin, | +
+ | + | double | +zmax | +
+ | ) | ++ |
Constructor.
+Initialize the walker position in a random position inside the boundaries defined by the limits.
xmin | lower x threshold |
xmax | upper x threshold |
ymin | lower y threshold |
ymax | upper y threshold |
CylinderCollisionSphere Walker::collision_sphere_cylinders | +
Collision sphere for collition against cylidners
+ +PLYCollisionSphere Walker::collision_sphere_ply | +
Collision sphere for collition against PLY meshes
+ +unsigned Walker::extra_coll_count | +
counter of collision in the extra-side w/r the normal
+ +int Walker::in_obj_index | +
Auxiliar index to save if the walker was inside a convex object
+ +int Walker::in_ply_index | +
Auxiliar index to save if the walker was inside a convex ply object
+ +unsigned int Walker::index | +
Walker identifier (id)
+ +Eigen::Vector3d Walker::ini_pos | +
Walker intital position
+ +Eigen::Vector3d Walker::initial_sphere_pos_v | +
Saves the intial positioon of the walker inside the collition sphere
+ +unsigned Walker::intra_coll_count | +
counter of collision in the ïntra-side w/r the normal
+ +int Walker::intra_extra_consensus | +
intra o extra position by face collision consensus w/r the normal
+ +Eigen::Vector3d Walker::last_pos_r | +
Walker voxel last position
+ +Eigen::Vector3d Walker::last_pos_v | +
Walker real last position
+ +RelativeLocation Walker::location | +
location on the substrate (if known)
+ +Eigen::Vector3d Walker::next_direction | +
Auxiliar vector for special states cases, decides the next direction
+ +Eigen::Vector3d Walker::pos_r | +
Real walker position for collision, r stands for real
+ +Eigen::Matrix3Xd Walker::pos_r_log | +
log of the real spin position, used to compute the phase shift
+ +Eigen::Vector3d Walker::pos_v | +
Walker current position
+ +Eigen::Matrix3Xd Walker::pos_v_log | +
log of the voxel position, used for collision location and bouncing
+ +unsigned int Walker::rejection_count | +
counter of the rejected directions in a single time-step
+ +state Walker::status | +
state memeber
+ +unsigned Walker::steps_count | +
Counts the number of steps (including bouncings) made.
+ +float Walker::steps_per_second | +
Particles steps per second speeed.
+ ++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
|
| Parameter | Sentinel (sentinels) | Voxel | ||
Parameters | Sentinels |
| ||||
Collision | GradientWaveform | PGSESequence | SimErrno | |||
Collisionsphere |
| Plane | SimulableSequence | Walker | ||
Collisionspheren | PLYCollisionSphere | Subdivision | ||||
Cylinder | MCSimulation | PLYObstacle |
| |||
CylinderCollisionSphere |
| Propagator | ||||
CylinderGammaDistribution |
| Trajectory | ||||
| Obstacle | Triangle | ||||
| Scheme |
| ||||
DynamicsSimulation | ||||||
ParallelMCSimulation | Vertex | |||||
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This is the complete list of members for sentinels::Sentinel, including all inherited members.
+bouncings (defined in sentinels::Sentinel) | sentinels::Sentinel | |
checkErrors(Walker &w, const Parameters ¶ms, bool noPLY, unsigned &bouncing_count) (defined in sentinels::Sentinel) | sentinels::Sentinel | |
clear() (defined in sentinels::Sentinel) | sentinels::Sentinel | |
crossed enum value (defined in sentinels::Sentinel) | sentinels::Sentinel | |
deport_illegals (defined in sentinels::Sentinel) | sentinels::Sentinel | |
deportationProcess(Walker &walker, unsigned &w, unsigned &t, bool &back_tracking, Parameters ¶ms, int id) (defined in sentinels::Sentinel) | sentinels::Sentinel | |
discard_stucks (defined in sentinels::Sentinel) | sentinels::Sentinel | |
error (defined in sentinels::Sentinel) | sentinels::Sentinel | |
ErrorCases enum name (defined in sentinels::Sentinel) | sentinels::Sentinel | |
illegal_count (defined in sentinels::Sentinel) | sentinels::Sentinel | |
none enum value (defined in sentinels::Sentinel) | sentinels::Sentinel | |
obstacle_id (defined in sentinels::Sentinel) | sentinels::Sentinel | |
rejected enum value (defined in sentinels::Sentinel) | sentinels::Sentinel | |
rejected_count (defined in sentinels::Sentinel) | sentinels::Sentinel | |
rejected_initial_pos enum value (defined in sentinels::Sentinel) | sentinels::Sentinel | |
rejected_step (defined in sentinels::Sentinel) | sentinels::Sentinel | |
Sentinel() (defined in sentinels::Sentinel) | sentinels::Sentinel | |
setBouncingError(unsigned bouncings) (defined in sentinels::Sentinel) | sentinels::Sentinel | |
setCrossingError(unsigned) (defined in sentinels::Sentinel) | sentinels::Sentinel | |
setRejectedError() (defined in sentinels::Sentinel) | sentinels::Sentinel | |
stuck enum value (defined in sentinels::Sentinel) | sentinels::Sentinel | |
stuck_count (defined in sentinels::Sentinel) | sentinels::Sentinel |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+Public Types | |
enum | ErrorCases { + none, +stuck, +crossed, +rejected, + + rejected_initial_pos + + } |
+Public Member Functions | |
+void | clear () |
+void | setBouncingError (unsigned bouncings) |
+void | setCrossingError (unsigned) |
+void | setRejectedError () |
+bool | checkErrors (Walker &w, const Parameters ¶ms, bool noPLY, unsigned &bouncing_count) |
+void | deportationProcess (Walker &walker, unsigned &w, unsigned &t, bool &back_tracking, Parameters ¶ms, int id) |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
▼ src | |
collision.h | |
collisionsphere.h | |
constants.h | |
cylinder.h | |
cylindergammadistribution.h | |
dynamicsSimulation.h | |
gradientwaveform.h | |
mcsimulation.h | |
obstacle.h | |
parallelmcsimulation.h | |
parameters.h | |
pgsesequence.h | |
plyobstacle.h | |
propagator.h | |
scheme.h | |
sentinel.h | |
simerrno.h | |
simulablesequence.h | |
subdivision.h | |
trajectory.h | |
triangle.h | |
vertex.h | |
voxel.h | |
walker.h |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
This page explains how to interpret the graphs that are generated by doxygen.
+Consider the following example:
This will result in the following graph:
+The boxes in the above graph have the following meaning:
+The arrows have the following meaning:
++ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
CCollision | Collision Final class =====================================================================/ |
▼CCollisionsphere | |
CCylinderCollisionSphere | Class to save the cylinderical obstacles that a can collide to a walker |
CPLYCollisionSphere | |
CCollisionspheren | Collision Final class ============================================================================/ |
CCylinderGammaDistribution | CylinderGammaDistribution Class =============================================================/ |
CDynamicsSimulation | Dynamic simulation main class =============================================================/ |
CMCSimulation | Aplication Main Class ======================================================================================/ |
▼CObstacle | Obstacle Base Class ==============================================================================/ |
CCylinder | Cylinder Obstacle Derived Class =============================================================/ |
CPLYObstacle | PlyObstacle Derived Class ====================================================================/ |
CParallelMCSimulation | Class to handle multiprocessor paralellisation. This class basicly controls and syncronize several initializations of MonteCarlo simulations and add up the results. It's a way of soft paralelization |
CParameter | Basic class to store simulation parameters =============================================================/ |
CParameters | |
CPlane | Main class. Implements basic voxel limits and operations. =================================================/ |
CPropagator | |
CScheme | Auxiliary class to save scheme_files values =============================================================/ |
Csentinels::Sentinel | |
CSentinels | Collision Final class ====================================================================/ |
CSimErrno | Simulation Input and parameter errors handling class =================================================/ |
▼CSimulableSequence | MR Sequence Primary Class =============================================================/ |
CGradientWaveform | Gradient Wavefroms =============================================================/ |
CPGSESequence | |
CSubdivision | Auxiliary Subdivision Class =============================================================/ |
CTrajectory | Auxiliary class. Handles i/o operation of walker trayectories. ============================/ |
CTriangle | Auxiliary class. Implements trangular barriers. ===================================/ |
CVertex | Auxiliary class. Implements basic vertices. ====================================/ |
CVoxel | //! Main class. Implements basic voxel limits and operations. Class to handle and manage the voxels in the simulations. So far only one voxel at the time can be handled. To improve to several voxels, modifications shall be done |
CWalker | Spin Final class =============================================================/ |
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ |
+ MCDC_simulator
+ 1.42.14_wf
+
+ Monte Carlo Diffusion and Collision Simulator
+ |
+
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
t |