Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F74849407
run_MECH.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Tue, Jul 30, 01:10
Size
2 KB
Mime Type
text/x-python
Expires
Thu, Aug 1, 01:10 (2 d)
Engine
blob
Format
Raw Data
Handle
19443690
Attached To
R4670 PySONIC (old)
run_MECH.py
View Options
# -*- coding: utf-8 -*-
# @Author: Theo Lemaire
# @Date: 2018-03-15 18:33:59
# @Last Modified by: Theo Lemaire
# @Last Modified time: 2018-07-23 14:30:27
""" Script to run MECH simulations from command line. """
import
sys
import
os
import
logging
from
argparse
import
ArgumentParser
from
PointNICE.utils
import
logger
,
InputError
from
PointNICE.bls
import
BilayerSonophore
from
PointNICE.solvers
import
checkBatchLog
,
MechWorker
from
PointNICE.plt
import
plotBatch
# Default parameters
default
=
{
'a'
:
32.0
,
# nm
'd'
:
0.0
,
# um
'f'
:
500.0
,
# kHz
'A'
:
100.0
,
# kPa
'Cm0'
:
1.0
,
# uF/cm2
'Qm0'
:
0.0
,
# nC/cm2
'Qm'
:
0.0
,
# nC/cm2
}
def
main
():
# Define argument parser
ap
=
ArgumentParser
()
# ASTIM parameters
ap
.
add_argument
(
'-a'
,
'--diameter'
,
type
=
float
,
default
=
default
[
'a'
],
help
=
'Sonophore diameter (nm)'
)
ap
.
add_argument
(
'-d'
,
'--embedding'
,
type
=
float
,
default
=
default
[
'd'
],
help
=
'Embedding depth (um)'
)
ap
.
add_argument
(
'-f'
,
'--frequency'
,
type
=
float
,
default
=
default
[
'f'
],
help
=
'Acoustic drive frequency (kHz)'
)
ap
.
add_argument
(
'-A'
,
'--amplitude'
,
type
=
float
,
default
=
default
[
'A'
],
help
=
'Acoustic pressure amplitude (kPa)'
)
ap
.
add_argument
(
'-Cm0'
,
'--restcapct'
,
type
=
float
,
default
=
default
[
'Cm0'
],
help
=
'Membrane resting capacitance (uF/cm2)'
)
ap
.
add_argument
(
'-Qm0'
,
'--restcharge'
,
type
=
float
,
default
=
default
[
'Qm0'
],
help
=
'Membrane resting charge density (nC/cm2)'
)
ap
.
add_argument
(
'-Qm'
,
'--charge'
,
type
=
float
,
default
=
default
[
'Qm'
],
help
=
'Applied charge density (nC/cm2)'
)
ap
.
add_argument
(
'-o'
,
'--outputdir'
,
type
=
str
,
default
=
os
.
getcwd
(),
help
=
'Output directory'
)
# Boolean parameters
ap
.
add_argument
(
'-v'
,
'--verbose'
,
default
=
False
,
action
=
'store_true'
,
help
=
'Increase verbosity'
)
ap
.
add_argument
(
'-p'
,
'--plot'
,
default
=
False
,
action
=
'store_true'
,
help
=
'Plot results'
)
# Parse arguments
args
=
ap
.
parse_args
()
a
=
args
.
diameter
*
1e-9
# m
d
=
args
.
embedding
*
1e-6
# m
Fdrive
=
args
.
frequency
*
1e3
# Hz
Adrive
=
args
.
amplitude
*
1e3
# Pa
Cm0
=
args
.
restcapct
*
1e-2
# F/m2
Qm0
=
args
.
restcharge
*
1e-5
# C/m2
Qm
=
args
.
charge
*
1e-5
# C/m2
output_dir
=
args
.
outputdir
if
args
.
verbose
:
logger
.
setLevel
(
logging
.
DEBUG
)
else
:
logger
.
setLevel
(
logging
.
INFO
)
try
:
log_filepath
,
_
=
checkBatchLog
(
output_dir
,
'MECH'
)
worker
=
MechWorker
(
1
,
output_dir
,
log_filepath
,
BilayerSonophore
(
a
,
Fdrive
,
Cm0
,
Qm0
,
d
),
Fdrive
,
Adrive
,
Qm
,
1
)
logger
.
info
(
'
%s
'
,
worker
)
outfile
=
worker
.
__call__
()
logger
.
info
(
'Finished'
)
if
args
.
plot
:
plotBatch
(
output_dir
,
[
outfile
])
except
InputError
as
err
:
logger
.
error
(
err
)
sys
.
exit
(
1
)
if
__name__
==
'__main__'
:
main
()
Event Timeline
Log In to Comment