void SUPGElement :: computeBCLhsPressureTerm_MB(FloatMatrix &answer, TimeStep *tStep) { bcType boundarytype; int nLoads = 0; //bcType loadtype; FloatMatrix helpMatrix; // loop over boundary load array answer.clear(); nLoads = this->giveBoundaryLoadArray()->giveSize() / 2; if ( nLoads ) { for ( int i = 1; i <= nLoads; i++ ) { int n = boundaryLoadArray.at(1 + ( i - 1 ) * 2); int side = boundaryLoadArray.at(i * 2); Load *load = domain->giveLoad(n); boundarytype = load->giveType(); if ( boundarytype == OutFlowBC ) { this->computeOutFlowBCTerm_MB(helpMatrix, side, tStep); answer.add(helpMatrix); } else { //_warning("computeForceLoadVector : unsupported load type class"); } } } }
void SUPGElement :: computeBCLhsTerm_MB(FloatMatrix &answer, TimeStep *tStep) { bcType boundarytype; int nLoads = 0; //bcType loadtype; FloatMatrix helpMatrix; // loop over boundary load array answer.clear(); nLoads = this->giveBoundaryLoadArray()->giveSize() / 2; if ( nLoads ) { for ( int i = 1; i <= nLoads; i++ ) { int n = boundaryLoadArray.at(1 + ( i - 1 ) * 2); int side = boundaryLoadArray.at(i * 2); Load *load = domain->giveLoad(n); boundarytype = load->giveType(); if ( boundarytype == SlipWithFriction ) { this->computeSlipWithFrictionBCTerm_MB(helpMatrix, load, side, tStep); answer.add(helpMatrix); } else if ( boundarytype == PenetrationWithResistance ) { this->computePenetrationWithResistanceBCTerm_MB(helpMatrix, load, side, tStep); answer.add(helpMatrix); } else { // OOFEM_ERROR("unsupported load type class"); } } } nLoads = this->giveBodyLoadArray()->giveSize(); if ( nLoads ) { bcGeomType ltype; for ( int i = 1; i <= nLoads; i++ ) { Load *load = domain->giveLoad( bodyLoadArray.at(i) ); ltype = load->giveBCGeoType(); if ( ( ltype == BodyLoadBGT ) && ( load->giveBCValType() == ReinforceBVT ) ) { this->computeHomogenizedReinforceTerm_MB(helpMatrix, load, tStep); answer.add(helpMatrix); } } } }