1240 {
1243 CHKERR VecSetOption(ts_F, VEC_IGNORE_NEGATIVE_INDICES, PETSC_TRUE);
1244
1246 case CTX_TSSETIJACOBIAN: {
1247 snes_ctx = CTX_SNESSETJACOBIAN;
1248 snes_B = ts_B;
1249
1250
1251
1256
1257 break;
1258 }
1259 case CTX_TSSETIFUNCTION: {
1260 snes_ctx = CTX_SNESSETFUNCTION;
1261 snes_f = ts_F;
1262 break;
1263 }
1264 default:
1265 break;
1266 }
1267
1268 auto time = ts_t;
1269
1270
1271
1273 for (
auto &bdata :
bcData) {
1274 bdata.scaledValues = bdata.values;
1276 bdata.scaledValues);
1277 }
1278
1279
1280 if (time <= (*cache).rollers_stop_time) {
1281
1283 for (auto &roller : (*cache).rollerDataVec) {
1284 roller.BodyDispScaled = roller.rollerDisp;
1287 }
1288
1289 for (auto &roller : (*cache).rollerDataVec) {
1290 if (roller.methodOpForRollerPosition) {
1291 roller.BodyDispScaled.clear();
1293 this, roller.methodOpForRollerPosition, roller.BodyDispScaled);
1294 }
1295 if (roller.methodOpForRollerDirection) {
1296 roller.BodyDirectionScaled.clear();
1298 this, roller.methodOpForRollerDirection,
1299 roller.BodyDirectionScaled);
1300 }
1301 }
1302 }
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1315 }
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
static MoFEMErrorCode applyScale(const FEMethod *fe, boost::ptr_vector< MethodForForceScaling > &methods_op, VectorDouble &nf)
boost::shared_ptr< MethodForForceScaling > methodsOpForMove
boost::shared_ptr< MethodForForceScaling > methodsOpForRollersDisp