JAM example II of the article "Goodbye Christoffel Symbols: A Flexible and Efficient Approach for Solving Physical Problems in Curved Spaces" by Miguel A. Herrada
Contents
Initial Setup
clear all;
restoredefaultpath;
path_jacobian= ['jacobians3D/'];
path(path,[pwd '/' path_jacobian]);
path_jacobian1= ['../utils/collocationmatrices/'];
path(path,path_jacobian1)
Problem Configuration
Np = 2;
list_block = {'A' };
list_var_A = {'uA', 'vA', 'wA' 'pA'};
list_varsymbolic = {'u', 'v', 'w', 'p'};
NV1=length(list_var_A);
[basura nbl ] = size(list_block);
list_der = {'', 'r0', 'z0', 'rr0', 'zz0' , 'rz0', 'time0', 't0' ,'tt0' ,'tz0' , 'tr0'};
list_dersymbolic = {'', ',r0)', ',z0)', ',r0,r0)', ',z0,z0)' , ',r0,z0)' ,',time)' ',t0)',',t0,t0)',',t0,z0)',',t0,r0)' };
ND1=length(list_der);
for i=1:nbl
bl = list_block{i};
order = ['[bas NV' bl '] = size(list_var_' bl ');'];
evalc(order);
order = ['[bas ND' bl '] = size(list_der);' ];
evalc(order);
end
Compute symbolic functions
lset=0
if(lset==1)
for i=1:Np
pa(i,1)=sym(['pa_',num2str(i)],'real');
end
Re=pa(1);
L=pa(2);
blockAcartesianvelocity
end
Domain Discretization
Re=0.0001;
L=10;
pa=[Re;L];
nrA=8;
epsilon=0.001;
[r0A,dr0A,drr0A]=Chevigood(nrA-1,1,0.001);
nzA=101;
[z0A,dz0A,dzz0A]=finites4thsparse(nzA,pi/2);
nx=8;
[xx,dx] = fourdif(nx,1);
[xx,dx2] = fourdif(nx,2);
plottingelbowinit
uA=0*ones(nrA,nzA,nx);
wA=0*ones(nrA,nzA,nx);
vA=0*ones(nrA,nzA,nx);
pA=0*ones(nrA,nzA,nx);
rA=repmat(r0A', [1 nzA nx]);
[ddr0A,ddrr0A,ddz0A,ddzz0A,ddx0A,ddxx0A,ddrz0A,ddzx0A,ddrx0A]= matrices3D (nrA,nzA,nx,dr0A,drr0A,dz0A,dzz0A,dx,dx2);
ntA=nrA*nzA*nx;
nt1=ntA;
pointerstoBC;
Newton method
order='[';
for j=1:nbl
bl = list_block{j};
NVAR = eval(['NV' bl]);
for i=1:NVAR
lv = eval(['list_var_' bl '{' num2str(i) '}']);
order = [order 'reshape(' lv ',nt' bl ',1);'];
end
end
x0=eval([order ']']);
dt=10^(10);
x0m = x0;
x0mm = x0m;
error=1e9;
iter=0;
while (error > 1e-2 && iter < 300)
iter=iter+1;
tic
matrixAB3Doptima1
dxa=(a\b);
toc
error=max(abs(dxa))
if(error > 10^9)
stop
end
x0=x0+dxa;
end
xotoredeable
Plotting figure 3 in the paper
plottingslide