Overview
Comment: | Updated to read recent struct.txt records which contain 6 fields. Prepended std:: to iostream classes to satisfy g++. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
c4e7be7512d923920782c7d56fdde8ee |
User & Date: | geraint@users.sourceforge.net on 2004-08-09 17:44:16 |
Other Links: | branch diff | manifest | tags |
Context
2004-08-09
| ||
17:45:56 | cmath is preferred to math.h check-in: e2526f63ef user: geraint@users.sourceforge.net tags: origin/master, trunk | |
17:44:16 |
Updated to read recent struct.txt records which contain 6 fields. Prepended std:: to iostream classes to satisfy g++. check-in: c4e7be7512 user: geraint@users.sourceforge.net tags: origin/master, trunk | |
17:42:23 | Updated to reflect new CR format: component type is passed as the first argument. check-in: 3865ce4c3e user: geraint@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/lib/rep/cxxsim.cc from [5e41fc125d] to [e39d33615e].
︙ | ︙ | |||
13 14 15 16 17 18 19 20 21 22 23 24 25 26 | * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <fstream> #include <list> #include <map> #include <string> namespace cxxsim { class cr { | > | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <fstream> #include <iostream> #include <list> #include <map> #include <string> namespace cxxsim { class cr { |
︙ | ︙ | |||
127 128 129 130 131 132 133 134 135 136 137 138 139 140 | struct record { std::string vec; // vector: u, x, y, yz unsigned int num; // position of element in vector std::string cmp; // component std::string fnm; // full name unsigned int rpt; // number of repetitions }; typedef struct record record_t; std::list<record_t> Lu; std::list<record_t> Lx; std::list<record_t> Ly; std::list<record_t> Lyz; | > | 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | struct record { std::string vec; // vector: u, x, y, yz unsigned int num; // position of element in vector std::string cmp; // component std::string fnm; // full name unsigned int rpt; // number of repetitions std::string cty; // causality }; typedef struct record record_t; std::list<record_t> Lu; std::list<record_t> Lx; std::list<record_t> Ly; std::list<record_t> Lyz; |
︙ | ︙ | |||
187 188 189 190 191 192 193 | char c; std::string s; std::string t; unsigned int i; | | | | | | 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | char c; std::string s; std::string t; unsigned int i; // file.unsetf(std::ios::skipws); file.setf(std::ios::skipws); // read lines from file (no max length, unlike std::getline) while (file >> c){ s = ""; while (c != ';' && file){ if (c == '%'){ file.unsetf(std::ios::skipws); while ((c != '\n') && file){ file >> c; // eat comment } file.setf(std::ios::skipws); } else { if ((c != ' ') && (c != '\t')){ // strip whitespace s += c; } file >> c; } } |
︙ | ︙ | |||
400 401 402 403 404 405 406 | }; void parameter::read (std::ifstream &file){ record_t r; while (file >> r.variable >> r.component){ if (r.variable.find("#") == 0){ | | | | 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 | }; void parameter::read (std::ifstream &file){ record_t r; while (file >> r.variable >> r.component){ if (r.variable.find("#") == 0){ file.unsetf(std::ios::skipws); char c = '\0'; while (c != '\n'){ file >> c; } file.setf(std::ios::skipws); } else { L.push_back(r); } } } void |
︙ | ︙ | |||
467 468 469 470 471 472 473 | void structure::read (std::ifstream &file){ std::list<record_t> *p; record_t r; if (! file){ std::cerr << "warning: no structure data found (empty file)" << std::endl; } | | | 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 | void structure::read (std::ifstream &file){ std::list<record_t> *p; record_t r; if (! file){ std::cerr << "warning: no structure data found (empty file)" << std::endl; } while (file >> r.vec >> r.num >> r.cmp >> r.fnm >> r.rpt >> r.cty){ if (r.vec == "input"){ p = &(this->Lu); } else if (r.vec == "state"){ p = &(this->Lx); } else if (r.vec == "output"){ p = &(this->Ly); } else { |
︙ | ︙ | |||
634 635 636 637 638 639 640 | << " for (mttt = 0.0; mttt <= 10.0; mttt += mttdt){" << std::endl << std::endl << " // get inputs and rates" << std::endl << " " << system_name << "_input(mttt,mttu,mttx,mtty);" << std::endl << " " << system_name << "_ode(mttt,mttu,mttx,mttdx,mtty);" << std::endl << std::endl << " // integrate states (euler)" << std::endl | | | | | 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 | << " for (mttt = 0.0; mttt <= 10.0; mttt += mttdt){" << std::endl << std::endl << " // get inputs and rates" << std::endl << " " << system_name << "_input(mttt,mttu,mttx,mtty);" << std::endl << " " << system_name << "_ode(mttt,mttu,mttx,mttdx,mtty);" << std::endl << std::endl << " // integrate states (euler)" << std::endl << " for (i = 1; i <= mttNx; i++){" << std::endl << " mttx[i] += mttdx[i] * mttdt;" << std::endl << " }" << std::endl << std::endl << " // overwrite switch states" << std::endl << " " << system_name << "_logic(mttt,mttu,mttx,mttdx,mtty);" << std::endl << std::endl << " // write: time outputs time states" << std::endl << " std::cout << mttt << '\\t';" << std::endl << " for (i = 1; i <= mttNy; i++){" << std::endl << " std::cout << mtty[i] << ' ';" << std::endl << " }" << std::endl << " std::cout << '\\t' << mttt;" << std::endl << " for (i = 1; i <= mttNx; i++){" << std::endl << " std::cout << ' ' << mttx[i];" << std::endl << " }" << std::endl << " std::cout << std::endl;" << std::endl << " }" << std::endl << " return 0;" << std::endl << "}" << std::endl; |
︙ | ︙ |