kamberaj/sifmv1: Symbolic Information Flow Measurement Using Information Theory
Résumé fourni par la source
sifm Symbolic Information Flow Measurement #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Id: Readme.md,v 1.0 02-07-2019, IBU This source code is part of Symbolic Information Flow Measure Code for studying the information flow in dynamical systems VERSION 1.0 Written by Hiqmet Kamberaj. Copyright (C) 2019 Hiqmet Kamberaj. Check out h.kamberaj@gmail.com for more information. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; GPL-3.0 This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Embedded Parameters computations: Makefile_embd --- make file for compiling and creating the executable embdrun.exe (MPI version); Makefile_embd_ser --- make file for compiling and creating the executable embdrun_ser.exe (serial version); This class contains the following files: demo_embd.f90: This file is initializing the EMBD_CLASS, which is the module used for calculations of the embedded parameters. It contains the subroutines/functions used to read the input parameters for the computations of the embedded parameters, such as: write(,) "1 - Number of Time Frames - Nframes" write(,) "2 - Number of time series - Natoms" write(,) "3 - Dimensionality of the problem - Ndim" write(,) "4 - Time lag minimum value - T1" write(,) "5 - Time lag maximum value - T2" write(,) "6 - Embedded dimension minimum value - M1" write(,) "7 - Embedded dimension maximum value - M2" write(,) "8 - Set debugging flag value - Debug" This subroutine calls the function 'EMBD_DRIVER', which is part of the module EMBD_CLASS found in these fortran files: embdmodule.f90 -- Parallel (using MPI protocols) of the EMBD_CLASS embdmodule_ser.f90 -- Serial version of the EMBD_CLASS EMBD_CLASS contains the following functions: subroutine EMBD_DRIVER(Nf, Nd, Na, M1, M2, Tau1, tau2, db) -- it is the driver subroutine of the EMBD_CLASS subroutine MPI_Broadcast() -- it used to broad coast to all processors all attributes of the class EMBD_CLASS subroutine read_xyz() -- it is used to read the input time series representing the dynamical variables subroutine print_embdparam() -- It prints out the embedded dimension parameters subroutine Allocate_embeddedDim() -- It is used to allocate memory for the global dynamical variables of the EMBD_CLASS subroutine deAllocate_EmbeddedDim() -- It is used to free the memory allocated for the global dynamical variables of the EMBD_CLASS subroutine CompEmbeddedDimensions_fast() -- Computes the time shift and state vector dimension of time series - fast routine of MPI subroutine getTimeLag_fast(Idof, tau_arg) -- Calculates the time Lag using the fast routine - MPI version subroutine getOptEmbDim_fast(idof, Mopt_arg) -- Calculates the embedded dimension using the fast routine - MPI version subroutine CompEmbeddedDimensions_slow() -- Computes the time shift and state vector dimension of time series - slow routine of MPI subroutine getTimeLag_slow(N, x, tau_min, tau_max, tau_arg, MI) -- Calculates the time Lag using the slow routine - MPI version subroutine getOptEmbDim_slow(n, X, m1, m2, tau, Mopt, count_fnn) -- Calculates the embedded dimension using the slow routine - MPI version subroutine CompEmbeddedDimensions(gtau, gmopt) -- Computes the time shift and state vector dimension of time series - serial routine subroutine getTimeLag(N, x, tau_min, tau_max, tau_arg, MI) -- Calculates the time Lag using the serial routine subroutine getOptEmbDim(n, X, m1, m2, tau, Mopt, count_fnn) -- Calculates the embedded dimension using the serial routine Symbolic analysis using the method by Kamberaj & van der Vaart : Makefile_symb --- make file for compiling and creating the executable symbrun.exe (MPI version); Makefile_symb_ser --- make file for compiling and creating the executable symbrun_ser.exe (serial version); This class contains the following files: #---------------------------------------------------------------------------------------------------------------------------------------------------- demo_symb.f90: This file is initializing the SYMB_CLASS, which is the module used for symbolization of the dynamical variables. It contains the subroutines/functions used to read the input parameters for symbolization of the time series, such as: write(,) "1 - Number of Time Frames - Nframes" write(,) "2 - Number of time series - Natoms" write(,) "3 - Dimensionality of the problem - Ndim" write(,) "4 - Set debugging flag value - Debug" write(,) "5- Symbolic method flag (1: 0s, 1s; 2: 0s, 1s, 2s, etc; 3: Monte Carlo) - qSymbolic" write(,) "6 - Set Nr of Monte Carlo Steps - Nmc" This subroutine calls the function 'SYMB_DRIVER', which is part of the module SYMB_CLASS found in these fortran subroutines/functions: symbmodule.f90 -- Parallel (using MPI protocols) of the SYMB_CLASS symbmodule_ser.f90 -- Serial version of the SYMB_CLASS SYMB_CLASS contains the following subroutines/functions: subroutine read_embdparam() -- it reads the embedded parameters calculated from the EMBD_CLASS functions subroutine write_xyzs() -- It prints out the symbolic Trajectories of dynamical variables subroutine Allocate_Symbolics() -- It is used to allocate memory for the global dynamical variables of the SYMB_CLASS subroutine deAllocate_Symbolics() -- It is used to free the memory allocated for the global dynamical variables of the SYMB_CLASS subroutine symbolize_trajectoryMC(Ndof, nframes, X, global_XS, tau, mopt, Nmc) -- Symbolizes the time series using Monte Carlo Method 1 (0,1,2,...) -- Parallel and Serial versions subroutine symbolize_trajectory(Natoms, Ndim, nframes, X, XS, topt, mopt) -- Symbolizes the time series using Method 2 (0,1,2, ...) (only serial routine) subroutine symbolize(Natoms, Ndim, nframes, X, XS) -- Symbolizes the time series using Method 3 (0 and 1) (only serial routine) subroutine symbolic_entropy1D(ndata,xs,m,tau,H) -- Computes the Shannon entropy of one dimensional symbolic time series Symbolic Transfer Entropy: Makefile_te --- make file for compiling and creating the executable te.exe (MPI version); Makefile_te_ser --- make file for compiling and creating the executable te_ser.exe (serial version); This class contains the following files: #---------------------------------------------------------------------------------------------------------------------------------------------------- demo_te.f90 This file is initializing the TE_CLASS, which is the module used for calculation of transfer entropy. It contains the subroutines/functions used to read the input parameters for computation of transfer entropy between the time series, such as: write(*,'("Enter:")') write(,) "1 - Length of time series - Nframes" write(,) "2 - Number of time series - Natoms" write(,) "3 - Dimensionality of the problem - Ndim" write(,) "4 - Flag for Method of TE calculation (1: Discrete (m=1); 2: Discrete (m>1); 3: Schreiber) - qTEMethod" write(,) "5 - Flag for Normalization of TE (0: No normalization; 1: normalization - qTENorm" write(,) "6 - Flag for Method of Shuffling of TE (1: Permutation; 2: Block shuffling) - qTEShuffle" write(,) "7 - Number of Shuffling of time series - Nshuffles" write(,) "8 - Cutoff for Mutual Information minimum value - Rcut" write(,) "9 - Confidence level for averages - statP" write(,) "10 - Set debugging flag value - Debug" This subroutine calls one of the following functions (which are part of the TE_CLASS in mte.f90 (MPI version) and