about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/BNT/potentials/@cgpot/cgpot.m
blob: 676e3ce12947b9c75c1fe43feb2fdf7f0972c9f4 (plain)
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
function pot = cgpot(ddom, cdom, node_sizes, can, mom, subtype)
% CPOT Make a canonical CG potential.
% function pot = cgpot(ddom, cdom, node_sizes, can, mom, subtype)
%
% node_sizes(i) is the size of the i'th node.
% can and mom default to 0s.
% subtype defaults to 'c'.

if nargin < 6, subtype = 'c'; end

pot.ddom = ddom;
pot.cdom = cdom;
node_sizes = node_sizes(:)'; % row vectors print better
pot.domain = myunion(ddom, cdom);
pot.dsizes = node_sizes(pot.ddom);
pot.dsize = prod(node_sizes(pot.ddom));
pot.csizes = node_sizes(pot.cdom);
pot.csize = sum(node_sizes(pot.cdom));
pot.subtype = subtype;

if nargin < 4
  can = cell(1, pot.dsize);
  for i=1:pot.dsize
    can{i} = cpot(cdom, node_sizes(cdom));
  end
end
pot.can = can;              

if nargin < 5
  mom = cell(1, pot.dsize);
  for i=1:pot.dsize
    mom{i} = mpot(cdom, node_sizes(cdom));
  end
end
pot.mom = mom;

pot = class(pot, 'cgpot');