// ============================================================================
// Cavitational Capacitive Drive (CCD) Parameter Tables Initialization (mW/cm2)
// Author: Mithun Padmakumar
// Date: July 2026
//
// Citation:
//   Padmakumar, M., Rajan, D., & Steephen, J. E. (2026). Cavitational capacitive 
//   drive: A computationally efficient model for ultrasonic neuromodulation. 
//   Journal of Neural Engineering.
//
// Description:
//   Loads optimized lookup tables for CCD model parameters (k, se, sc) across 
//   various ultrasound stimulation frequencies (100, 200, 500, 800, 1000 kHz) 
//   and intensities in mW/cm2 (10 to 2000 mW/cm2).
// ============================================================================

objref Ivec, kvec_100, sevec_100, scvec_100, kvec_200, sevec_200, scvec_200, kvec_500, sevec_500, scvec_500, kvec_800, sevec_800, scvec_800, kvec_1000, sevec_1000, scvec_1000

Ivec  = new Vector()
kvec_100  = new Vector()
sevec_100 = new Vector()
scvec_100 = new Vector()
kvec_200  = new Vector()
sevec_200 = new Vector()
scvec_200 = new Vector()
kvec_500  = new Vector()
sevec_500 = new Vector()
scvec_500 = new Vector()
kvec_800  = new Vector()
sevec_800 = new Vector()
scvec_800 = new Vector()
kvec_1000  = new Vector()
sevec_1000 = new Vector()
scvec_1000 = new Vector()

// Intensities in mW/cm2
Ivec.append(10, 20, 30, 35, 45, 50, 60, 70, 80, 90, 100, 150, 200, 300, 400, 500, 1000, 2000)

// Parameter optimization vectors
kvec_100.append(0.0100,0.0100,0.0100,0.0100,0.5095,0.8454,1.3017,1.6109,1.8625,2.0301,2.1671,3.0068,3.5682,4.1171,4.6745,5.4277,7.3196,7.4352)
kvec_200.append(0.0100,0.0100,0.0100,0.0100,0.6945,0.9842,1.3810,1.6784,1.9392,2.1501,2.3468,3.0542,3.7072,4.3599,4.8103,5.2011,7.1450,7.5896)
kvec_500.append(0.0100,0.0100,0.0100,0.0100,0.9778,1.2436,1.6396,2.0012,2.2160,2.3686,2.4732,3.0799,3.5762,4.3984,4.9296,5.3710,7.4165,8.2013)
kvec_800.append(0.0100,0.0100,0.0100,0.0100,1.2623,1.4862,1.7935,2.0707,2.3542,2.5399,2.6178,3.0123,3.3248,3.7812,4.0601,4.2741,5.3402,7.0144)
kvec_1000.append(0.0100,0.0100,0.0100,0.0100,1.4238,1.6164,1.9139,2.0654,2.2195,2.3724,2.5433,3.1752,3.6013,4.1161,4.6183,4.8456,4.9291,5.0975)

sevec_100.append(0.0660,0.1095,0.1675,0.2110,0.7059,0.7101,0.7136,0.7159,0.7182,0.7213,0.7238,0.7280,0.7337,0.7438,0.7501,0.7542,0.7704,0.7891)
sevec_200.append(0.0661,0.1095,0.1673,0.2112,0.6992,0.7033,0.7084,0.7124,0.7150,0.7167,0.7184,0.7259,0.7319,0.7422,0.7493,0.7548,0.7708,0.7889)
sevec_500.append(0.0662,0.1095,0.1668,0.2084,0.6772,0.6810,0.6903,0.6983,0.7020,0.7052,0.7084,0.7209,0.7292,0.7406,0.7484,0.7540,0.7711,0.7888)
sevec_800.append(0.0662,0.1095,0.1657,0.2034,0.6457,0.6541,0.6707,0.6828,0.6913,0.6968,0.7008,0.7162,0.7266,0.7401,0.7496,0.7568,0.7745,0.7913)
sevec_1000.append(0.0661,0.1094,0.1648,0.2021,0.6135,0.6357,0.6603,0.6709,0.6811,0.6889,0.6943,0.7126,0.7242,0.7391,0.7472,0.7537,0.7757,0.7953)

scvec_100.append(0.0362,0.0494,0.0582,0.0613,0.0385,0.0390,0.0408,0.0431,0.0456,0.0485,0.0514,0.0617,0.0708,0.0863,0.0980,0.1077,0.1428,0.1813)
scvec_200.append(0.0362,0.0494,0.0582,0.0613,0.0378,0.0382,0.0404,0.0430,0.0454,0.0479,0.0503,0.0616,0.0716,0.0882,0.1002,0.1096,0.1427,0.1821)
scvec_500.append(0.0362,0.0494,0.0582,0.0614,0.0370,0.0373,0.0383,0.0402,0.0447,0.0485,0.0516,0.0615,0.0738,0.0906,0.1043,0.1096,0.1436,0.1842)
scvec_800.append(0.0362,0.0494,0.0583,0.0615,0.0346,0.0336,0.0359,0.0418,0.0435,0.0458,0.0481,0.0440,0.0512,0.0677,0.0848,0.0976,0.1141,0.1477)
scvec_1000.append(0.0362,0.0494,0.0582,0.0614,0.0324,0.0317,0.0301,0.0280,0.0313,0.0322,0.0289,0.0269,0.0508,0.0794,0.0747,0.0723,0.1155,0.1318)

table_k100_table_ccd( kvec_100, Ivec)
table_k200_table_ccd( kvec_200, Ivec)
table_k500_table_ccd( kvec_500, Ivec)
table_k800_table_ccd( kvec_800, Ivec)
table_k1000_table_ccd( kvec_1000, Ivec)

table_se100_table_ccd( sevec_100, Ivec)
table_se200_table_ccd( sevec_200, Ivec)
table_se500_table_ccd( sevec_500, Ivec)
table_se800_table_ccd( sevec_800, Ivec)
table_se1000_table_ccd( sevec_1000, Ivec)

table_sc100_table_ccd( scvec_100, Ivec)
table_sc200_table_ccd( scvec_200, Ivec)
table_sc500_table_ccd( scvec_500, Ivec)
table_sc800_table_ccd( scvec_800, Ivec)
table_sc1000_table_ccd( scvec_1000, Ivec)

print "Intensity tables (mW/cm2) are loaded"
