src/main.c | ●●●●● patch | view | raw | blame | history | |
src/plugins/Makefile | ●●●●● patch | view | raw | blame | history | |
src/plugins/Makefile.am | ●●●●● patch | view | raw | blame | history | |
src/plugins/Makefile.in | ●●●●● patch | view | raw | blame | history | |
src/plugins/constant_area.c | ●●●●● patch | view | raw | blame | history | |
src/vertexmove.c | ●●●●● patch | view | raw | blame | history |
src/main.c
@@ -31,18 +31,21 @@ ts_char *plugin2 = (ts_char *)calloc(255,sizeof(ts_char)); ts_char *plugin3 = (ts_char *)calloc(255,sizeof(ts_char)); ts_char *plugin4 = (ts_char *)calloc(255,sizeof(ts_char)); ts_char *plugin5 = (ts_char *)calloc(255,sizeof(ts_char)); strcpy(plugin0,"/home/samo/programiranje/trisurf-ng/src/plugins/.libs/demoplugin.so"); strcpy(plugin1,"/home/samo/programiranje/trisurf-ng/src/plugins/.libs/vmdefaulthardconstraints.so"); strcpy(plugin2,"/home/samo/programiranje/trisurf-ng/src/plugins/.libs/plane_confinement.so"); strcpy(plugin3,"/home/samo/programiranje/trisurf-ng/src/plugins/.libs/pressure.so"); strcpy(plugin4,"/home/samo/programiranje/trisurf-ng/src/plugins/.libs/constant_volume.so"); ts_char **plugins=(ts_char **)calloc(5,sizeof(ts_char *)); strcpy(plugin5,"/home/samo/programiranje/trisurf-ng/src/plugins/.libs/constant_area.so"); ts_char **plugins=(ts_char **)calloc(6,sizeof(ts_char *)); plugins[0]=plugin0; plugins[1]=plugin1; plugins[2]=plugin2; plugins[3]=plugin3; plugins[4]=plugin4; ts_plugin_list *plist=init_plugin_list(plugins,5); plugins[5]=plugin5; ts_plugin_list *plist=init_plugin_list(plugins,6); //printf("%s", plist->chain->at_start->next->plugin->filename); //ts_fprintf(stdout, "TRISURF in PRVI PLUGIN %s\n", plist->plugin[0]->details->name); ts_vesicle *vesicle; src/plugins/Makefile
@@ -127,13 +127,20 @@ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) constant_volume_la_LIBADD = am_constant_volume_la_OBJECTS = constant_volume.lo constant_volume_la_OBJECTS = $(am_constant_volume_la_OBJECTS) constant_area_la_LIBADD = am_constant_area_la_OBJECTS = constant_area.lo constant_area_la_OBJECTS = $(am_constant_area_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent am__v_lt_1 = constant_area_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(constant_area_la_LDFLAGS) $(LDFLAGS) \ -o $@ constant_volume_la_LIBADD = am_constant_volume_la_OBJECTS = constant_volume.lo constant_volume_la_OBJECTS = $(am_constant_volume_la_OBJECTS) constant_volume_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(constant_volume_la_LDFLAGS) \ @@ -205,10 +212,12 @@ am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(constant_volume_la_SOURCES) $(demoplugin_la_SOURCES) \ $(nucleus_la_SOURCES) $(plane_confinement_la_SOURCES) \ $(pressure_la_SOURCES) $(vmdefaulthardconstraints_la_SOURCES) DIST_SOURCES = $(constant_volume_la_SOURCES) $(demoplugin_la_SOURCES) \ SOURCES = $(constant_area_la_SOURCES) $(constant_volume_la_SOURCES) \ $(demoplugin_la_SOURCES) $(nucleus_la_SOURCES) \ $(plane_confinement_la_SOURCES) $(pressure_la_SOURCES) \ $(vmdefaulthardconstraints_la_SOURCES) DIST_SOURCES = $(constant_area_la_SOURCES) \ $(constant_volume_la_SOURCES) $(demoplugin_la_SOURCES) \ $(nucleus_la_SOURCES) $(plane_confinement_la_SOURCES) \ $(pressure_la_SOURCES) $(vmdefaulthardconstraints_la_SOURCES) am__can_run_installinfo = \ @@ -359,7 +368,7 @@ top_builddir = ../.. top_srcdir = ../.. AM_CFLAGS = -Wall -Werror -DTS_VERSION=\"$(GITVERSION)\" -fgnu89-inline -Wno-error=date-time -I.. lib_LTLIBRARIES = demoplugin.la vmdefaulthardconstraints.la nucleus.la plane_confinement.la pressure.la constant_volume.la lib_LTLIBRARIES = demoplugin.la vmdefaulthardconstraints.la nucleus.la plane_confinement.la pressure.la constant_volume.la constant_area.la demoplugin_la_SOURCES = demo_plugin.c demoplugin_la_LDFLAGS = -module -avoid-version -export-dynamic vmdefaulthardconstraints_la_SOURCES = default_hard_constraints.c @@ -372,6 +381,8 @@ pressure_la_LDFLAGS = -module -avoid-version -export-dynamic constant_volume_la_SOURCES = constant_volume.c constant_volume_la_LDFLAGS = -module -avoid-version -export-dynamic constant_area_la_SOURCES = constant_area.c constant_area_la_LDFLAGS = -module -avoid-version -export-dynamic all: all-am .SUFFIXES: @@ -441,6 +452,9 @@ rm -f $${locs}; \ } constant_area.la: $(constant_area_la_OBJECTS) $(constant_area_la_DEPENDENCIES) $(EXTRA_constant_area_la_DEPENDENCIES) $(AM_V_CCLD)$(constant_area_la_LINK) -rpath $(libdir) $(constant_area_la_OBJECTS) $(constant_area_la_LIBADD) $(LIBS) constant_volume.la: $(constant_volume_la_OBJECTS) $(constant_volume_la_DEPENDENCIES) $(EXTRA_constant_volume_la_DEPENDENCIES) $(AM_V_CCLD)$(constant_volume_la_LINK) -rpath $(libdir) $(constant_volume_la_OBJECTS) $(constant_volume_la_LIBADD) $(LIBS) @@ -465,6 +479,7 @@ distclean-compile: -rm -f *.tab.c include ./$(DEPDIR)/constant_area.Plo include ./$(DEPDIR)/constant_volume.Plo include ./$(DEPDIR)/default_hard_constraints.Plo include ./$(DEPDIR)/demo_plugin.Plo src/plugins/Makefile.am
@@ -1,5 +1,5 @@ AM_CFLAGS = -Wall -Werror -DTS_VERSION=\"$(GITVERSION)\" -fgnu89-inline -Wno-error=date-time -I.. lib_LTLIBRARIES= demoplugin.la vmdefaulthardconstraints.la nucleus.la plane_confinement.la pressure.la constant_volume.la lib_LTLIBRARIES= demoplugin.la vmdefaulthardconstraints.la nucleus.la plane_confinement.la pressure.la constant_volume.la constant_area.la demoplugin_la_SOURCES= demo_plugin.c demoplugin_la_LDFLAGS = -module -avoid-version -export-dynamic @@ -18,3 +18,6 @@ constant_volume_la_SOURCES = constant_volume.c constant_volume_la_LDFLAGS = -module -avoid-version -export-dynamic constant_area_la_SOURCES = constant_area.c constant_area_la_LDFLAGS = -module -avoid-version -export-dynamic src/plugins/Makefile.in
@@ -127,13 +127,20 @@ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) constant_volume_la_LIBADD = am_constant_volume_la_OBJECTS = constant_volume.lo constant_volume_la_OBJECTS = $(am_constant_volume_la_OBJECTS) constant_area_la_LIBADD = am_constant_area_la_OBJECTS = constant_area.lo constant_area_la_OBJECTS = $(am_constant_area_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = constant_area_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(constant_area_la_LDFLAGS) $(LDFLAGS) \ -o $@ constant_volume_la_LIBADD = am_constant_volume_la_OBJECTS = constant_volume.lo constant_volume_la_OBJECTS = $(am_constant_volume_la_OBJECTS) constant_volume_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(constant_volume_la_LDFLAGS) \ @@ -205,10 +212,12 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(constant_volume_la_SOURCES) $(demoplugin_la_SOURCES) \ $(nucleus_la_SOURCES) $(plane_confinement_la_SOURCES) \ $(pressure_la_SOURCES) $(vmdefaulthardconstraints_la_SOURCES) DIST_SOURCES = $(constant_volume_la_SOURCES) $(demoplugin_la_SOURCES) \ SOURCES = $(constant_area_la_SOURCES) $(constant_volume_la_SOURCES) \ $(demoplugin_la_SOURCES) $(nucleus_la_SOURCES) \ $(plane_confinement_la_SOURCES) $(pressure_la_SOURCES) \ $(vmdefaulthardconstraints_la_SOURCES) DIST_SOURCES = $(constant_area_la_SOURCES) \ $(constant_volume_la_SOURCES) $(demoplugin_la_SOURCES) \ $(nucleus_la_SOURCES) $(plane_confinement_la_SOURCES) \ $(pressure_la_SOURCES) $(vmdefaulthardconstraints_la_SOURCES) am__can_run_installinfo = \ @@ -359,7 +368,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = -Wall -Werror -DTS_VERSION=\"$(GITVERSION)\" -fgnu89-inline -Wno-error=date-time -I.. lib_LTLIBRARIES = demoplugin.la vmdefaulthardconstraints.la nucleus.la plane_confinement.la pressure.la constant_volume.la lib_LTLIBRARIES = demoplugin.la vmdefaulthardconstraints.la nucleus.la plane_confinement.la pressure.la constant_volume.la constant_area.la demoplugin_la_SOURCES = demo_plugin.c demoplugin_la_LDFLAGS = -module -avoid-version -export-dynamic vmdefaulthardconstraints_la_SOURCES = default_hard_constraints.c @@ -372,6 +381,8 @@ pressure_la_LDFLAGS = -module -avoid-version -export-dynamic constant_volume_la_SOURCES = constant_volume.c constant_volume_la_LDFLAGS = -module -avoid-version -export-dynamic constant_area_la_SOURCES = constant_area.c constant_area_la_LDFLAGS = -module -avoid-version -export-dynamic all: all-am .SUFFIXES: @@ -441,6 +452,9 @@ rm -f $${locs}; \ } constant_area.la: $(constant_area_la_OBJECTS) $(constant_area_la_DEPENDENCIES) $(EXTRA_constant_area_la_DEPENDENCIES) $(AM_V_CCLD)$(constant_area_la_LINK) -rpath $(libdir) $(constant_area_la_OBJECTS) $(constant_area_la_LIBADD) $(LIBS) constant_volume.la: $(constant_volume_la_OBJECTS) $(constant_volume_la_DEPENDENCIES) $(EXTRA_constant_volume_la_DEPENDENCIES) $(AM_V_CCLD)$(constant_volume_la_LINK) -rpath $(libdir) $(constant_volume_la_OBJECTS) $(constant_volume_la_LIBADD) $(LIBS) @@ -465,6 +479,7 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/constant_area.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/constant_volume.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/default_hard_constraints.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo_plugin.Plo@am__quote@ src/plugins/constant_area.c
New file @@ -0,0 +1,67 @@ #include <stdlib.h> #include<math.h> #include "general.h" #include "vertex.h" #include "cell.h" #include "vesicle.h" #include "frame.h" char plugin_name[] = "Constant area"; char plugin_description[]= "Plugin that enables constant area of the vesicle."; char plugin_author[] = "SAMO PENIC"; typedef struct { ts_double darea; ts_double A0; ts_double epsarea; } plugin_data; ts_plugin_details *init (){ ts_plugin_details *details=(ts_plugin_details *)calloc(1,sizeof(ts_plugin_details)); details->name = plugin_name; details->data = (plugin_data *)calloc(1,sizeof(plugin_data)); //storing data return details; } ts_vesicle *after_vesicle_init(ts_vesicle *vesicle){ plugin_data *data=(plugin_data *)vesicle->plist->pointer->plugin->details->data; ts_fprintf(stdout,"area volume initialized\n"); centermass(vesicle); cell_occupation(vesicle); vesicle_area(vesicle); data->A0=vesicle->area; data->epsarea=data->A0/(ts_double)vesicle->tlist->n; return vesicle; } void vm_energy_before_prepare(ts_vesicle *vesicle, ts_vertex *vtx){ if(vesicle->tape->constareaswitch>0){ plugin_data *data=(plugin_data *)vesicle->plist->pointer->plugin->details->data; data->darea=0; ts_uint i; for(i=0;i<vtx->tristar_no;i++) data->darea-=vtx->tristar[i]->area; } } ts_double vm_before_montecarlo_constraint(ts_vesicle *vesicle, ts_vertex *vtx, ts_vertex *old_vtx){ if(vesicle->tape->constareaswitch>0){ plugin_data *data=(plugin_data *)vesicle->plist->pointer->plugin->details->data; ts_uint i; for(i=0;i<vtx->tristar_no;i++) data->darea+=vtx->tristar[i]->area; if(fabs(vesicle->area+data->darea-data->A0)>data->epsarea) return TS_FAIL; } return TS_SUCCESS; } void vm_new_state_accepted(ts_vesicle *vesicle, ts_vertex *vtx, ts_vertex *old_vtx){ if(vesicle->tape->constareaswitch >0){ plugin_data *data=(plugin_data *)vesicle->plist->pointer->plugin->details->data; vesicle->area+=data->darea; } } src/vertexmove.c
@@ -60,22 +60,15 @@ vesicle->plist->pointer->plugin->function->vm_energy_before_prepare(vesicle, vtx); vesicle->plist->pointer=vesicle->plist->pointer->next; } /* End of vm_energy_before_prepare() */ if(vesicle->tape->constareaswitch==2){ for(i=0;i<vtx->tristar_no;i++) darea-=vtx->tristar[i]->area; } //stretching energy 1 of 3 if(vesicle->tape->stretchswitch==1){ for(i=0;i<vtx->tristar_no;i++) dstretchenergy-=vtx->tristar[i]->energy; } delta_energy=0; // vesicle_volume(vesicle); // fprintf(stderr,"Volume in the beginning=%1.16e\n", vesicle->volume); //update the normals of triangles that share bead i. //update the normals of triangles that share bead i. for(i=0;i<vtx->tristar_no;i++) triangle_normal_vector(vtx->tristar[i]); oenergy=vtx->energy; energy_vertex(vtx);