File mttroot/mtt/bin/trans/make_ode2odes artifact cb3e7cd253 part of check-in 37d2b01af3


#! /bin/sh

     ###################################### 
     ##### Model Transformation Tools #####
     ######################################

# Bourne shell script: make_ode2odes

# Copyright (c) P.J.Gawthrop July 1998.

Sys=$1

# Find system constants
Nx=`grep "MTTNx " <$Sys\_def.r | awk '{print $3}' | sed 's/;//'`
Nu=`grep "MTTNu " <$Sys\_def.r | awk '{print $3}' | sed 's/;//'`
Ny=`grep "MTTNy " <$Sys\_def.r | awk '{print $3}' | sed 's/;//'`
 

cat << EOF > $1_ode2odes.m
# Program $1_ode2odes
EOF

# Do the globals
sympar2global_txt2m $1 >> $1_ode2odes.m

# The rest of the program
cat << EOF >> $1_ode2odes.m

$1_simpar;			# Read in simulation parameters
$1_numpar;			# Read in parameters

iLast = round(LAST/DT);         # Total number of steps
DDT = DT/STEPFACTOR;

#Initialise
t = 0.0;
MTTx = $1_state;	        # Read in initial state
MTTu = $1_input(MTTx,t);        # Evaluate initial input
MTTy = $1_odeo(MTTx,MTTu,t);    # Evaluate initial output
mtt_write(t,MTTx,MTTy,$Nx,$Ny); # And write them

#Integration loop
for it = 1:iLast
    for i = 1:STEPFACTOR
	MTTu = $1_input(MTTx,t);# Input
        MTTx = $1_switch(MTTx); # Switches
	MTTdx = $1_ode(MTTx,MTTu,t);
	for j = 1:$Nx
	    MTTx(j) = MTTx(j) + MTTdx(j)*DDT;
	end;
	MTTy = $1_odeo(MTTx,MTTu,t);
	t = t + DDT;
    end;
    mtt_write(t,MTTx,MTTy,$Nx,$Ny);
end;

EOF






MTT: Model Transformation Tools
GitHub | SourceHut | Sourceforge | Fossil RSS ]