void Lattice2d_mt :: updateInternalState(TimeStep *tStep) // Updates the receiver at end of step. { FloatArray f, r; FloatMatrix n; TransportMaterial *mat = static_cast< TransportMaterial * >( this->giveMaterial() ); // force updating ip values for ( auto &iRule: integrationRulesArray ) { for ( GaussPoint *gp: *iRule ) { this->computeNmatrixAt( n, gp->giveNaturalCoordinates() ); this->computeVectorOf({P_f}, VM_Total, tStep, r); f.beProductOf(n, r); mat->updateInternalState(f, gp, tStep); } } }
void Lattice2d_mt :: updateInternalState(TimeStep *stepN) // Updates the receiver at end of step. { int i, j; IntegrationRule *iRule; FloatArray f, r; FloatMatrix n; TransportMaterial *mat = ( ( TransportMaterial * ) this->giveMaterial() ); GaussPoint *gp; // force updating ip values for ( i = 0; i < numberOfIntegrationRules; i++ ) { iRule = integrationRulesArray [ i ]; for ( j = 0; j < iRule->giveNumberOfIntegrationPoints(); j++ ) { gp = iRule->getIntegrationPoint(j); this->computeNmatrixAt( n, *gp->giveCoordinates() ); this->computeVectorOf(EID_ConservationEquation, VM_Total, stepN, r); f.beProductOf(n, r); mat->updateInternalState(f, gp, stepN); } } }