Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
T
TooBBA
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Stelios Karozis
TooBBA
Commits
4d277115
Commit
4d277115
authored
May 19, 2020
by
Stelios Karozis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Print data function
parent
cec97309
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
59 additions
and
11 deletions
+59
-11
.gitignore
.gitignore
+5
-0
CHANGELOG
CHANGELOG
+10
-0
main.py
main.py
+9
-3
tooba_f.py
tooba_f.py
+35
-8
No files found.
.gitignore
View file @
4d277115
...
@@ -4,3 +4,8 @@ __pycache__/
...
@@ -4,3 +4,8 @@ __pycache__/
.vscode/
.vscode/
*.png
*.png
*test*
*test*
*.json
*.pkl
*.trr
*.gro
*.code-workspace
\ No newline at end of file
CHANGELOG
View file @
4d277115
...
@@ -6,6 +6,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
...
@@ -6,6 +6,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [Unreleased]
## [0.0.4] - 2020-05-19
### Added
- code for print data in json and pickle format
### Changed
- debug decomposition code
### Removed
- None
## [0.0.3] - 2020-05-14
## [0.0.3] - 2020-05-14
### Added
### Added
- code for assign coordinates to subdomain
- code for assign coordinates to subdomain
...
...
main.py
View file @
4d277115
...
@@ -10,15 +10,17 @@ NUM_FR=1
...
@@ -10,15 +10,17 @@ NUM_FR=1
GRO
=
'initial.gro'
GRO
=
'initial.gro'
HEAD
=
True
HEAD
=
True
HD_GROUP
=
{
'MMA'
:[
'C1'
,
'C2'
]}
HD_GROUP
=
{
'MMA'
:[
'C1'
,
'C2'
]}
TAIL
=
Tru
e
TAIL
=
Fals
e
TL_GROUP
=
{
'MMA'
:[
'C3'
,
'C4'
,
'C5'
]}
TL_GROUP
=
{
'MMA'
:[
'C3'
,
'C4'
,
'C5'
]}
DISCET
=
[
1
,
1
,
1
]
RES_NAME
=
'time_domain_c-normal-cg'
###################################################
###################################################
#Read .trr file
#Read .trr file
data_all
=
tbf
.
fr_export
(
trajfile
=
TRAJ
,
num_frames
=
NUM_FR
)
data_all
=
tbf
.
fr_export
(
trajfile
=
TRAJ
,
num_frames
=
NUM_FR
)
#Read .gro file
#Read .gro file
_
,
data_num
,
_
,
res_num
,
res_type
,
atom_type
,
atom_num
,
_
=
tbf
.
read_gro
(
GRO
)
_
,
data_num
,
_
,
res_num
,
res_type
,
atom_type
,
atom_num
,
_
=
tbf
.
read_gro
(
GRO
)
#Create subdomains coordinates
#Create subdomains coordinates
box_p
=
tbf
.
domain_decomposition
(
data
=
data_all
,
dx
=
2
,
dy
=
2
,
dz
=
2
)
box_p
=
tbf
.
domain_decomposition
(
data
=
data_all
,
dx
=
DISCET
[
0
],
dy
=
DISCET
[
1
],
dz
=
DISCET
[
2
]
)
###################################################
###################################################
if
HEAD
==
True
:
if
HEAD
==
True
:
...
@@ -32,6 +34,9 @@ if HEAD==True:
...
@@ -32,6 +34,9 @@ if HEAD==True:
coord_norm
,
_
=
tbf
.
sub_coord
(
box
=
box_res
,
data
=
data_all
,
res_num
=
res_num
)
coord_norm
,
_
=
tbf
.
sub_coord
(
box
=
box_res
,
data
=
data_all
,
res_num
=
res_num
)
#Creates dictionary with c, normal per subdomain for each frame
#Creates dictionary with c, normal per subdomain for each frame
surf
=
tbf
.
coord2norm
(
coord_norm
,
img
=
True
)
surf
=
tbf
.
coord2norm
(
coord_norm
,
img
=
True
)
tbf
.
topickle
(
fl
=
surf
,
sv_name
=
RES_NAME
)
tbf
.
tojson
(
fl
=
surf
,
sv_name
=
RES_NAME
)
###################################################
###################################################
if
TAIL
==
True
:
if
TAIL
==
True
:
#Find atom type index in lists created above
#Find atom type index in lists created above
...
@@ -44,4 +49,5 @@ if TAIL==True:
...
@@ -44,4 +49,5 @@ if TAIL==True:
_
,
coord_vector
=
tbf
.
sub_coord
(
box
=
box_res
,
data
=
data_all
,
res_num
=
res_num
)
_
,
coord_vector
=
tbf
.
sub_coord
(
box
=
box_res
,
data
=
data_all
,
res_num
=
res_num
)
vector
=
tbf
.
coord2vector
(
coord_vector
)
vector
=
tbf
.
coord2vector
(
coord_vector
)
###################################################
###################################################
tbf
.
SurfVector_angle
(
surf
,
vector
)
if
HEAD
==
True
and
TAIL
==
True
:
\ No newline at end of file
tbf
.
SurfVector_angle
(
surf
,
vector
)
\ No newline at end of file
tooba_f.py
View file @
4d277115
import
numpy
as
np
import
numpy
as
np
import
scipy.optimize
import
scipy.optimize
import
pickle
as
pkl
import
json
#from mpl_toolkits.mplot3d import Axes3D
#from mpl_toolkits.mplot3d import Axes3D
import
matplotlib.pyplot
as
plt
import
matplotlib.pyplot
as
plt
...
@@ -43,6 +44,19 @@ def angle_between3D(v1, v2):
...
@@ -43,6 +44,19 @@ def angle_between3D(v1, v2):
else
:
else
:
return
360
-
angle
return
360
-
angle
def
center_gravity
(
a
):
m
=
len
(
a
)
cg
=
np
.
sum
(
a
)
/
m
return
cg
def
topickle
(
fl
,
sv_name
):
with
open
(
sv_name
+
'.pkl'
,
'wb'
)
as
handle
:
pkl
.
dump
(
fl
,
handle
,
protocol
=
pkl
.
HIGHEST_PROTOCOL
)
def
tojson
(
fl
,
sv_name
):
with
open
(
sv_name
+
'.json'
,
'w'
)
as
file
:
file
.
write
(
json
.
dumps
(
str
(
fl
)))
def
plot_surf
(
data
,
normal
,
c
,
save_name
):
def
plot_surf
(
data
,
normal
,
c
,
save_name
):
#Plot surface
#Plot surface
fig
=
plt
.
figure
()
fig
=
plt
.
figure
()
...
@@ -72,6 +86,9 @@ def plot_surf(data, normal, c, save_name):
...
@@ -72,6 +86,9 @@ def plot_surf(data, normal, c, save_name):
ax
.
set_zlabel
(
'z'
)
ax
.
set_zlabel
(
'z'
)
plt
.
savefig
(
save_name
+
'.png'
)
plt
.
savefig
(
save_name
+
'.png'
)
#plt.show()
#plt.show()
plt
.
clf
()
plt
.
cla
()
plt
.
close
()
def
points2vector
(
data
):
def
points2vector
(
data
):
"""
"""
...
@@ -202,26 +219,33 @@ def domain_decomposition(data,dx,dy,dz):
...
@@ -202,26 +219,33 @@ def domain_decomposition(data,dx,dy,dz):
box_y
=
int
(
ys
/
dy
)
box_y
=
int
(
ys
/
dy
)
box_z
=
int
(
zs
/
dz
)
box_z
=
int
(
zs
/
dz
)
xx
=
[]
xx
=
[]
for
i
in
range
(
0
,
xs
+
1
,
box_x
):
# for i in range(0,xs+1,dx):
for
i
in
range
(
0
,
box_x
):
xx
.
append
(
i
)
xx
.
append
(
i
)
box_p
[
step
][
'x'
]
=
xx
box_p
[
step
][
'x'
]
=
xx
yy
=
[]
yy
=
[]
for
i
in
range
(
0
,
ys
+
1
,
box_y
):
# for i in range(0,ys+1,dy):
for
i
in
range
(
0
,
box_y
):
yy
.
append
(
i
)
yy
.
append
(
i
)
box_p
[
step
][
'y'
]
=
yy
box_p
[
step
][
'y'
]
=
yy
zz
=
[]
zz
=
[]
for
i
in
range
(
0
,
zs
+
1
,
box_z
):
# for i in range(0,zs+1,dz):
for
i
in
range
(
0
,
box_z
):
zz
.
append
(
i
)
zz
.
append
(
i
)
box_p
[
step
][
'z'
]
=
zz
box_p
[
step
][
'z'
]
=
zz
xyz
=
[]
xyz
=
[]
for
ix
in
range
(
0
,
xs
+
1
,
box_x
):
# for ix in range(0,xs+1,dx):
for
iy
in
range
(
0
,
ys
+
1
,
box_y
):
for
ix
in
range
(
0
,
box_x
):
for
iz
in
range
(
0
,
zs
+
1
,
box_z
):
# for iy in range(0,ys+1,dy):
for
iy
in
range
(
0
,
box_y
):
# for iz in range(0,zs+1,dz):
for
iz
in
range
(
0
,
box_z
):
xyz
.
append
([
ix
,
iy
,
iz
])
xyz
.
append
([
ix
,
iy
,
iz
])
box_p
[
step
][
'xyz'
]
=
xyz
box_p
[
step
][
'xyz'
]
=
xyz
...
@@ -388,7 +412,10 @@ def coord2norm(coord,img=True):
...
@@ -388,7 +412,10 @@ def coord2norm(coord,img=True):
surf
[
step
]
=
{}
surf
[
step
]
=
{}
for
subdomain
in
coord
[
step
]
.
keys
():
for
subdomain
in
coord
[
step
]
.
keys
():
c
,
normal
=
fitPlaneLTSQ
(
np
.
array
(
coord
[
step
][
subdomain
]))
c
,
normal
=
fitPlaneLTSQ
(
np
.
array
(
coord
[
step
][
subdomain
]))
surf
[
step
][
subdomain
]
=
{
'c'
:
c
,
'normal'
:
normal
}
cgx
=
center_gravity
(
coord
[
step
][
subdomain
])
cgy
=
center_gravity
(
coord
[
step
][
subdomain
])
cgz
=
center_gravity
(
coord
[
step
][
subdomain
])
surf
[
step
][
subdomain
]
=
{
'c'
:
c
,
'normal'
:
normal
,
'cg'
:[
cgx
,
cgy
,
cgz
]}
#Change save variable if you want to save .png elsewere
#Change save variable if you want to save .png elsewere
save
=
'png/'
+
str
(
subdomain
)
save
=
'png/'
+
str
(
subdomain
)
if
img
==
True
:
if
img
==
True
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment