126 Labels = {
"'Caspase-8','Caspase-3','Pro-Caspase-8','Pro-Caspase-3', \
127 'IAP (iap)','BAR (bar)','Caspase-3+IAP (yb)','Caspase-8+BAR (xb)'"};
140 Tags = {
"'c8','c3','pc8','pc3','iap','bar','yb','xb'"};
155 this =
this@models.BaseFirstOrderSystem(model);
159 this.
Diff= [m.d2/m.d1 m.d3/m.d1 m.d4/m.d1...
160 m.d5/m.d1 m.d6/m.d1 m.d7/m.d1 m.d8/m.d1];
164 this.
ReacCoeff= [m.K1 m.K2 m.K3 m.K4 m.K5 m.K6 m.K7...
165 m.K8 m.K9 m.K10 m.K11 m.K12 m.K13...
166 m.Km3 m.Km8 m.Km9 m.Km10 m.Km11...
174 p = this.
addParam(
" area ", .1,
" Range ", [.01, 1],
" Desired ", 10);
178 p = this.
addParam(
" rate ", .001,
" Range ", [0.0005, 1],
" Desired ", 15);
182 p = this.
addParam(
" atime ", .5,
" Range ", [0, 1],
" Desired ", 5);
186 p = this.
addParam(
" exponent ", 2,
" Range ", [1, 4],
" Desired ", 5);
190 p = this.
addParam(
" diffusionstrength ", .5,
" Range ", [0, 1],
" Desired ", 5);
196 setConfig@models.BaseFirstOrderSystem(
this, mu, inputidx)
201 #if 0 //mtoc++: 'get.h'
210 #if 0 //mtoc++: 'set.h'
212 if any(value >= this.fOmega(:,2))
213 error(" Cannot choose a step size
h=%e value larger or equal to the geometry [%s]. ",...
214 value,
Utils.implode(this.fOmega(:)," , "," %
g "));
222 if ~isa(m.ODESolver," solvers.IImplSolver ") && ~isa(m.ODESolver," solvers.SemiImplicitEuler ")
223 maxdt = .95*(value^2/max([m.d1 m.d2 m.d3 m.d4 m.d5 m.d6 m.d7 m.d8]));
224 maxdtsc = .95*(this.
hs^2/max([1 this.
Diff]));
226 if (maxdtsc - maxdt/this.Model.tau) / maxdtsc > 1e-15
227 error(" Inconsistent scaling. Please check. ");
230 this.MaxTimestep= maxdtsc;
233 warning(" models:pcd:CFL "," CFL condition violated with
h=%e and current dt=%e.\nSetting System.MaxTimestep=%e (scaled, effective value %e)\n ", value, m.dt, maxdtsc, maxdt);
242 #if 0 //mtoc++: 'get.Omega'
243 function v =
Omega() {
251 #if 0 //mtoc++: 'set.Omega'
252 function
Omega(value) {
253 if size(value,2) ~= 2
254 error(
" Omega needs to be a dim x 2 matrix with the spatial extend for each dimension in a row. ");
269 if ~isempty(this.fh) && ~isempty(this.fOmega)
270 nd = size(this.fOmega,1);
271 this.
Dims= zeros(1,nd);
273 this.
Dims(d) = length(this.fOmega(d,1):this.
h:this.fOmega(d,2));
276 if this.Model.WithInhibitors
281 updateDimensions@models.BaseFirstOrderSystem(
this);
288 this.
f.newSysDimension;
Dims
The system's dimensions.
Collection of generally useful functions.
Labels
The concentration labels.
Tags
The concentration image tags.
function updateDimensions()
BasePCDISystem(models.BaseFullModel model)
hs
scaled spatial stepwidth
The base class for any KerMor detailed model.
Model
The Model this System is attached to.
h
Spatial stepwidth (in unscaled size units!) is set in subclasses.
function registerProps(varargin)
Call this method at any class that defines DPCM observed properties.
function setConfig(colvec< double > mu,integer inputidx)
inputidx
The current inputindex of the function .
Omega
The spatial width/area/region (in unscaled size units!)
mu
The current parameter for simulations, [] is none used.
BasePCDISystem The base dynamical system class for the the Programmed Cell Death Model by Markus Daub...
colvec StateScaling
The scaling for the state vectors.
virtual function newSysDimension()
Custom updates for new system dimension.
dscomponents.ACoreFun f
The core f function from the dynamical system.
dscomponents.ACoreFun g
The system's algebraic constraints function.
ReacCoeff
The reaction coefficients.
Diff
Relative diffusion coefficients ([d2/d1, d3/d1, d4/d1])
double MaxTimestep
The maximum timestep allowed for any ODE solvers.
function ModelParam p = addParam(char name, default, varargin)
Adds a parameter with the given values to the parameter collection of the current dynamical system...
Base class for all KerMor first-order dynamical systems.