refining cell example
This commit is contained in:
parent
4927e54707
commit
286e779459
@ -19,18 +19,59 @@ D.tofile("cell_40x40x40.raw")
|
||||
|
||||
C1=np.zeros((40,40,40),dtype="double")
|
||||
C2=np.zeros((40,40,40),dtype="double")
|
||||
C3=np.zeros((40,40,40),dtype="double")
|
||||
C4=np.zeros((40,40,40),dtype="double")
|
||||
C5=np.zeros((40,40,40),dtype="double")
|
||||
C6=np.zeros((40,40,40),dtype="double")
|
||||
|
||||
for i in range(0, 40):
|
||||
for j in range (0, 40):
|
||||
for k in range (0,40):
|
||||
C1[i,j,k] = 4.0e-6
|
||||
C2[i,j,k] = 150.0e-6
|
||||
#outside the cell
|
||||
C1[i,j,k] = 4.0e-6 # K
|
||||
C2[i,j,k] = 150.0e-6 # Na
|
||||
C3[i,j,k] = 116.0e-6 # Cl
|
||||
C4[i,j,k] = 29.0e-6 # HC03
|
||||
#C5[i,j,k] = 2.4e-6 # Ca
|
||||
dist = np.sqrt((i-cx)*(i-cx) + (j-cx)*(j-cx) + (k-cz)*(k-cz))
|
||||
# inside the cell
|
||||
if (dist < 15.5 ) :
|
||||
C1[i,j,k] = 140.0e-6
|
||||
C2[i,j,k] = 10.0e-6
|
||||
C1[i,j,k] = 145.0e-6
|
||||
C2[i,j,k] = 12.0e-6
|
||||
C3[i,j,k] = 4.0e-6
|
||||
C4[i,j,k] = 12.0e-6 # 12 mmol / L
|
||||
#C5[i,j,k] = 0.10e-6 # 100 nmol / L
|
||||
|
||||
|
||||
# add up the total charge to make sure it is zero
|
||||
TotalCharge = 0
|
||||
for i in range(0, 40):
|
||||
for j in range (0, 40):
|
||||
for k in range (0,40):
|
||||
TotalCharge += C1[i,j,k] + C2[i,j,k] - C3[i,j,k] - C4[i,j,k]
|
||||
|
||||
TotalCharge /= (40*40*40)
|
||||
|
||||
print("Total charge " + str(TotalCharge))
|
||||
|
||||
|
||||
for i in range(0, 40):
|
||||
for j in range (0, 40):
|
||||
for k in range (0,40):
|
||||
if TotalCharge < 0 :
|
||||
# need more cation
|
||||
C5[i,j,k] = abs(TotalCharge)
|
||||
C6[i,j,k] = 0.0
|
||||
else :
|
||||
# need more anion
|
||||
C5[i,j,k] = 0.0
|
||||
C6[i,j,k] = abs(TotalCharge)
|
||||
|
||||
|
||||
|
||||
C1.tofile("cell_concentration_K_40x40x40.raw")
|
||||
C2.tofile("cell_concentration_Na_40x40x40.raw")
|
||||
C3.tofile("cell_concentration_Cl_40x40x40.raw")
|
||||
C4.tofile("cell_concentration_HCO3_40x40x40.raw")
|
||||
C5.tofile("cell_concentration_cation_40x40x40.raw")
|
||||
C6.tofile("cell_concentration_anion_40x40x40.raw")
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
MultiphysController {
|
||||
timestepMax = 20
|
||||
timestepMax = 40
|
||||
num_iter_Ion_List = 2
|
||||
analysis_interval = 50
|
||||
tolerance = 1.0e-9
|
||||
@ -13,17 +13,13 @@ Stokes {
|
||||
nu_phys = 0.889e-6 //fluid kinematic viscosity; user-input unit: [m^2/sec]
|
||||
}
|
||||
Ions {
|
||||
IonConcentrationFile = "cell_concentration_K_40x40x40.raw", "double", "cell_concentration_Na_40x40x40.raw", "double"
|
||||
IonConcentrationFile = "cell_concentration_K_40x40x40.raw", "double", "cell_concentration_Na_40x40x40.raw", "double", "cell_concentration_Cl_40x40x40.raw", "double", "cell_concentration_HCO3_40x40x40.raw", "double", "cell_concentration_anion_40x40x40.raw", "double", "cell_concentration_cation_40x40x40.raw", "double"
|
||||
temperature = 293.15 //unit [K]
|
||||
number_ion_species = 2 //number of ions
|
||||
tauList = 1.0, 1.0
|
||||
IonDiffusivityList = 1.0e-9, 1.0e-9 //user-input unit: [m^2/sec]
|
||||
IonValenceList = 1, 1 //valence charge of ions; dimensionless; positive/negative integer
|
||||
IonConcentrationList = 1.0e-6, 1.0e-6 //user-input unit: [mol/m^3]
|
||||
BC_InletList = 0, 0 //boundary condition for inlet; 0=periodic; 1=ion concentration; 2=ion flux
|
||||
BC_OutletList = 0, 0 //boundary condition for outlet; 0=periodic; 1=ion concentration; 2=ion flux
|
||||
InletValueList = 0, 0 //if ion concentration unit=[mol/m^3]; if flux (inward) unit=[mol/m^2/sec]
|
||||
OutletValueList = 0, 0 //if ion concentration unit=[mol/m^3]; if flux (inward) unit=[mol/m^2/sec]
|
||||
number_ion_species = 6 //number of ions
|
||||
tauList = 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
|
||||
IonDiffusivityList = 1.0e-9, 1.0e-9, 1.0e-9, 1.0e-9, 1.0e-9, 1.0e-9 //user-input unit: [m^2/sec]
|
||||
IonValenceList = 1, 1, -1, -1, 1, -1 //valence charge of ions; dimensionless; positive/negative integer
|
||||
IonConcentrationList = 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6 //user-input unit: [mol/m^3]
|
||||
BC_Solid = 0 //solid boundary condition; 0=non-flux BC; 1=surface ion concentration
|
||||
//SolidLabels = 0 //solid labels for assigning solid boundary condition; ONLY for BC_Solid=1
|
||||
//SolidValues = 1.0e-5 // user-input surface ion concentration unit: [mol/m^2]; ONLY for BC_Solid=1
|
||||
|
Loading…
Reference in New Issue
Block a user