Skip to content

Commit beac593

Browse files
authored
update to kkitwriter (#458)
kkit: dangling reaction and enzyme are not saved, lsoda is added to solver
1 parent a1dce6c commit beac593

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

python/moose/chemUtil/add_Delete_ChemicalSolver.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ def mooseDeleteChemSolver(modelRoot):
5050
return ("mooseDeleteChemSolver is only for deleting Chemical Model solver which has to be `CubeMesh` or `CylMesh` found ",list(set([x.className for x in compts]) - set(['CubeMesh',"CylMesh"])))
5151

5252
def stdSolvertype(solverName):
53+
if solverName.lower() in ["lsoda"]:
54+
return "lsoda"
5355
if solverName.lower() in ["gssa","gillespie","stochastic","gsolve"]:
5456
return "gssa"
5557
elif solverName.lower() in ["gsl","runge kutta","deterministic","ksolve","rungekutta","rk5","rkf","rk"]:
@@ -75,7 +77,6 @@ def mooseAddChemSolver(modelRoot, solver):
7577

7678
previousSolver = stdSolvertype(comptinfo.solver)
7779
currentSolver = stdSolvertype(solver)
78-
7980
if previousSolver != currentSolver:
8081
comptinfo.solver = currentSolver
8182
if (moose.exists(compts[0].path + '/stoich')):

python/moose/genesis/writeKkit.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
#Todo : To be written
6161
# --StimulusTable
6262

63-
def mooseWriteKkit( modelpath, filename, sceneitems={}):
63+
def mooseWriteKkit( modelpath, filename, sceneitems={},deletedanglingObj=True):
6464
global foundmatplotlib_
6565
if not foundmatplotlib_:
6666
print('No maplotlib found.'
@@ -114,10 +114,10 @@ def mooseWriteKkit( modelpath, filename, sceneitems={}):
114114
error = writePool(modelpath,f,gtId_vol,sceneitems)
115115
errors = errors+error
116116

117-
reacList,error= writeReac(modelpath,f,sceneitems)
117+
reacList,error= writeReac(modelpath,f,sceneitems,deletedanglingObj)
118118
errors = errors+error
119119

120-
enzList,error = writeEnz(modelpath,f,sceneitems)
120+
enzList,error = writeEnz(modelpath,f,sceneitems,deletedanglingObj)
121121
errors = errors+error
122122

123123
chanList, error = writeConcChan(modelpath,f,sceneitems)
@@ -287,9 +287,18 @@ def writeConcChan(modelpath,f,sceneitems):
287287
" " + str(int(x)) + " " + str(int(y)) + " "+str(int(0))+"\n")
288288

289289
return concChanList,error
290-
def writeEnz( modelpath,f,sceneitems):
290+
def writeEnz( modelpath,f,sceneitems,deletedanglingObj):
291291
error = ""
292292
enzList = moose.wildcardFind(modelpath+'/##[0][ISA=EnzBase]')
293+
enzListnew = []
294+
if deletedanglingObj == True:
295+
for enz in enzList:
296+
if (enz.numSubstrates != 0 and enz.numProducts != 0):
297+
enzListnew.append(enz)
298+
else:
299+
300+
error = error+"\n"+enz.className+ " - "+enz.parent.parent.name +" - "+enz.name+" doesn't have substrate or product"
301+
enzList = enzListnew
293302
for enz in enzList:
294303
if findCompartment(enz) == moose.element('/'):
295304
error = error + " \n "+enz.path+ " doesn't have compartment ignored to write to genesis"
@@ -392,9 +401,17 @@ def storeReacMsg(reacList,f):
392401
s = s + "addmsg /kinetics/" + reacPath + " /kinetics/" + trimPath( prd ) + " REAC B A\n";
393402
f.write( s)
394403

395-
def writeReac(modelpath,f,sceneitems):
404+
def writeReac(modelpath,f,sceneitems,deletedanglingObj):
396405
error = ""
397406
reacList = moose.wildcardFind(modelpath+'/##[0][ISA=Reac]')
407+
reacListnew = []
408+
if deletedanglingObj == True:
409+
for reac in reacList:
410+
if (reac.numProducts != 0 and reac.numSubstrates != 0):
411+
reacListnew.append(reac)
412+
else:
413+
error = error+"\n"+reac.className+" - "+reac.parent.name+ " - "+reac.name+" doesn't have substrate or product"
414+
reacList = reacListnew
398415
for reac in reacList:
399416
if findCompartment(reac) == moose.element('/'):
400417
error = error + " \n "+reac.path+ " doesn't have compartment ignored to write to genesis"

0 commit comments

Comments
 (0)