command invoked to allow the ConstraintHandler object to be built
| 3743 | // command invoked to allow the ConstraintHandler object to be built |
| 3744 | // |
| 3745 | int |
| 3746 | specifyConstraintHandler(ClientData clientData, Tcl_Interp *interp, int argc, |
| 3747 | TCL_Char **argv) |
| 3748 | { |
| 3749 | // make sure at least one other argument to contain numberer |
| 3750 | if (argc < 2) { |
| 3751 | opserr << "WARNING need to specify a Nemberer type \n"; |
| 3752 | return TCL_ERROR; |
| 3753 | } |
| 3754 | |
| 3755 | // check argv[1] for type of Numberer and create the object |
| 3756 | if (strcmp(argv[1],"Plain") == 0) |
| 3757 | theHandler = new PlainHandler(); |
| 3758 | |
| 3759 | else if (strcmp(argv[1],"Penalty") == 0) { |
| 3760 | if (argc < 4) { |
| 3761 | opserr << "WARNING: need to specify alpha: handler Penalty alpha \n"; |
| 3762 | return TCL_ERROR; |
| 3763 | } |
| 3764 | double alpha1, alpha2; |
| 3765 | if (Tcl_GetDouble(interp, argv[2], &alpha1) != TCL_OK) |
| 3766 | return TCL_ERROR; |
| 3767 | if (Tcl_GetDouble(interp, argv[3], &alpha2) != TCL_OK) |
| 3768 | return TCL_ERROR; |
| 3769 | theHandler = new PenaltyConstraintHandler(alpha1, alpha2); |
| 3770 | } |
| 3771 | |
| 3772 | /****** adding later |
| 3773 | else if (strcmp(argv[1],"PenaltyNoHomoSPMultipliers") == 0) { |
| 3774 | if (argc < 4) { |
| 3775 | opserr << "WARNING: need to specify alpha: handler Penalty alpha \n"; |
| 3776 | return TCL_ERROR; |
| 3777 | } |
| 3778 | double alpha1, alpha2; |
| 3779 | if (Tcl_GetDouble(interp, argv[2], &alpha1) != TCL_OK) |
| 3780 | return TCL_ERROR; |
| 3781 | if (Tcl_GetDouble(interp, argv[3], &alpha2) != TCL_OK) |
| 3782 | return TCL_ERROR; |
| 3783 | theHandler = new PenaltyHandlerNoHomoSPMultipliers(alpha1, alpha2); |
| 3784 | } |
| 3785 | ***********************/ |
| 3786 | else if (strcmp(argv[1],"Lagrange") == 0) { |
| 3787 | double alpha1 = 1.0; |
| 3788 | double alpha2 = 1.0; |
| 3789 | if (argc == 4) { |
| 3790 | if (Tcl_GetDouble(interp, argv[2], &alpha1) != TCL_OK) |
| 3791 | return TCL_ERROR; |
| 3792 | if (Tcl_GetDouble(interp, argv[3], &alpha2) != TCL_OK) |
| 3793 | return TCL_ERROR; |
| 3794 | } |
| 3795 | theHandler = new LagrangeConstraintHandler(alpha1, alpha2); |
| 3796 | } |
| 3797 | |
| 3798 | else if (strcmp(argv[1],"Transformation") == 0) { |
| 3799 | theHandler = new TransformationConstraintHandler(); |
| 3800 | } |
| 3801 | |
| 3802 | else if (strcmp(argv[1],"Auto") == 0) { |
nothing calls this directly
no test coverage detected