-
Notifications
You must be signed in to change notification settings - Fork 200
/
Copy pathscriptSolvePDE.m
75 lines (70 loc) · 2.09 KB
/
scriptSolvePDE.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
configNameWOExt = 'config_DG_Sine';
configNameWOExt = 'config_DG_Hyperbolic2regions';
configNameWOExt = 'config_DG_PeriodicSine';
configNameWOExt = 'config_DG_LeftEssential0_RightNatural1';
configName = [configNameWOExt, '.txt'];
close('all');
fid = fopen(configName, 'r');
pdeFEM = PDE1DFEM;
extraPara = [];
numElementNew = -1; % not overwriting files number of elements
pdeFEM = pdeFEM.read(fid, extraPara);
fclose(fid);
pdeFEM = pdeFEM.setNumElements(numElementNew);
%pdeFEM.Test2MaterialSolution();
[pdeFEM, slnDGXs, slnDGYs, slnXs, slnYs, lambdaMin, lambdaMax, slnDGKappaYxs] = Solve1D_PDE(configName);
%pdeFEM.K
%pdeFEM.M
fileName = [configNameWOExt, '.out'];
fido = fopen(fileName, 'w');
fprintf(fido, 'lambdaMin\t');
fprintf(fido, '%g\t', lambdaMin);
fprintf(fido, '\tlambdaMax\t');
fprintf(fido, '%g\n', lambdaMax);
fprintf(fido, '\nA\n');
fprintf(fido, '%g\n', pdeFEM.As{length(pdeFEM.As)});
fprintf(fido, '\nslnDGXs\n');
fprintf(fido, '%g\n', slnDGXs);
fprintf(fido, '\n\nslnDGYs\n');
fprintf(fido, '%g\n', slnDGYs);
fprintf(fido, '\n\nslnXs\n');
fprintf(fido, '%g\n', slnXs);
fprintf(fido, '\n\nslnYs\n');
fprintf(fido, '%g\n', slnYs);
fprintf(fido, '\n\nslnDGKappaYxs\n');
fprintf(fido, '%g\n', slnDGKappaYxs);
fprintf(fido, '\n\nK\n');
ndof = pdeFEM.ndof;
for i = 1:ndof
for j = 1:ndof
fprintf(fido, '%g\t', pdeFEM.K(i, j));
end
fprintf(fido, '%\n');
end
if (pdeFEM.PDEtype ~= 0)
fprintf(fido, '\n\nM\n');
for i = 1:ndof
for j = 1:ndof
fprintf(fido, '%g\t', pdeFEM.M(i, j));
end
fprintf(fido, '%\n');
end
if (pdeFEM.PDEtype == 2)
fprintf(fido, '\n\nC\n');
for i = 1:ndof
for j = 1:ndof
fprintf(fido, '%g\t', pdeFEM.CMat(i, j));
end
fprintf(fido, '%\n');
end
end
end
fclose(fido);
figure(1);
plot(slnDGXs, slnDGYs);
fileName = [configNameWOExt, '_u.png'];
print('-dpng', fileName);
figure(2);
plot(slnDGXs, slnDGKappaYxs);
fileName = [configNameWOExt, '_DuDx.png'];
print('-dpng', fileName);