Tspostat in python. Flexible and incremental
Samo Penic
2019-03-04 f3a0d0ab077e68691e1f2a48c257bca3e05765c8
Bending energy calcualtion added
2 files modified
19 ■■■■ changed files
poststat.py 15 ●●●● patch | view | raw | blame | history
wrapper.py 4 ●●● patch | view | raw | blame | history
poststat.py
@@ -59,6 +59,15 @@
            energy+=tmpenergy/3.0
    return energy
def sum_bending_energy(vesicle, only_c0_c0=False):
    energy=0.0
    ts.mean_curvature_and_energy(vesicle)
    for i in range(0,vesicle.contents.vlist.contents.n):
        cvtx=vesicle.contents.vlist.contents.vtx[i]
        if(only_c0_c0 is False or (only_c0_c0 is True and vesicle.contents.vlist.contents.vtx[i].contents.c)):
            energy+=cvtx.contents.energy
    return energy
def get_histogram_data(vesicle):
    cstlist=ts.init_cluster_list()
    ts.clusterize_vesicle(vesicle,cstlist)
@@ -89,7 +98,7 @@
        'l3':l3,
        'Nbw/Nb':count_bonds/vesicle.contents.blist.contents.n,
        'StretchingE': sum_stretching_energy(vesicle),
        'StretchingEonlyC0': sum_stretching_energy(vesicle, True),
        'BendingEonlyC0': sum_bending_energy(vesicle, True),
        'avgFx': avg_normal_force[0],
        'avgFy': avg_normal_force[1],
        'avgFz': avg_normal_force[2]
@@ -130,7 +139,7 @@
        csvdict=read_csv(os.path.join(directory,'data_tspoststat.csv'))
    except FileNotFoundError:
        #print("no file")
        csvdict={'OuterLoop':['OuterLoop', 'Volume', 'Area', 'lamdba1', 'lambda2', 'lambda3', 'Nbw/Nb', 'hbar', 'StretchingE', 'avgFx', 'avgFy', 'avgFz', 'StretchingEonlyC0']}
        csvdict={'OuterLoop':['OuterLoop', 'Volume', 'Area', 'lamdba1', 'lambda2', 'lambda3', 'Nbw/Nb', 'hbar', 'StretchingE', 'avgFx', 'avgFy', 'avgFz', 'BendingEonlyC0']}
    filedict=get_vtu_dict(directory)
    modified=False
    for f in filedict:
@@ -156,7 +165,7 @@
                '{:.17e}'.format(p['avgFx']),
                '{:.17e}'.format(p['avgFy']),
                '{:.17e}'.format(p['avgFz']),
                '{:.17e}'.format(p['StretchingEonlyC0'])]
                '{:.17e}'.format(p['BendingEonlyC0'])]
            modified=True
    if modified:
        write_csv(os.path.join(directory,'data_tspoststat.csv'), csvdict)
wrapper.py
@@ -290,4 +290,6 @@
    ts.stretchenergy(vesicle,triangle)
    
def mean_curvature_and_energy(vesicle):
    ts.mean_curvature_and_energy.argtype=[POINTER(ts_vesicle)]
    ts.mean_curvature_and_energy(vesicle)