Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit a8dbed3

Browse files
author
Henry Lloyd-Laney
committedSep 7, 2020
move to desktop push
1 parent eec1286 commit a8dbed3

34 files changed

+154
-97
lines changed
 

‎CMakeCache.txt

+7-4
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ CMAKE_AR:FILEPATH=/usr/bin/ar
1919

2020
//Choose the type of build, options are: None Debug Release RelWithDebInfo
2121
// MinSizeRel ...
22-
CMAKE_BUILD_TYPE:STRING=
22+
CMAKE_BUILD_TYPE:STRING=Release
2323

2424
//Enable/Disable color output during build.
2525
CMAKE_COLOR_MAKEFILE:BOOL=ON
@@ -145,6 +145,9 @@ CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com
145145
//Read-only single-machine data (etc)
146146
CMAKE_INSTALL_SYSCONFDIR:PATH=etc
147147

148+
//No help, variable specified on the command line.
149+
CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/home/henney/Documents/Oxford/papers/SV_paper
150+
148151
//Path to a program.
149152
CMAKE_LINKER:FILEPATH=/usr/bin/ld
150153

@@ -262,7 +265,7 @@ PYBIND11_PYTHON_VERSION:STRING=
262265
PYBIND11_TEST:BOOL=OFF
263266

264267
//Path to a program.
265-
PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3.7
268+
PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
266269

267270
//Path to a library.
268271
PYTHON_LIBRARY:FILEPATH=/usr/lib64/libpython3.7m.so
@@ -460,9 +463,9 @@ CMAKE_UNAME:INTERNAL=/usr/bin/uname
460463
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
461464
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
462465
//Details about finding PYTHON
463-
FIND_PACKAGE_MESSAGE_DETAILS_PYTHON:INTERNAL=/usr/bin/python3.7
466+
FIND_PACKAGE_MESSAGE_DETAILS_PYTHON:INTERNAL=/usr/bin/python3
464467
//Details about finding PythonInterp
465-
FIND_PACKAGE_MESSAGE_DETAILS_PythonInterp:INTERNAL=[/usr/bin/python3.7][v3.7.4()]
468+
FIND_PACKAGE_MESSAGE_DETAILS_PythonInterp:INTERNAL=[/usr/bin/python3][v3.7.4()]
466469
//Test HAS_CPP14_FLAG
467470
HAS_CPP14_FLAG:INTERNAL=1
468471
//Test HAS_FLTO

‎CMakeFiles/Makefile.cmake

-73
Original file line numberDiff line numberDiff line change
@@ -10,100 +10,32 @@ set(CMAKE_MAKEFILE_DEPENDS
1010
"CMakeFiles/3.14.5/CMakeCCompiler.cmake"
1111
"CMakeFiles/3.14.5/CMakeCXXCompiler.cmake"
1212
"CMakeFiles/3.14.5/CMakeSystem.cmake"
13-
"CMakeFiles/feature_tests.c"
14-
"CMakeFiles/feature_tests.cxx"
1513
"CMakeLists.txt"
1614
"lib/pybind11/CMakeLists.txt"
1715
"lib/pybind11/tools/FindPythonLibsNew.cmake"
1816
"lib/pybind11/tools/pybind11Tools.cmake"
19-
"/usr/share/cmake/Modules/CMakeCCompiler.cmake.in"
20-
"/usr/share/cmake/Modules/CMakeCCompilerABI.c"
2117
"/usr/share/cmake/Modules/CMakeCInformation.cmake"
22-
"/usr/share/cmake/Modules/CMakeCXXCompiler.cmake.in"
23-
"/usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp"
2418
"/usr/share/cmake/Modules/CMakeCXXInformation.cmake"
2519
"/usr/share/cmake/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
2620
"/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake"
27-
"/usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake"
28-
"/usr/share/cmake/Modules/CMakeDetermineCCompiler.cmake"
29-
"/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake"
30-
"/usr/share/cmake/Modules/CMakeDetermineCompileFeatures.cmake"
31-
"/usr/share/cmake/Modules/CMakeDetermineCompiler.cmake"
32-
"/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake"
33-
"/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake"
34-
"/usr/share/cmake/Modules/CMakeDetermineSystem.cmake"
35-
"/usr/share/cmake/Modules/CMakeFindBinUtils.cmake"
3621
"/usr/share/cmake/Modules/CMakeGenericSystem.cmake"
3722
"/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake"
3823
"/usr/share/cmake/Modules/CMakeLanguageInformation.cmake"
3924
"/usr/share/cmake/Modules/CMakePackageConfigHelpers.cmake"
4025
"/usr/share/cmake/Modules/CMakeParseArguments.cmake"
41-
"/usr/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake"
42-
"/usr/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake"
43-
"/usr/share/cmake/Modules/CMakeSystem.cmake.in"
4426
"/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake"
4527
"/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake"
46-
"/usr/share/cmake/Modules/CMakeTestCCompiler.cmake"
47-
"/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake"
48-
"/usr/share/cmake/Modules/CMakeTestCompilerCommon.cmake"
49-
"/usr/share/cmake/Modules/CMakeUnixFindMake.cmake"
5028
"/usr/share/cmake/Modules/CheckCXXCompilerFlag.cmake"
5129
"/usr/share/cmake/Modules/CheckCXXSourceCompiles.cmake"
52-
"/usr/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake"
53-
"/usr/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
54-
"/usr/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
55-
"/usr/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake"
56-
"/usr/share/cmake/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
5730
"/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
58-
"/usr/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake"
59-
"/usr/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
60-
"/usr/share/cmake/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
61-
"/usr/share/cmake/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
62-
"/usr/share/cmake/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
63-
"/usr/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake"
64-
"/usr/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
65-
"/usr/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
66-
"/usr/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake"
67-
"/usr/share/cmake/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
68-
"/usr/share/cmake/Modules/Compiler/GNU-C-FeatureTests.cmake"
6931
"/usr/share/cmake/Modules/Compiler/GNU-C.cmake"
70-
"/usr/share/cmake/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
71-
"/usr/share/cmake/Modules/Compiler/GNU-CXX-FeatureTests.cmake"
7232
"/usr/share/cmake/Modules/Compiler/GNU-CXX.cmake"
73-
"/usr/share/cmake/Modules/Compiler/GNU-FindBinUtils.cmake"
7433
"/usr/share/cmake/Modules/Compiler/GNU.cmake"
75-
"/usr/share/cmake/Modules/Compiler/HP-C-DetermineCompiler.cmake"
76-
"/usr/share/cmake/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
77-
"/usr/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake"
78-
"/usr/share/cmake/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
79-
"/usr/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
80-
"/usr/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake"
81-
"/usr/share/cmake/Modules/Compiler/MIPSpro-DetermineCompiler.cmake"
82-
"/usr/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake"
83-
"/usr/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
84-
"/usr/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
85-
"/usr/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake"
86-
"/usr/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake"
87-
"/usr/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake"
88-
"/usr/share/cmake/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
89-
"/usr/share/cmake/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
90-
"/usr/share/cmake/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
91-
"/usr/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake"
92-
"/usr/share/cmake/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
93-
"/usr/share/cmake/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
94-
"/usr/share/cmake/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
95-
"/usr/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake"
96-
"/usr/share/cmake/Modules/Compiler/XL-C-DetermineCompiler.cmake"
97-
"/usr/share/cmake/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
98-
"/usr/share/cmake/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
99-
"/usr/share/cmake/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
10034
"/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake"
10135
"/usr/share/cmake/Modules/FindPackageMessage.cmake"
10236
"/usr/share/cmake/Modules/FindPythonInterp.cmake"
10337
"/usr/share/cmake/Modules/GNUInstallDirs.cmake"
10438
"/usr/share/cmake/Modules/Internal/CMakeCheckCompilerFlag.cmake"
105-
"/usr/share/cmake/Modules/Internal/FeatureTesting.cmake"
106-
"/usr/share/cmake/Modules/Platform/Linux-Determine-CXX.cmake"
10739
"/usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake"
10840
"/usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake"
10941
"/usr/share/cmake/Modules/Platform/Linux-GNU.cmake"
@@ -120,11 +52,6 @@ set(CMAKE_MAKEFILE_OUTPUTS
12052

12153
# Byproducts of CMake generate step:
12254
set(CMAKE_MAKEFILE_PRODUCTS
123-
"CMakeFiles/3.14.5/CMakeSystem.cmake"
124-
"CMakeFiles/3.14.5/CMakeCCompiler.cmake"
125-
"CMakeFiles/3.14.5/CMakeCXXCompiler.cmake"
126-
"CMakeFiles/3.14.5/CMakeCCompiler.cmake"
127-
"CMakeFiles/3.14.5/CMakeCXXCompiler.cmake"
12855
"CMakeFiles/CMakeDirectoryInformation.cmake"
12956
"lib/pybind11/CMakeFiles/CMakeDirectoryInformation.cmake"
13057
)

‎CMakeFiles/isolver_martin_brent.dir/build.make

+1
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ isolver_martin_brent.cpython-37m-x86_64-linux-gnu.so: CMakeFiles/isolver_martin_
8282
isolver_martin_brent.cpython-37m-x86_64-linux-gnu.so: CMakeFiles/isolver_martin_brent.dir/link.txt
8383
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/henney/Documents/Oxford/papers/SV_paper/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared module isolver_martin_brent.cpython-37m-x86_64-linux-gnu.so"
8484
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/isolver_martin_brent.dir/link.txt --verbose=$(VERBOSE)
85+
/usr/bin/strip /home/henney/Documents/Oxford/papers/SV_paper/isolver_martin_brent.cpython-37m-x86_64-linux-gnu.so
8586

8687
# Rule to build all files generated by this target.
8788
CMakeFiles/isolver_martin_brent.dir/build: isolver_martin_brent.cpython-37m-x86_64-linux-gnu.so

‎CMakeFiles/isolver_martin_brent.dir/flags.make

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Generated by "Unix Makefiles" Generator, CMake Version 3.14
33

44
# compile CXX with /usr/lib64/ccache/c++
5-
CXX_FLAGS = -fPIC -fvisibility=hidden -std=c++14 -flto -fno-fat-lto-objects
5+
CXX_FLAGS = -O2 -DNDEBUG -fPIC -fvisibility=hidden -std=c++14 -flto -fno-fat-lto-objects
66

77
CXX_DEFINES = -Disolver_martin_brent_EXPORTS
88

Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
/usr/lib64/ccache/c++ -fPIC -shared -o isolver_martin_brent.cpython-37m-x86_64-linux-gnu.so CMakeFiles/isolver_martin_brent.dir/src/surface_process_brent.cpp.o -flto
1+
/usr/lib64/ccache/c++ -fPIC -O2 -DNDEBUG -shared -o isolver_martin_brent.cpython-37m-x86_64-linux-gnu.so CMakeFiles/isolver_martin_brent.dir/src/surface_process_brent.cpp.o -flto
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

‎SV_paper.egg-info/PKG-INFO

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Metadata-Version: 1.0
2+
Name: SV-paper
3+
Version: 0.0.1
4+
Summary: The companion code for the sinusoidal voltammetry paper
5+
Home-page: UNKNOWN
6+
Author: UNKNOWN
7+
Author-email: UNKNOWN
8+
License: UNKNOWN
9+
Description: UNKNOWN
10+
Platform: UNKNOWN

‎SV_paper.egg-info/SOURCES.txt

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
README.md
2+
setup.py
3+
SV_paper.egg-info/PKG-INFO
4+
SV_paper.egg-info/SOURCES.txt
5+
SV_paper.egg-info/dependency_links.txt
6+
SV_paper.egg-info/not-zip-safe
7+
SV_paper.egg-info/requires.txt
8+
SV_paper.egg-info/top_level.txt
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

‎SV_paper.egg-info/not-zip-safe

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

‎SV_paper.egg-info/requires.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pints

‎SV_paper.egg-info/top_level.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SV_paper

‎cmake_install.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
1212
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
1313
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
1414
else()
15-
set(CMAKE_INSTALL_CONFIG_NAME "")
15+
set(CMAKE_INSTALL_CONFIG_NAME "Release")
1616
endif()
1717
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
1818
endif()

‎figures/Alice_10_sims.png

594 KB
Loading

‎figures/Ramped_comparison.png

458 KB
Loading

‎figures/experiment_comparison.png

1.45 MB
Loading

‎figures/figure1.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -68,21 +68,21 @@
6868
fourier_ylabels=["Real", "Imaginary"]
6969
fourier_times=[ramp_time_results, time_results]
7070
fourier_currents=[ramped_cmaes_time, cmaes_time]
71-
harm_xlabels=["Time(s)", "Voltage(V)"]
71+
harm_xlabels=["Time(s)", "Potential(V)"]
7272
fig=multiplot(2, 4, **{"harmonic_position":3, "num_harmonics":num_harms, "fourier_position":2,"orientation":"portrait", "plot_width":6, "col_spacing":2, "font_size":15})
7373
keys=sorted(fig.axes_dict.keys())
7474

7575
fig.axes_dict["col1"][0].plot(ramp_time_results, ramp_voltage_results)
7676
fig.axes_dict["col1"][0].set_xlabel("Time(s)")
77-
fig.axes_dict["col1"][0].set_ylabel("Voltage(V)")
77+
fig.axes_dict["col1"][0].set_ylabel("Potential(V)")
7878
fig.axes_dict["col1"][1].plot(voltage_times, voltage_plots)
7979
fig.axes_dict["col1"][1].set_xlabel("Time(s)")
80-
fig.axes_dict["col1"][1].set_ylabel("Voltage(V)")
80+
fig.axes_dict["col1"][1].set_ylabel("Potential(V)")
8181
fig.axes_dict["col2"][0].plot(ramp_time_results, ramped_cmaes_time)
8282
fig.axes_dict["col2"][0].set_xlabel("Time(s)")
8383
fig.axes_dict["col2"][0].set_ylabel("Current(mA)")
8484
fig.axes_dict["col2"][1].plot(voltage_results, cmaes_time)
85-
fig.axes_dict["col2"][1].set_xlabel("Voltage(V)")
85+
fig.axes_dict["col2"][1].set_xlabel("Potential(V)")
8686
fig.axes_dict["col2"][1].set_ylabel("Current(mA)")
8787
for i in range(0, 2):
8888
for j in range(0, 2):
@@ -133,6 +133,7 @@
133133
plt.show()
134134
save_path="experiment_comparison.png"
135135
fig.savefig(save_path, dpi=500)
136+
if resize==True:
136137
img = Image.open(save_path)
137138
basewidth = float(img.size[0])//2
138139
wpercent = (basewidth/float(img.size[0]))

‎figures/figure3.py

+19-6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44
import pints
55
import os
66
import sys
7+
try:
8+
from PIL import Image
9+
resize=True
10+
except:
11+
resize=False
712
current_dir=os.getcwd()
813
dir_list=current_dir.split("/")
914
upper_level_list=dir_list[:dir_list.index("SV_paper")+1]
@@ -97,11 +102,12 @@
97102
file="Noramp_2_cv_high_ru_alpha_disp"
98103
CMAES_path=("/").join([upper_level, "Inferred_results", "CMAES"])
99104
noramp_results=single_electron(CMAES_path+"/"+file)
100-
print(noramp_results.simulation_options["GH_quadrature"])
105+
print(noramp_results.dim_dict["num_peaks"])
101106
noramp_results.simulation_options["dispersion_bins"]=[15,15]
107+
noramp_results.dim_dict["sampling_freq"]=1/2000.0
102108
noramp_results.dim_dict["phase"]=3*math.pi/2
103109
plot_params=["E0_mean", "E0_std","k_0","Ru","Cdl","CdlE1", "cap_phase", "alpha_mean", "alpha_std"]
104-
param_vals=[0.25, 0.05, 100, 100,1e-5, 1e-5,3*math.pi/2, 0.5, 0.05]
110+
param_vals=[0.25, 0.05, 0.1, 100,1e-5, 1e-5,3*math.pi/2, 0.5, 0.05]
105111
noramp_results.dim_dict["Cdl"]=1e-5
106112
noramp_results.dim_dict["CdlE1"]=0
107113
noramp_results.dim_dict["CdlE2"]=0
@@ -141,7 +147,7 @@
141147
xlims=ax.get_xlim()
142148
ax.set_xlim(noramp_results.dim_dict["E_start"], 0.8)
143149
if row_idx==row_len-1:
144-
ax.set_xlabel("Voltage(V)")
150+
ax.set_xlabel("Potential(V)")
145151
else:
146152
ax.set_xticks([])
147153
if col_idx==0:
@@ -158,7 +164,14 @@
158164

159165
fig=plt.gcf()
160166
fig.set_size_inches((14, 9))
161-
plt.subplots_adjust(left=0.08, bottom=0.1, right=0.98, top=0.94, wspace=0.23, hspace=0.10)
167+
plt.subplots_adjust(left=0.08, bottom=0.1, right=0.98, top=0.94, wspace=0.25, hspace=0.10)
162168
plt.show()
163-
#save_path="parameter_scans.png"
164-
#fig.savefig(save_path, dpi=500)
169+
save_path="parameter_scans.png"
170+
fig.savefig(save_path, dpi=500)
171+
if resize==True:
172+
img = Image.open(save_path)
173+
basewidth = float(img.size[0])//2
174+
wpercent = (basewidth/float(img.size[0]))
175+
hsize = int((float(img.size[1])*float(wpercent)))
176+
img = img.resize((int(basewidth),hsize), Image.ANTIALIAS)
177+
img.save(save_path, "PNG", quality=95, dpi=(500, 500))

‎figures/figure5.py

+18-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
dir_path = os.path.dirname(os.path.realpath(__file__))
1919
results_dict="Inferred_params"
2020
Electrode="Yellow"
21-
run="Run_6"
21+
run="Run_7"
2222
concs=["1e-1M", "1e0M"]
2323
file_numbers=[str(x) for x in range(1, 4)]
2424
figure=multiplot(3, 1, **{"harmonic_position":2, "num_harmonics":7, "orientation":"landscape", "fourier_position":1, "plot_width":5, "row_spacing":2, "plot_height":1})
@@ -30,14 +30,28 @@
3030
plt.rcParams.update({'font.size': 9})
3131
def RMSE(series1, series2):
3232
return np.sqrt((np.sum(1/(len(series1))*np.power(np.subtract(series1, series2),2))))
33+
param_mat=[[0.24696678941258246, 0.02150713711591799, 99.45832461312207, 774.704213209354, 7.701956070978554e-05, 0.003017010623506844, -0.00039055262925760496, 7.758858523468079e-11, 8.940640920538685, 4.410033377066397,5.1069657955459, 0.5825105457091572, 0.14328732063771737] ,
34+
[0.2438679560342186, 0.04933431717529572, 191.31132541897506, 497.5055066560729, 7.69338292657605e-05, 0.0031326600706418906, -0.0004312564011993529, 7.271953365051911e-11, 8.94052385943315, 4.3351579045955795,4.925339460865147, 0.6496639586748201, 0.17177231234727677] ,
35+
[0.24430949230426569, 0.04731795471469772, 176.34896534285173, 521.4259532758771, 7.647752507363084e-05, 0.002994039070869009, -0.0004190299720139099, 7.275919967176139e-11, 8.940534898414818, 4.342816983799178, 4.943663135736721, 0.6362752123549957, 0.1720460446880876] ,
36+
[0.24390113149368509, 0.0457048751819453, 161.20949406256256, 536.934970450984, 7.621126298448553e-05, 0.0028379095150146416, -0.000413526916786134, 7.281036191448345e-11, 8.940539372196708, 4.34670259354896, 4.957545393990694, 0.6227137060882207, 0.1713086829766499] ,
37+
[0.24264240746946078, 0.04862334843813994, 174.5319444179432, 501.7381191076415, 7.621609295572e-05, 0.0025967801809421154, -0.00041475793632247265, 7.236585251042315e-11, 8.94052009496047, 4.336548651366052, 4.934251569752124, 0.6291348730960813, 0.17453584870953875] ,
38+
[0.24160781666577544, 0.05036058151555205, 183.91624120363147, 478.0527573517239, 7.62482655530355e-05, 0.002429757046640779, -0.00041668758601426555, 7.209545158956022e-11, 8.940507420558243, 4.330200828730097, 4.9203855923331705, 0.633836591099598, 0.17606178914368914] ,
39+
[0.24122209427368013, 0.049981782635136945, 179.81828332106306, 480.1074385658014, 7.615225208615455e-05, 0.002305928382454525, -0.00041429576393527123, 7.19385317237139e-11, 8.940492881836837, 4.331293568942899, 4.923830104418481, 0.6292049920997411, 0.17637075996545973] ,
40+
[0.24100346908927325, 0.05022099349663932, 178.28549652948317, 477.9310528442049, 7.59455358542439e-05, 0.002273221478669929, -0.00041353404857902287, 7.160330874703819e-11, 8.940504038013483, 4.329624942864246, 4.92163560153165, 0.6277651371395521, 0.17665475180369178] ,
41+
[0.2412440781552388, 0.050226126358631266, 180.12768848217763, 485.192042495465, 7.548546629894573e-05, 0.0021505398969171585, -0.00040389051055751864, 7.11413102722647e-11, 8.940519733026564, 4.3302796214687795,4.9224469580118715, 0.6290049217531675, 0.17737634083075238],
42+
[0.24055747088306997, 0.05047523191357855, 176.56116945811587, 474.43867201525205, 7.584083348640005e-05, 0.0021028609527935505, -0.0004094927674505519, 7.146018738751102e-11, 8.940505868813535, 4.327745982059323, 4.920060562270928,0.6246797783009037, 0.1779493870477656],
43+
]
44+
3345
for i in range(10,11):
3446
file="Noramp_"+str(i)+"_cv_high_ru_alpha_disp"
3547
method="timeseries"
3648
master_optim_list=["E0_mean", "E0_std","k_0","Ru","Cdl","CdlE1", "CdlE2","gamma","omega","cap_phase","phase", "alpha"]
3749
noramp_results=single_electron(CMAES_path+"/"+file)
3850
master_optim_list=["E0_mean", "E0_std", "k_0","Ru","Cdl","CdlE1", "CdlE2","gamma","omega","cap_phase","phase", "alpha_mean", "alpha_std"]
3951
param_vals=([noramp_results.save_dict["params"][0][noramp_results.save_dict["optim_list"].index(key)] if (key in noramp_results.save_dict["optim_list"]) else noramp_results.dim_dict[key] for key in master_optim_list])
40-
noramp_results.simulation_options["dispersion_bins"]=[5,5]
52+
param_vals=param_mat[i-1]
53+
noramp_results.simulation_options["dispersion_bins"]=[5,8]
54+
noramp_results.dim_dict["simulation_freq"]=1/2000.0
4155
noramp_results.def_optim_list(master_optim_list)
4256
cmaes_time=noramp_results.i_nondim(noramp_results.test_vals(param_vals, method))
4357
current_results=noramp_results.i_nondim(noramp_results.other_values["experiment_current"])#[0::dec_amount]
@@ -48,7 +62,7 @@ def RMSE(series1, series2):
4862
time_results=noramp_results.t_nondim(noramp_results.other_values["experiment_time"])#[0::dec_amount]
4963
figure.axes_dict[keys[0]][plot_counter].plot(voltage_results*1e3, (cmaes_time)*1e3, label="Sim")
5064
figure.axes_dict[keys[0]][plot_counter].plot(voltage_results*1e3,(current_results)*1e3, alpha=0.5, label="Exp")
51-
figure.axes_dict[keys[0]][plot_counter].set_xlabel("Voltage(mV vs. Ref.)")
65+
figure.axes_dict[keys[0]][plot_counter].set_xlabel("Potential(mV vs. Ref.)")
5266
figure.axes_dict[keys[0]][plot_counter].set_ylabel("Current(mA)")
5367
figure.axes_dict[keys[0]][plot_counter].plot(voltage_results*1e3, np.subtract(cmaes_time*1e3, current_results*1e3), label="Residual")
5468
figure.axes_dict[keys[0]][plot_counter].legend()
@@ -80,7 +94,7 @@ def RMSE(series1, series2):
8094
if q==len(data_harms)//2:
8195
figure.axes_dict[keys[2]][h_counter].set_ylabel("Current($\mu$A)")
8296
if q==len(data_harms)-1:
83-
figure.axes_dict[keys[2]][h_counter].set_xlabel("Voltage(mV vs. Ref.)")
97+
figure.axes_dict[keys[2]][h_counter].set_xlabel("Potential(mV vs. Ref.)")
8498
figure.axes_dict[keys[2]][h_counter].legend(framealpha=1.0,bbox_to_anchor=(-0.3, 0.0), loc="upper left")
8599
else:
86100
figure.axes_dict[keys[2]][h_counter].set_xticks([])

‎figures/figure6.py

+13-3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
from multiplotter import multiplot
1919
from harmonics_plotter import harmonics
2020
import time
21+
def RMSE(series1, series2):
22+
return np.sqrt((np.sum(1/(len(series1))*np.power(np.subtract(series1, series2),2))))
2123
method="timeseries"
2224
file="Noramp_2_cv_high_ru_alpha_disp"
2325
CMAES_path=("/").join([upper_level, "Inferred_results", "CMAES"])
@@ -51,7 +53,7 @@
5153
ramped_time_results=ramped_current_results[:,0]
5254
ramped_current_results=ramped_current_results[:,1]
5355
ramped_data_harmonics=ramp_data_harm_class.generate_harmonics(ramped_time_results, ramped_current_results)
54-
values=[[0.24116928285797873, 0.044189985533550226, 135.53440184454033, 510.6019261842285, 7.57155256924869e-05, 0.001459719577206274, -0.00037125091413634306, 7.200978526571967e-11, 8.884799587792013, 0, 0.5973834903322666, 0.1788138464200429],
56+
values=[[0.24055747088306997, 0.05047523191357855, 176.56116945811587, 474.43867201525205, 7.584083348640005e-05, 0.0021028609527935505, -0.0004094927674505519, 7.146018738751102e-11, 8.88475177102702,0,0.6246797783009037, 0.1779493870477656],
5557
[0.22925918516708654, 0.04595696579195954, 123.33007397100599, 873.5412252656006, 3.3412012933121965e-05, 0.057928207116134806, -0.0021217096115628917, 7.178042062464878e-11, 8.884751771027027, 0,0.43751189633466997, 0.15509617967563671]]
5658
ramp_data_class.dim_dict["alpha_mean"]=None
5759
ramp_data_class.dim_dict["alpha_std"]=None
@@ -62,16 +64,22 @@
6264
axes=multiplot(1, 2, **{"harmonic_position":0, "num_harmonics":5, "orientation":"landscape", "plot_width":5})
6365
ramp_data_class.harmonic_range=harmonic_range
6466
j=0
67+
6568
labels=["Sinusoidal parameters", "Ramped parameters", "Interpolated+shifted"]
6669
for i in range(0, 2):
70+
errors=[]
6771
ramped_time_series=ramp_data_class.i_nondim(ramp_data_class.test_vals(values[i], "timeseries"))
6872
alpha_val=round(ramp_data_class.dim_dict["alpha"],3)
6973
ramped_times=ramp_data_class.t_nondim(ramp_data_class.time_vec[ramp_data_class.time_idx])
7074
ramped_harmonics=ramp_data_harm_class.generate_harmonics(ramped_times, ramped_time_series)
7175
for harm_counter in range(0, len(ramped_harmonics),1):
76+
syn_harms=ramped_harmonics[harm_counter,:]*1e6
77+
data_harms=ramped_data_harmonics[harm_counter,:]*1e6
78+
interped_data=np.interp(ramped_times, ramped_time_results, data_harms)
7279
ax=axes.axes_dict["row1"][j]
73-
ax.plot(ramped_times, (ramped_harmonics[harm_counter,:]*1e6), label="Sim")
74-
ax.plot(ramped_time_results, (ramped_data_harmonics[harm_counter,:]*1e6), label="Exp", alpha=0.6)
80+
errors.append(RMSE(abs(syn_harms), abs(interped_data)))
81+
ax.plot(ramped_times, (syn_harms), label="Sim")
82+
ax.plot(ramped_time_results, (data_harms), label="Exp", alpha=0.6)
7583
ax2=ax.twinx()
7684
ax2.set_ylabel(harmonic_range[harm_counter], rotation=0)
7785
ax2.set_yticks([])
@@ -84,6 +92,8 @@
8492
else:
8593
ax.set_xticks([])
8694
j+=1
95+
print(errors)
96+
print("Error", np.mean(errors))
8797
fig=plt.gcf()
8898
fig.set_size_inches((7, 4.5))
8999
plt.show()

‎figures/figureSX.py

+2
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858
current_results_noramp=noramp_results.i_nondim(noramp_results.other_values["experiment_current"])
5959
voltage_results_noramp=noramp_results.e_nondim(noramp_results.other_values["experiment_voltage"])
6060
harms=harmonics(list(range(start_harm, end_harm)),noramp_results.dim_dict["omega"] , 0.05)
61+
with_high_sf=[0.2401406696585979, 0.5298857718190104, 39.81306601771508, 597.6679747134392, 7.512874040749519e-05, 0.0035853012585091437, -0.00048155562888435414, 7.379570283254313e-11, 8.940517097944886,4.3588467282676415, 5.164737129584613, 0.5405149242350893, 0.1046787847226505]
62+
6163
values=[[0.24076655487877807, 0.9160545932435216, 54.57673630269225, 544.0405150098435, 7.588258963750423e-05, 0.0024096777244230483, -0.00042186418363351214, 7.061673890583758e-11, 8.940521614985501, 5.087607311638155, 4.359094730658887, 0.54708141682858, 0.07163914467232897],
6264
[0.24076655487877807, 0.9160545932435216, 54.57673630269225, 544.0405150098435, 7.588258963750423e-05, 0.0024096777244230483, -0.00042186418363351214, 7.061673890583758e-11, 8.884751771027027, 0, 0.54708141682858, 0.07163914467232897]]
6365

‎figures/parameter_scans.png

1.54 MB
Loading

‎figures/toc_graphic.png

98.7 KB
Loading

‎figures/toc_plot.py

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import numpy as np
2+
import matplotlib.pyplot as plt
3+
import matplotlib as mpl
4+
import pints
5+
import os
6+
import sys
7+
current_dir=os.getcwd()
8+
dir_list=current_dir.split("/")
9+
upper_level_list=dir_list[:dir_list.index("SV_paper")+1]
10+
upper_level=("/").join(upper_level_list)
11+
class_loc=upper_level+"/src"
12+
sys.path.insert(0, class_loc)
13+
from single_e_class_unified import single_electron
14+
import pints.plot
15+
import math
16+
from multiplotter import multiplot
17+
from harmonics_plotter import harmonics
18+
dir_path = os.path.dirname(os.path.realpath(__file__))
19+
results_dict="Inferred_params"
20+
Electrode="Yellow"
21+
run="Run_7"
22+
concs=["1e-1M", "1e0M"]
23+
file_numbers=[str(x) for x in range(1, 4)]
24+
25+
plot_counter=0
26+
h_counter=0
27+
f_counter=0
28+
CMAES_path=("/").join([upper_level, "Inferred_results", "CMAES"])
29+
plt.rcParams.update({'font.size': 9})
30+
def RMSE(series1, series2):
31+
return np.sqrt((np.sum(1/(len(series1))*np.power(np.subtract(series1, series2),2))))
32+
33+
34+
for i in range(1,11):
35+
file="Noramp_"+str(i)+"_cv_high_ru_alpha_disp"
36+
method="timeseries"
37+
master_optim_list=["E0_mean", "E0_std","k_0","Ru","Cdl","CdlE1", "CdlE2","gamma","omega","cap_phase","phase", "alpha"]
38+
noramp_results=single_electron(CMAES_path+"/"+file)
39+
master_optim_list=["E0_mean", "E0_std", "k_0","Ru","Cdl","CdlE1", "CdlE2","gamma","omega","cap_phase","phase", "alpha_mean", "alpha_std"]
40+
param_vals=([noramp_results.save_dict["params"][2][noramp_results.save_dict["optim_list"].index(key)] if (key in noramp_results.save_dict["optim_list"]) else noramp_results.dim_dict[key] for key in master_optim_list])
41+
noramp_results.simulation_options["dispersion_bins"]=[8,8]
42+
noramp_results.dim_dict["simulation_freq"]=1/2000.0
43+
noramp_results.def_optim_list(master_optim_list)
44+
cmaes_time=noramp_results.i_nondim(noramp_results.test_vals(param_vals, method))
45+
current_results=noramp_results.i_nondim(noramp_results.other_values["experiment_current"])#[0::dec_amount]
46+
voltage_results=noramp_results.e_nondim(noramp_results.other_values["experiment_voltage"])#[0::dec_amount]
47+
print_vals=np.append(param_vals, RMSE(current_results, cmaes_time)*1e6)
48+
49+
print(list(print_vals), ",")
50+
"""
51+
harms=harmonics(range(1, 8),noramp_results.dim_dict["omega"] , 0.05)
52+
time_results=noramp_results.t_nondim(noramp_results.other_values["experiment_time"])#[0::dec_amount]
53+
plt.plot(voltage_results*1e3, (cmaes_time)*1e3, label="Simulation")
54+
plt.plot(voltage_results*1e3,(current_results)*1e3, alpha=0.5, label="Experiment")
55+
plt.xlabel("Potential(mV vs. Ref.)")
56+
plt.ylabel("Current(mA)")
57+
plt.legend()
58+
fig=plt.gcf()
59+
60+
fig.set_size_inches((3.25, 1.75))
61+
plt.show()
62+
save_path="toc_graphic.png"
63+
fig.savefig(save_path, dpi=500)
64+
"""

0 commit comments

Comments
 (0)
Please sign in to comment.