Add files via upload
This commit is contained in:
122
lennardjones.c
122
lennardjones.c
@@ -37,7 +37,7 @@
|
||||
#include <time.h>
|
||||
|
||||
#define MOVIE 0 /* set to 1 to generate movie */
|
||||
#define DOUBLE_MOVIE 0 /* set to 1 to produce movies for wave height and energy simultaneously */
|
||||
#define DOUBLE_MOVIE 1 /* set to 1 to produce movies for wave height and energy simultaneously */
|
||||
#define SAVE_MEMORY 1 /* set to 1 to save memory while saving frames */
|
||||
#define NO_EXTRA_BUFFER_SWAP 1 /* some OS require one less buffer swap when recording images */
|
||||
|
||||
@@ -58,25 +58,25 @@
|
||||
#define YMIN -1.125
|
||||
#define YMAX 1.125 /* y interval for 9/16 aspect ratio */
|
||||
|
||||
#define INITXMIN -1.0
|
||||
#define INITXMIN -1.95
|
||||
#define INITXMAX -1.9 /* x interval for initial condition */
|
||||
#define INITYMIN -0.1
|
||||
#define INITYMAX 0.1 /* y interval for initial condition */
|
||||
#define INITYMIN 0.9
|
||||
#define INITYMAX 1.0 /* y interval for initial condition */
|
||||
|
||||
#define THERMOXMIN -1.25
|
||||
#define THERMOXMAX 1.25 /* x interval for initial condition */
|
||||
#define THERMOYMIN 0.0
|
||||
#define THERMOYMAX 0.75 /* y interval for initial condition */
|
||||
|
||||
#define ADDXMIN -2.2
|
||||
#define ADDXMAX -2.0 /* x interval for adding particles */
|
||||
#define ADDYMIN -1.0
|
||||
#define ADDYMAX 1.0 /* y interval for adding particles */
|
||||
#define ADDXMIN -1.95
|
||||
#define ADDXMAX -1.9 /* x interval for adding particles */
|
||||
#define ADDYMIN 0.0
|
||||
#define ADDYMAX 0.6 /* y interval for adding particles */
|
||||
#define ADDRMIN 4.75
|
||||
#define ADDRMAX 6.0 /* r interval for adding particles */
|
||||
|
||||
#define BCXMIN -2.5
|
||||
#define BCXMAX 2.5 /* x interval for boundary condition */
|
||||
#define BCXMIN -2.0
|
||||
#define BCXMAX 2.0 /* x interval for boundary condition */
|
||||
#define BCYMIN -1.125
|
||||
#define BCYMAX 1.125 /* y interval for boundary condition */
|
||||
|
||||
@@ -90,15 +90,15 @@
|
||||
#define ADD_INITIAL_PARTICLES 0 /* set to 1 to add a second type of particles */
|
||||
#define CIRCLE_PATTERN_B 0 /* pattern of circles for additional particles */
|
||||
|
||||
#define ADD_FIXED_OBSTACLES 1 /* set to 1 do add fixed circular obstacles */
|
||||
#define OBSTACLE_PATTERN 20 /* pattern of obstacles, see list in global_ljones.c */
|
||||
#define ADD_FIXED_OBSTACLES 0 /* set to 1 do add fixed circular obstacles */
|
||||
#define OBSTACLE_PATTERN 91 /* pattern of obstacles, see list in global_ljones.c */
|
||||
#define RATTLE_OBSTACLES 0 /* set to 1 to rattle obstacles (for pattern O_SIEVE_B) */
|
||||
#define OSCILLATE_OBSTACLES 1 /* set to 1 to make obstacles oscillate */
|
||||
#define COUPLE_OBSTACLES 1 /* set to 1 to couple obstacles to neighbours */
|
||||
#define OBSTACLE_PISC_DISTANCE 0.12 /* minimal distance in Poisson disc process for obstacles, controls density of obstacles */
|
||||
#define OBSTACLE_COUPLING_DIST 0.18 /* max distance of coupled obstacles */
|
||||
#define OBSTACLE_PISC_DISTANCE 0.08 /* minimal distance in Poisson disc process for obstacles, controls density of obstacles */
|
||||
#define OBSTACLE_COUPLING_DIST 0.12 /* max distance of coupled obstacles */
|
||||
#define NMAX_OBSTACLE_NEIGHBOURS 8 /* max number of obstacle neighbours */
|
||||
#define NMAX_OBSTACLE_PINNED 10 /* max number of neighbours to be pinned */
|
||||
#define NMAX_OBSTACLE_PINNED 3 /* max number of neighbours to be pinned */
|
||||
#define OBSTACLE_PINNING_TYPE 0 /* type of obstacle pinning, see OP_ in global_ljones */
|
||||
#define BDRY_PINNING_STEP 4 /* interval between pinned obstacles on boundary */
|
||||
#define RECOUPLE_OBSTACLES 0 /* set to 1 to reset obstacle coupling */
|
||||
@@ -126,7 +126,7 @@
|
||||
#define CENTER_PY 0 /* set to 1 to center vertical momentum */
|
||||
#define CENTER_PANGLE 0 /* set to 1 to center angular momentum */
|
||||
|
||||
#define INTERACTION 1 /* particle interaction, see list in global_ljones.c */
|
||||
#define INTERACTION 12 /* particle interaction, see list in global_ljones.c */
|
||||
#define INTERACTION_B 1 /* particle interaction for second type of particle, see list in global_ljones.c */
|
||||
#define SPIN_INTER_FREQUENCY 4.0 /* angular frequency of spin-spin interaction */
|
||||
#define SPIN_INTER_FREQUENCY_B 4.0 /* angular frequency of spin-spin interaction for second particle type */
|
||||
@@ -134,15 +134,16 @@
|
||||
|
||||
#define P_PERCOL 0.25 /* probability of having a circle in C_RAND_PERCOL arrangement */
|
||||
#define NPOISSON 100 /* number of points for Poisson C_RAND_POISSON arrangement */
|
||||
#define PDISC_DISTANCE 1.0 /* minimal distance in Poisson disc process, controls density of particles */
|
||||
#define PDISC_DISTANCE 5.0 /* minimal distance in Poisson disc process, controls density of particles */
|
||||
#define PDISC_CANDIDATES 100 /* number of candidates in construction of Poisson disc process */
|
||||
#define RANDOM_POLY_ANGLE 0 /* set to 1 to randomize angle of polygons */
|
||||
|
||||
#define LAMBDA 0.2 /* parameter controlling the dimensions of domain */
|
||||
#define MU 0.007 /* parameter controlling radius of particles */
|
||||
#define MU 0.02 /* parameter controlling radius of particles */
|
||||
#define MU_B 0.03 /* parameter controlling radius of particles of second type */
|
||||
#define MU_ADD 0.02 /* parameter controlling radius of added particles */
|
||||
#define NPOLY 3 /* number of sides of polygon */
|
||||
#define APOLY 0.075 /* angle by which to turn polygon, in units of Pi/2 */
|
||||
#define APOLY 0.0 /* angle by which to turn polygon, in units of Pi/2 */
|
||||
#define AWEDGE 0.5 /* opening angle of wedge, in units of Pi/2 */
|
||||
#define MDEPTH 4 /* depth of computation of Menger gasket */
|
||||
#define MRATIO 3 /* ratio defining Menger gasket */
|
||||
@@ -155,8 +156,8 @@
|
||||
#define EHRENFEST_WIDTH 0.035 /* width of tube for Ehrenfest urn configuration */
|
||||
#define TWO_CIRCLES_RADIUS_RATIO 0.8 /* ratio of radii for S_TWO_CIRCLES_EXT segment configuration */
|
||||
#define DAM_WIDTH 0.05 /* width of dam for S_DAM segment configuration */
|
||||
#define NOBSX 20
|
||||
#define NOBSY 10 /* obstacles for O_HEX obstacle pattern */
|
||||
#define NOBSX 40
|
||||
#define NOBSY 24 /* obstacles for O_HEX obstacle pattern */
|
||||
#define NTREES 15 /* number of trees in S_TREES */
|
||||
|
||||
#define X_SHOOTER -0.2
|
||||
@@ -166,10 +167,10 @@
|
||||
|
||||
/* Parameters for length and speed of simulation */
|
||||
|
||||
#define NSTEPS 4500 /* number of frames of movie */
|
||||
#define NVID 4500 /* number of iterations between images displayed on screen */
|
||||
#define NSTEPS 2200 /* number of frames of movie */
|
||||
#define NVID 150 /* number of iterations between images displayed on screen */
|
||||
#define NSEG 25 /* number of segments of boundary of circles */
|
||||
#define INITIAL_TIME 0 /* time after which to start saving frames */
|
||||
#define INITIAL_TIME 30 /* time after which to start saving frames */
|
||||
#define OBSTACLE_INITIAL_TIME 0 /* time after which to start moving obstacle */
|
||||
#define BOUNDARY_WIDTH 1 /* width of particle boundary */
|
||||
#define LINK_WIDTH 2 /* width of links between particles */
|
||||
@@ -184,25 +185,26 @@
|
||||
|
||||
/* Boundary conditions, see list in global_ljones.c */
|
||||
|
||||
#define BOUNDARY_COND 23
|
||||
#define BOUNDARY_COND 1
|
||||
|
||||
/* Plot type, see list in global_ljones.c */
|
||||
|
||||
#define PLOT 13
|
||||
#define PLOT_B 12 /* plot type for second movie */
|
||||
#define PLOT 17
|
||||
// #define PLOT 23
|
||||
#define PLOT_B 17 /* plot type for second movie */
|
||||
|
||||
/* Background color depending on particle properties */
|
||||
|
||||
#define COLOR_BACKGROUND 0 /* set to 1 to color background */
|
||||
#define BG_COLOR 7 /* type of background coloring, see list in global_ljones.c */
|
||||
#define BG_COLOR_B 5 /* type of background coloring, see list in global_ljones.c */
|
||||
#define COLOR_BACKGROUND 1 /* set to 1 to color background */
|
||||
#define BG_COLOR 4 /* type of background coloring, see list in global_ljones.c */
|
||||
#define BG_COLOR_B 2 /* type of background coloring, see list in global_ljones.c */
|
||||
#define OBSTACLE_COLOR 0 /* type of obstacle, see OC_ in global_ljones.c */
|
||||
|
||||
#define DRAW_BONDS 0 /* set to 1 to draw bonds between neighbours */
|
||||
#define COLOR_BONDS 1 /* set to 1 to color bonds according to length */
|
||||
#define FILL_TRIANGLES 0 /* set to 1 to fill triangles between neighbours */
|
||||
#define DRAW_CLUSTER_LINKS 0 /* set to 1 to draw links between particles in cluster */
|
||||
#define DRAW_OBSTACLE_LINKS 1 /* set to 1 to draw links between interacting obstacles */
|
||||
#define DRAW_OBSTACLE_LINKS 0 /* set to 1 to draw links between interacting obstacles */
|
||||
#define FILL_OBSTACLE_TRIANGLES 0 /* set to 1 to fill triangles between interacting obstacles */
|
||||
#define ALTITUDE_LINES 0 /* set to 1 to add horizontal lines to show altitude */
|
||||
#define COLOR_SEG_GROUPS 0 /* set to 1 to collor segment groups differently */
|
||||
@@ -210,8 +212,8 @@
|
||||
#define INITIAL_POS_TYPE 0 /* type of initial position dependence */
|
||||
#define ERATIO 0.995 /* ratio for time-averaging in P_EMEAN color scheme */
|
||||
#define DRATIO 0.999 /* ratio for time-averaging in P_DIRECT_EMEAN color scheme */
|
||||
#define OBSTACLE_AREA_SHADE_FACTOR 160.0 /* controls sensitivity of triangle shade for option FILL_OBSTACLE_TRIANGLES */
|
||||
#define SHADE_OBSTACLE_FACETS 0 /* set to 1 to shade facets instead of triangles */
|
||||
#define OBSTACLE_AREA_SHADE_FACTOR 80.0 /* controls sensitivity of triangle shade for option FILL_OBSTACLE_TRIANGLES */
|
||||
#define SHADE_OBSTACLE_FACETS 1 /* set to 1 to shade facets instead of triangles */
|
||||
|
||||
/* Color schemes */
|
||||
|
||||
@@ -263,10 +265,10 @@
|
||||
#define PARTICLE_HUE_MIN 359.0 /* color of original particle */
|
||||
#define PARTICLE_HUE_MAX 0.0 /* color of saturated particle */
|
||||
#define PARTICLE_EMIN 100.0 /* energy of particle with coolest color */
|
||||
#define PARTICLE_EMAX 3000.0 /* energy of particle with hottest color */
|
||||
#define PARTICLE_EMAX 100000.0 /* energy of particle with hottest color */
|
||||
#define SEGMENT_HUE_MIN 275.0 /* color of original segment */
|
||||
#define SEGMENT_HUE_MAX 30.0 /* color of saturated segment */
|
||||
#define OBSTACLE_EMAX 200.0 /* energy of obstacle with hottest color */
|
||||
#define OBSTACLE_EMAX 150.0 /* energy of obstacle with hottest color */
|
||||
#define OBSTACLE_VMAX 4.0 /* speed of obstacle with largest luminosity */
|
||||
#define HUE_TYPE0 320.0 /* hue of particles of type 0 */
|
||||
#define HUE_TYPE1 60.0 /* hue of particles of type 1 */
|
||||
@@ -276,7 +278,7 @@
|
||||
#define HUE_TYPE5 60.0 /* hue of particles of type 5 */
|
||||
#define HUE_TYPE6 130.0 /* hue of particles of type 6 */
|
||||
#define HUE_TYPE7 150.0 /* hue of particles of type 7 */
|
||||
#define BG_FORCE_SLOPE 7.5e-8 /* contant in BG_FORCE backgound color scheme*/
|
||||
#define BG_FORCE_SLOPE 1.0e-6 /* contant in BG_FORCE backgound color scheme*/
|
||||
|
||||
#define RANDOM_RADIUS 0 /* set to 1 for random particle radius */
|
||||
#define RANDOM_RADIUS_MIN 0.4 /* min of random particle radius (default 0.75) */
|
||||
@@ -284,9 +286,9 @@
|
||||
#define ADAPT_MASS_TO_RADIUS 1 /* set to positive value to for mass prop to power of radius */
|
||||
#define ADAPT_DAMPING_TO_RADIUS 0.5 /* set to positive value to for friction prop to power of radius */
|
||||
#define ADAPT_DAMPING_FACTOR 0.5 /* factor by which damping is adapted to radius */
|
||||
#define DT_PARTICLE 2.0e-7 /* time step for particle displacement */
|
||||
#define DT_PARTICLE 1.5e-6 /* time step for particle displacement */
|
||||
#define KREPEL 50.0 /* constant in repelling force between particles */
|
||||
#define EQUILIBRIUM_DIST 2.5 /* Lennard-Jones equilibrium distance */
|
||||
#define EQUILIBRIUM_DIST 2.0 /* Lennard-Jones equilibrium distance */
|
||||
#define EQUILIBRIUM_DIST_B 2.5 /* Lennard-Jones equilibrium distance for second type of particle */
|
||||
#define SEGMENT_FORCE_EQR 1.0 /* equilibrium distance factor for force from segments (default 1.5) */
|
||||
#define REPEL_RADIUS 25.0 /* radius in which repelling force acts (in units of particle radius) */
|
||||
@@ -294,10 +296,12 @@
|
||||
#define INITIAL_DAMPING 1000.0 /* damping coefficient of particles during initial phase */
|
||||
#define DAMPING_ROT 5.0 /* damping coefficient for rotation of particles */
|
||||
#define PARTICLE_MASS 2.0 /* mass of particle of radius MU */
|
||||
#define PARTICLE_MASS_B 2.0 /* mass of particle of radius MU_B */
|
||||
#define PARTICLE_MASS_B 2.0 /* mass of particle of radius MU_B */
|
||||
#define PARTICLE_ADD_MASS 2.0 /* mass of added particles */
|
||||
#define PARTICLE_INERTIA_MOMENT 0.5 /* moment of inertia of particle */
|
||||
#define PARTICLE_INERTIA_MOMENT_B 0.5 /* moment of inertia of second type of particle */
|
||||
#define V_INITIAL 50.0 /* initial velocity range */
|
||||
#define V_INITIAL 200.0 /* initial velocity range */
|
||||
#define V_INITIAL_ADD 50.0 /* initial velocity range for added particles */
|
||||
#define OMEGA_INITIAL 100.0 /* initial angular velocity range */
|
||||
#define VICSEK_VMIN 1.0 /* minimal speed of particles in Vicsek model */
|
||||
#define VICSEK_VMAX 40.0 /* minimal speed of particles in Vicsek model */
|
||||
@@ -324,13 +328,14 @@
|
||||
#define KSPRING_VICSEK 0.2 /* spring constant for I_VICSEK_SPEED interaction */
|
||||
#define VICSEK_REPULSION 10.0 /* repulsion between particles in Vicsek model */
|
||||
|
||||
#define ADD_EFIELD 1 /* set to 1 to add an electric field */
|
||||
#define EFIELD 0.0 /* value of electric field */
|
||||
#define EFIELD_Y 1500.0 /* value of electric field */
|
||||
#define ADD_BFIELD 1 /* set to 1 to add a magnetic field */
|
||||
#define BFIELD 1200.0 /* value of magnetic field */
|
||||
#define CHARGE 1.0 /* charge of particles of first type */
|
||||
#define ADD_EFIELD 0 /* set to 1 to add an electric field */
|
||||
#define EFIELD -100.0 /* value of electric field */
|
||||
#define EFIELD_Y 0.0 /* value of electric field */
|
||||
#define ADD_BFIELD 0 /* set to 1 to add a magnetic field */
|
||||
#define BFIELD 0.0 /* value of magnetic field */
|
||||
#define CHARGE 1.0 /* charge of particles of first type */
|
||||
#define CHARGE_B 1.0 /* charge of particles of second type */
|
||||
#define CHARGE_ADD 1.0 /* charge of added particles */
|
||||
#define INCREASE_E 0 /* set to 1 to increase electric field */
|
||||
#define EFIELD_FACTOR 5000000.0 /* factor by which to increase electric field */
|
||||
#define INCREASE_B 0 /* set to 1 to increase magnetic field */
|
||||
@@ -338,8 +343,8 @@
|
||||
#define CHARGE_OBSTACLES 0 /* set to 1 for obstacles to be charged */
|
||||
#define OBSTACLE_CHARGE 3.0 /* charge of obstacles */
|
||||
#define OBSTACLE_MASS 100.0 /* mass of obstacles, if oscillating */
|
||||
#define KSPRING_OBSTACLE_OSC 1.0e7 /* spring constant for oscillating obstacles */
|
||||
#define KSPRING_OBSTACLE_COUPLE 5.0e6 /* spring constant for coupled obstacles */
|
||||
#define KSPRING_OBSTACLE_OSC 5.0e5 /* spring constant for oscillating obstacles */
|
||||
#define KSPRING_OBSTACLE_COUPLE 2.0e5 /* spring constant for coupled obstacles */
|
||||
#define OBSTACLE_HARDCORE 1 /* set to 1 to add "hard core" repulsion between obstacles */
|
||||
#define KSPRING_OBSTACLE_HARDCORE 1.0e11 /* spring constant for obstacle hard core repulsion */
|
||||
#define KCOULOMB_OBSTACLE 1000.0 /* Coulomb force constant for charged obstacles */
|
||||
@@ -359,8 +364,8 @@
|
||||
#define KTORQUE_DIFF 500.0 /* force constant in angular dynamics for different particles */
|
||||
#define DRAW_SPIN 0 /* set to 1 to draw spin vectors of particles */
|
||||
#define DRAW_SPIN_B 0 /* set to 1 to draw spin vectors of particles */
|
||||
#define DRAW_CROSS 0 /* set to 1 to draw cross on particles of second type */
|
||||
#define DRAW_MINUS 0 /* set to 1 to draw cross on particles of negative charge */
|
||||
#define DRAW_CROSS 1 /* set to 1 to draw cross on particles of second type */
|
||||
#define DRAW_MINUS 1 /* set to 1 to draw cross on particles of negative charge */
|
||||
#define SPIN_RANGE 10.0 /* range of spin-spin interaction */
|
||||
#define SPIN_RANGE_B 10.0 /* range of spin-spin interaction for second type of particle */
|
||||
#define QUADRUPOLE_RATIO 0.6 /* anisotropy in quadrupole potential */
|
||||
@@ -386,7 +391,7 @@
|
||||
#define CENTER_VIEW_ON_OBSTACLE 0 /* set to 1 to center display on moving obstacle */
|
||||
#define RESAMPLE_Y 0 /* set to 1 to resample y coordinate of moved particles (for shock waves) */
|
||||
#define NTRIALS 2000 /* number of trials when resampling */
|
||||
#define OBSTACLE_RADIUS 0.03 /* radius of obstacle for circle boundary conditions */
|
||||
#define OBSTACLE_RADIUS 0.015 /* radius of obstacle for circle boundary conditions */
|
||||
#define FUNNEL_WIDTH 0.25 /* funnel width for funnel boundary conditions */
|
||||
#define OBSTACLE_XMIN 0.0 /* initial position of obstacle */
|
||||
#define OBSTACLE_XMAX 3.0 /* final position of obstacle */
|
||||
@@ -413,16 +418,17 @@
|
||||
#define ADD_PARTICLES 1 /* set to 1 to add particles */
|
||||
#define ADD_REGION 0 /* shape of add regions, cf ADD_* in global_ljones */
|
||||
#define ADD_TIME 0 /* time at which to add first particle */
|
||||
#define ADD_PERIOD 150 /* time interval between adding further particles */
|
||||
#define ADD_PERIOD 35 /* time interval between adding further particles */
|
||||
#define N_ADD_PARTICLES 1 /* number of particles to add */
|
||||
#define FINAL_NOADD_PERIOD 500 /* final period where no particles are added */
|
||||
#define FINAL_NOADD_PERIOD 250 /* final period where no particles are added */
|
||||
#define SAFETY_FACTOR 4.0 /* no particles are added at distance less than MU*SAFETY_FACTOR of other particles */
|
||||
#define ADD_ALTERNATE_CHARGE 1 /* set to 1 to randomly select sign of added charge */
|
||||
|
||||
#define TRACER_PARTICLE 1 /* set to 1 to have a tracer particle */
|
||||
#define N_TRACER_PARTICLES 100 /* number of tracer particles */
|
||||
#define N_TRACER_PARTICLES 200 /* number of tracer particles */
|
||||
#define TRACER_STEPS 5 /* number of tracer steps recorded between images */
|
||||
#define TRAJECTORY_LENGTH 40000 /* length of recorded trajectory */
|
||||
#define TRACER_LUM_FACTOR 100.0 /* controls luminosity decrease of trajectories with time */
|
||||
#define TRAJECTORY_LENGTH 5000 /* length of recorded trajectory */
|
||||
#define TRACER_LUM_FACTOR 40.0 /* controls luminosity decrease of trajectories with time */
|
||||
#define TRACER_PARTICLE_MASS 4.0 /* relative mass of tracer particle */
|
||||
#define TRAJECTORY_WIDTH 2 /* width of tracer particle trajectory */
|
||||
|
||||
@@ -567,7 +573,7 @@
|
||||
#define FLOOR_OMEGA 0 /* set to 1 to limit particle momentum to PMAX */
|
||||
#define PMAX 1000.0 /* maximal force */
|
||||
|
||||
#define HASHX 29 /* size of hashgrid in x direction */
|
||||
#define HASHX 40 /* size of hashgrid in x direction */
|
||||
#define HASHY 20 /* size of hashgrid in y direction */
|
||||
#define HASHMAX 100 /* maximal number of particles per hashgrid cell */
|
||||
#define HASHGRID_PADDING 0.1 /* padding of hashgrid outside simulation window */
|
||||
@@ -2368,7 +2374,7 @@ void animation()
|
||||
// draw_container(params.xmincontainer, params.xmaxcontainer, obstacle, segment, conveyor_belt, wall);
|
||||
|
||||
/* add a particle */
|
||||
if ((ADD_PARTICLES)&&(i > ADD_TIME)&&((i - INITIAL_TIME - ADD_TIME)%ADD_PERIOD == 1)&&(i < NSTEPS - FINAL_NOADD_PERIOD))
|
||||
if ((ADD_PARTICLES)&&(i > ADD_TIME)&&((i - INITIAL_TIME - ADD_TIME)%ADD_PERIOD == 1)&&(i - INITIAL_TIME < NSTEPS - FINAL_NOADD_PERIOD))
|
||||
{
|
||||
/* add enzymes */
|
||||
if ((REACTION_DIFFUSION)&&((RD_REACTION == CHEM_DNA_ENZYME)||(RD_REACTION == CHEM_DNA_ENZYME_REPAIR)))
|
||||
|
||||
Reference in New Issue
Block a user