70 this =
this@models.pcd.BaseCoreFun(dynsys);
75 copy = models.pcd.CoreFun3D(this.sys);
78 copy =
clone@models.pcd.BaseCoreFun(
this, copy);
85 copy.nodes= this.nodes;
92 n = prod(this.
System.Dims);
93 this.nodes= this.
System.geo.Points;
112 mu = [s.ReacCoeff; this.
mu];
134 [i,j] = ind2sub(g.Dims,g.F);
136 xd = abs((i-1)*h-.5*xr);
137 yd = abs((j-1)*h-.5*yr);
138 rbp = xd < xr*
mu(9)/2 & yd < yr*
mu(9)/2;
139 rbF = sub2ind(g.Dims, i(rbp), j(rbp), ones(size(i(rbp))));
140 rbp = xd < xr*
mu(10)/2 & yd < yr*
mu(10)/2;
141 rbBa = sub2ind(g.Dims, i(rbp), j(rbp), ones(size(i(rbp)))*g.Dims(3));
142 rb(rbF) = (xi(rbF)*
mu(15)*ud)/h;
143 rb(rbBa) = rb(rbBa) + (xi(rbBa)*
mu(16)*ud)/h;
146 [i,~,
k] = ind2sub(g.Dims,g.L);
147 xd = abs((i-1)*h-.5*xr);
148 zd = abs((
k-1)*h-.5*zr);
149 rbp = xd < xr*
mu(11)/2 & zd < zr*
mu(11)/2;
150 rbL = sub2ind(g.Dims, i(rbp), ones(size(i(rbp))),
k(rbp));
151 rbp = xd < xr*
mu(12)/2 & zd < zr*
mu(12)/2;
152 rbR = sub2ind(g.Dims, i(rbp), ones(size(i(rbp)))*g.Dims(2),
k(rbp));
153 rb(rbL) = rb(rbL) + (xi(rbL)*
mu(17)*ud)/h;
154 rb(rbR) = rb(rbR) + (xi(rbR)*
mu(18)*ud)/h;
157 [i,j,
k] = ind2sub(g.Dims,g.T);
158 yd = abs((j-1)*h-.5*yr);
159 zd = abs((
k-1)*h-.5*zr);
160 rbp = yd < yr*
mu(13)/2 & zd < zr*
mu(13)/2;
161 rbT = sub2ind(g.Dims, ones(size(i(rbp))), j(rbp),
k(rbp));
162 rbp = yd < yr*
mu(14)/2 & zd < zr*
mu(14)/2;
163 rbBo = sub2ind(g.Dims, ones(size(i(rbp)))*g.Dims(1), j(rbp),
k(rbp));
164 rb(rbT) = rb(rbT) + (xi(rbT)*
mu(19)*ud)/h;
165 rb(rbBo) = rb(rbBo) + (xi(rbBo)*
mu(20)*ud)/h;
169 fx(1:m) =
mu(1)*xi.*ya -
mu(3)*xa + rb;
171 fx(m+1:2*m) =
mu(2)*yi.*xan -
mu(4)*ya;
173 fx(2*m+1:3*m) = -
mu(1)*xi.*ya -
mu(5)*xi +
mu(7) - rb;
175 fx(3*m+1:end) = -
mu(2)*yi.*xan -
mu(6)*yi +
mu(8);
190 error(
" Not yet implemented ");
The core nonlinear function of the PCD model in 3D.
integer fDim
The current output dimension of the function.
function newSysDimension()
This fcn is called before each simulation is started.
function fxj = evaluateComponents(pts, ends, unused1, unused2, X,double t)
integer xDim
The current state space dimension of the function's argument .
models.BaseFirstOrderSystem System
The system associated with the current ACoreFun.
colvec< double > mu
The current model parameter mu for evaluations. Will not be persisted as only valid for runtime durin...
function fx = evaluateCoreFun(colvec< double > x,double t)
Allocate result vector.
tDecaySecs
The number of seconds after which the neumann conditions decease.