wolffd@0: function pot = cgpot(ddom, cdom, node_sizes, can, mom, subtype) wolffd@0: % CPOT Make a canonical CG potential. wolffd@0: % function pot = cgpot(ddom, cdom, node_sizes, can, mom, subtype) wolffd@0: % wolffd@0: % node_sizes(i) is the size of the i'th node. wolffd@0: % can and mom default to 0s. wolffd@0: % subtype defaults to 'c'. wolffd@0: wolffd@0: if nargin < 6, subtype = 'c'; end wolffd@0: wolffd@0: pot.ddom = ddom; wolffd@0: pot.cdom = cdom; wolffd@0: node_sizes = node_sizes(:)'; % row vectors print better wolffd@0: pot.domain = myunion(ddom, cdom); wolffd@0: pot.dsizes = node_sizes(pot.ddom); wolffd@0: pot.dsize = prod(node_sizes(pot.ddom)); wolffd@0: pot.csizes = node_sizes(pot.cdom); wolffd@0: pot.csize = sum(node_sizes(pot.cdom)); wolffd@0: pot.subtype = subtype; wolffd@0: wolffd@0: if nargin < 4 wolffd@0: can = cell(1, pot.dsize); wolffd@0: for i=1:pot.dsize wolffd@0: can{i} = cpot(cdom, node_sizes(cdom)); wolffd@0: end wolffd@0: end wolffd@0: pot.can = can; wolffd@0: wolffd@0: if nargin < 5 wolffd@0: mom = cell(1, pot.dsize); wolffd@0: for i=1:pot.dsize wolffd@0: mom{i} = mpot(cdom, node_sizes(cdom)); wolffd@0: end wolffd@0: end wolffd@0: pot.mom = mom; wolffd@0: wolffd@0: pot = class(pot, 'cgpot'); wolffd@0: