int main(int argc, char **argv) { /* start timer */ double clock; clock = timer(); real **A, *x, *b; int n = 1000; A = allocMatrix(n, n); x = allocVector(n); b = allocVector(n); initializeA(A, n); initializeB(b, n); //showMatrix (n, A); //printf ("\n"); solve(n, A, x, b); /* stop timer */ clock = timer() - clock; showVector(n, x); freeMatrix(A); freeVector(x); freeVector(b); printf ("wallclock: %lf seconds\n", clock); return EXIT_SUCCESS; }
void TensorMechanicsPlasticDruckerPrager::onlyB(Real intnl, int fd, Real & bbb) const { if (_zero_phi_hardening && (fd == friction)) { bbb = _bbb; return; } if (_zero_psi_hardening && (fd == dilation)) { bbb = _bbb_flow; return; } initializeB(intnl, fd, bbb); }
TensorMechanicsPlasticDruckerPrager::TensorMechanicsPlasticDruckerPrager( const InputParameters & parameters) : TensorMechanicsPlasticModel(parameters), _mc_cohesion(getUserObject<TensorMechanicsHardeningModel>("mc_cohesion")), _mc_phi(getUserObject<TensorMechanicsHardeningModel>("mc_friction_angle")), _mc_psi(getUserObject<TensorMechanicsHardeningModel>("mc_dilation_angle")), _mc_interpolation_scheme(getParam<MooseEnum>("mc_interpolation_scheme")), _zero_cohesion_hardening(_mc_cohesion.modelName().compare("Constant") == 0), _zero_phi_hardening(_mc_phi.modelName().compare("Constant") == 0), _zero_psi_hardening(_mc_psi.modelName().compare("Constant") == 0) { if (_mc_phi.value(0.0) < 0.0 || _mc_psi.value(0.0) < 0.0 || _mc_phi.value(0.0) > libMesh::pi / 2.0 || _mc_psi.value(0.0) > libMesh::pi / 2.0) mooseError("TensorMechanicsPlasticDruckerPrager: MC friction and dilation angles must lie in " "[0, Pi/2]"); if (_mc_phi.value(0) < _mc_psi.value(0.0)) mooseError("TensorMechanicsPlasticDruckerPrager: MC friction angle must not be less than MC " "dilation angle"); if (_mc_cohesion.value(0.0) < 0) mooseError("TensorMechanicsPlasticDruckerPrager: MC cohesion should not be negative"); initializeAandB(0.0, _aaa, _bbb); initializeB(0.0, dilation, _bbb_flow); }