MCPcopy Create free account
hub / github.com/AMReX-Astro/Castro / HypreMultiABec

Method HypreMultiABec

Source/radiation/HypreMultiABec.cpp:613–687  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

611}
612
613HypreMultiABec::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

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected