forked from mpreynol/RKPMSCNI
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRKNode.m
64 lines (54 loc) · 2 KB
/
RKNode.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
classdef RKNode < handle
%NODE is an object for an RKPM Mesh
properties
sF; % RKPM Shape Function
weight; % Weight Function
a; % Dilation Parameter
order; % order of approximation
nodeNumber; % Global Node Number
cordinates; % List of Cordinates for the Node
BE; % Flag for the essential Boundary Status
singularKernal=false; % Flag for whether or not Node will use Singular Kernal
Cloud; % Cloud Data Handle
u; % Solutions *** Lack of Kronecker Means this isn't the PDE Solution Yet
Voron; % Object containing the voroni Diagram
CellDeriv; % Data Structure containing the Cata
end
methods
function obj = RKNode(nodeNumber,cordinates,dilation,order,BE,VoroniCords,Cloud)
% Set Attributes:
obj.nodeNumber = nodeNumber;
obj.cordinates=cordinates;
obj.a=dilation;
obj.BE=BE;
obj.order=order;
obj.weight=[];
obj.Cloud=Cloud;
if sum(BE~=-Inf)
obj.singularKernal=true;
end
% Define Soldier Classes:
obj.setWeightFunction()
obj.setShapeFunction()
obj.setVoroni(VoroniCords)
% Define Derivative Data Structure
obj.CellDeriv=CellDeriv(obj.Cloud,obj.Voron);
end
% Sets Initial Shape Function
function setShapeFunction(obj)
obj.sF=RKShape(obj.cordinates,obj.a,obj.order,obj.Cloud,obj.weight);
end
% Sets Initial Weight Function
function setWeightFunction(obj)
obj.weight=Weight(obj.cordinates,obj.a,obj.singularKernal);
end
% Set Value of U
function setU(obj,u)
obj.u=u;
end
% Set Value of Voroni
function setVoroni(obj,VoroniCords)
obj.Voron=Voroni(VoroniCords,obj.cordinates);
end
end
end