MCPcopy Create free account
hub / github.com/IBAMR/IBAMR / computeLagrangianForce

Method computeLagrangianForce

src/IB/IBMethod.cpp:833–857  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

831} // hasFluidSources
832
833void
834IBMethod::computeLagrangianForce(const double data_time)
835{
836 int ierr;
837 const int coarsest_ln = 0;
838 const int finest_ln = d_hierarchy->getFinestLevelNumber();
839 std::vector<Pointer<LData>>*F_data, *X_data, *U_data;
840 bool *F_needs_ghost_fill, *X_needs_ghost_fill;
841 getForceData(&F_data, &F_needs_ghost_fill, data_time);
842 getPositionData(&X_data, &X_needs_ghost_fill, data_time);
843 getVelocityData(&U_data, data_time);
844 for (int ln = coarsest_ln; ln <= finest_ln; ++ln)
845 {
846 if (!d_l_data_manager->levelContainsLagrangianData(ln)) continue;
847 ierr = VecSet((*F_data)[ln]->getVec(), 0.0);
848 IBTK_CHKERRQ(ierr);
849 if (d_ib_force_fcn)
850 {
851 d_ib_force_fcn->computeLagrangianForce(
852 (*F_data)[ln], (*X_data)[ln], (*U_data)[ln], d_hierarchy, ln, data_time, d_l_data_manager);
853 }
854 }
855 *F_needs_ghost_fill = true;
856 return;
857} // computeLagrangianForce
858
859void
860IBMethod::computeLinearizedLagrangianForce(Vec& X_vec, const double /*data_time*/)

Callers 4

IBFunction_positionMethod · 0.45
IBFunction_velocityMethod · 0.45

Calls 3

getVecMethod · 0.80
getFinestLevelNumberMethod · 0.45

Tested by

no test coverage detected