Trisurf Monte Carlo simulator
Samo Penic
2018-12-25 08559613e0fe7c23d329092679a2ff347a92ff4f
Added idea for tape files
1 files modified
93 ■■■■ changed files
src/plugins.c 93 ●●●● patch | view | raw | blame | history
src/plugins.c
@@ -1,28 +1,91 @@
/* This is a first attempt in implementation of plugins to Trisurf-ng. */
/*
1. Capabilities of Plugin
-------------------------
Every plugin should list it's capabilities -- that is what subrutines are available in it. Capabilities list for the moment are:
Options for tape:
* PLUGIN_PROGRAM_START (requires subrutine void at_start(void)): runs at startup
* PLUGIN_VESICLE_INITIALIZED (requires subrutine void after_vesicle_init(vesicle *vesicle):
    runs after vesicle gets initialized.
extra_plugin_path = "..." (OPTIONAL)
* PLUGIN_VERTEX_MOVE (requires subrutines:
vesicle bipyramid {
    nshell=23
}
    ts_bool vm_hard_constraint(vesicle *vesicle, vtx *vtx, vtx *old_vtx)
    ts_double vm_energy_before(vesicle *vesicle, vtx *vtx)
    ts_double vm_energy_after(vesicle *vesicle, vtx *vtx)
    ts_double vm_new_state_accepted(vesicle *vesicle, vtx *vtx)
    ts_double vm_new_state_rejected(vesicle *vesicle, vtx *vtx)
vesicle vtufile {
    filename="filename"
}
    )
vesicle vtudatabase {
    run_id=123
    timestep=999
}
    these subrutines are added into the vertex move into right places
vesicle properties {
    xk0=20
    dmax=1.7
    dmin_interspecies=1.2
    stepsize=0.15
}
* PLUGIN_BOND_FLIP ( N/A yet)
space properties {
    nxmax=60
    nymax=60
    nzmax=60
}
loop control {
    inner=1000
    outer=1000
}
plugin pressure {
    pressure=10
}
plugin constant_volume {
    precision=1e14
}
plugin constant_area {
}
plugin confinement_plate {
    distance=5
    force=10
    coordinate=2 // 0=x,1=y,2=z
}
plugin spherical_harmonics {
    lmax=21
    filename="abc.csv"
}
plugin spontaneous_curvature {
    c0=2
    N=100
    w=10
    force=3
}
plugin filament {
    monomers=100
    xi=10
}
plugin polymer {
    polymers = 100
    monomers = 10
    elastic_coefficient=100
    is_internal = true
}
plugin nucleus {
    R_nucleus=10
    R_nucleusX=0
    R_nucleusY=0
    R_nucleusZ=0
}
*/
#include "plugins.h"
#include <stdlib.h>