#include #include "general.h" #include "vertex.h" #include "cell.h" char plugin_name[] = "Pressure"; char plugin_description[]= "Defines extra energy term for relative pressure difference between the inner vesicle and outer vesicle"; char plugin_author[] = "SAMO PENIC"; ts_plugin_details *init (){ ts_plugin_details *details=(ts_plugin_details *)calloc(1,sizeof(ts_plugin_details)); details->name = plugin_name; details->data = (void *)calloc(1,sizeof(ts_double)); return details; } void vm_energy_before_prepare(ts_vesicle *vesicle, ts_vertex *vtx){ if(vesicle->pswitch == 1){ ts_double *dvol=(ts_double *)vesicle->plist->pointer->plugin->details->data; ts_uint i; *dvol=0; for(i=0;itristar_no;i++) *dvol-=vtx->tristar[i]->volume; } } ts_double vm_energy_after_execute(ts_vesicle *vesicle, ts_vertex *vtx){ ts_double delta_energy=0; if(vesicle->pswitch == 1){ ts_double *dvol=(ts_double *)vesicle->plist->pointer->plugin->details->data; ts_uint i; for(i=0;itristar_no;i++) *dvol+=vtx->tristar[i]->volume; delta_energy=-vesicle->pressure*(*dvol); } return delta_energy; }