| 611 | } |
| 612 | |
| 613 | HypreMultiABec::HypreMultiABec(int _crse_level, int _fine_level, |
| 614 | int _solver_flag) |
| 615 | : crse_level(_crse_level), fine_level(_fine_level), |
| 616 | solver_flag(_solver_flag), |
| 617 | geom(fine_level+1), |
| 618 | grids(fine_level+1), |
| 619 | dmap(fine_level+1), |
| 620 | fine_ratio(fine_level+1), |
| 621 | bd(fine_level+1), |
| 622 | subgrids(fine_level+1), |
| 623 | acoefs(fine_level+1), |
| 624 | bcoefs(fine_level+1), |
| 625 | SPa(fine_level+1), |
| 626 | cintrp(fine_level+1), |
| 627 | ederiv(fine_level+1), |
| 628 | c_cintrp(fine_level+1), |
| 629 | c_ederiv(fine_level+1), |
| 630 | c_entry(fine_level+1), |
| 631 | hgrid(NULL), stencil(NULL), graph(NULL), |
| 632 | A(NULL), A0(NULL), b(NULL), x(NULL), |
| 633 | sstruct_solver(NULL), solver(NULL), precond(NULL) |
| 634 | { |
| 635 | ParmParse pp("hmabec"); |
| 636 | |
| 637 | verbose = 1; pp.query("v", verbose); pp.query("verbose", verbose); |
| 638 | verbose_threshold = 0; pp.query("verbose_threshold", verbose_threshold); |
| 639 | bho = 0; pp.query("bho", bho); |
| 640 | use_subgrids = 0; pp.query("use_subgrids", use_subgrids); |
| 641 | |
| 642 | static int first = 1; |
| 643 | if (verbose >= 1 && first && ParallelDescriptor::IOProcessor()) { |
| 644 | first = 0; |
| 645 | std::cout << "hmabec.bho = " << bho << std::endl; |
| 646 | std::cout << "hmabec.use_subgrids = " << use_subgrids << std::endl; |
| 647 | std::cout << "hmabec.verbose = " << verbose << std::endl; |
| 648 | std::cout << "hmabec.verbose_threshold = " << verbose_threshold << std::endl; |
| 649 | } |
| 650 | |
| 651 | if (solver_flag == 100 || solver_flag == 102 || solver_flag == 104 || |
| 652 | solver_flag == 105 || |
| 653 | solver_flag == 150 || solver_flag == 151 || solver_flag == 153 || |
| 654 | solver_flag == 1002) { |
| 655 | ObjectType = HYPRE_PARCSR; |
| 656 | } |
| 657 | else if (solver_flag == 101 || solver_flag == 103 || |
| 658 | solver_flag == 106 || solver_flag == 107 || |
| 659 | solver_flag == 152 || |
| 660 | solver_flag == 1003) { |
| 661 | ObjectType = HYPRE_SSTRUCT; |
| 662 | } |
| 663 | else if (solver_flag == 108 || solver_flag == 109) { |
| 664 | ObjectType = HYPRE_STRUCT; |
| 665 | } |
| 666 | else { |
| 667 | std::cout << "HypreMultiABec: no such solver" << std::endl; |
| 668 | exit(1); |
| 669 | } |
| 670 |
nothing calls this directly
no outgoing calls
no test coverage detected