ADDED mttroot/mtt/lib/comp/simple/juneqn.m Index: mttroot/mtt/lib/comp/simple/juneqn.m ================================================================== --- /dev/null +++ mttroot/mtt/lib/comp/simple/juneqn.m @@ -0,0 +1,36 @@ +function juneqn(bond_number,bonds,direction,cr,args,jun,eqnfile) + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %% Version control history +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %% $Id$ +% %% $Log$ +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% Equations for both effort and flow on either zero or one junctions + +if nargin<7 + eqnfile = 'stdout'; +end; + + + +% Same causality as junction +column = (3-jun)/2; +[causing_bond,n,other_bonds,m] = getindex(bonds(:,column),jun); +for i=other_bonds' + oneeqn(bond_number(i), jun, bond_number(causing_bond), jun, '', '',eqnfile); +end; + + +% Opposite causality to junction +column = (3+jun)/2; +[caused_bond,n,other_bonds,m] = getindex(bonds(:,column),jun); +fprintf(eqnfile, '%s\t:= \n', varname(bond_number(caused_bond),-jun)); +for i=other_bonds' + term_sign = -direction(caused_bond,column)*direction(i,column); + fprintf(eqnfile, '\t\t%s %s\n', sign2name(term_sign), ... + varname(bond_number(i),-jun)); +end; +fprintf(eqnfile, ';\n');