| 790 | } |
| 791 | |
| 792 | void |
| 793 | BasicAnalysisBuilder::fillDefaults(BasicAnalysisBuilder::CurrentAnalysis flag) |
| 794 | { |
| 795 | |
| 796 | switch (flag) { |
| 797 | case EMPTY_ANALYSIS: |
| 798 | break; |
| 799 | |
| 800 | case STATIC_ANALYSIS: |
| 801 | if (theStaticIntegrator == nullptr) |
| 802 | theStaticIntegrator = new LoadControl(1, 1, 1, 1); |
| 803 | break; |
| 804 | |
| 805 | case TRANSIENT_ANALYSIS: |
| 806 | if (theTransientIntegrator == nullptr) |
| 807 | theTransientIntegrator = new Newmark(0.5,0.25); |
| 808 | break; |
| 809 | } |
| 810 | |
| 811 | if (theTest == nullptr) |
| 812 | theTest = new CTestNormUnbalance(1.0e-6, 25, ConvergenceTest::PrintFailure); |
| 813 | |
| 814 | if (theAlgorithm == nullptr) |
| 815 | theAlgorithm = new NewtonRaphson(CURRENT_TANGENT, CURRENT_TANGENT, 0.0, 1.0); |
| 816 | |
| 817 | |
| 818 | if (theHandler == nullptr) { |
| 819 | // Dont show a warning if the user has no constraints |
| 820 | if (theDomain->getNumMPs() > 0) { |
| 821 | opserr << G3_WARN_PROMPT << "constraints were used but no ConstraintHandler has been specified; \n"; |
| 822 | opserr << " PlainHandler default will be used\n"; |
| 823 | } |
| 824 | theHandler = new PlainHandler(); |
| 825 | } |
| 826 | |
| 827 | if (theNumberer == nullptr) |
| 828 | theNumberer = new DOF_Numberer(*(new RCM(false))); |
| 829 | |
| 830 | if (theSOE == nullptr) |
| 831 | // TODO: CHANGE TO MORE GENERAL SOE |
| 832 | theSOE = new ProfileSPDLinSOE(*(new ProfileSPDLinDirectSolver())); |
| 833 | } |
| 834 | |
| 835 | |
| 836 | int |
no test coverage detected