cdifs_obj_AdvanceSolution Module Subroutine

module subroutine cdifs_obj_AdvanceSolution(this)

Advances solution from n to n+1.

Arguments

Type IntentOptional Attributes Name
class(cdifs_obj), intent(inout) :: this

CDIFS solver


Calls

proc~~cdifs_obj_advancesolution~~CallsGraph proc~cdifs_obj_advancesolution cdifs_obj_AdvanceSolution proc~cdifs_obj_advancesolutionbodyforce cdifs_obj_AdvanceSolutionBodyForce proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutionbodyforce proc~cdifs_obj_advancesolutioncorrector cdifs_obj_AdvanceSolutionCorrector proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutioncorrector proc~cdifs_obj_advancesolutionib cdifs_obj_AdvanceSolutionIB proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutionib proc~cdifs_obj_advancesolutionpredictor cdifs_obj_AdvanceSolutionPredictor proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutionpredictor proc~cdifs_obj_advancesolutionrp cdifs_obj_AdvanceSolutionRP proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutionrp proc~respart_set_storeold ResPart_set%ResPart_set_StoreOld proc~cdifs_obj_advancesolution->proc~respart_set_storeold proc~timer_obj_updatetiming timer_obj%timer_obj_UpdateTiming proc~cdifs_obj_advancesolution->proc~timer_obj_updatetiming cpg cpg proc~cdifs_obj_advancesolutionbodyforce->cpg none~updateboundary bc_set%UpdateBoundary proc~cdifs_obj_advancesolutioncorrector->none~updateboundary proc~eulerian_obj_mean eulerian_obj_base%eulerian_obj_Mean proc~cdifs_obj_advancesolutioncorrector->proc~eulerian_obj_mean proc~eulerian_obj_updateghostcells eulerian_obj_base%eulerian_obj_UpdateGhostCells proc~cdifs_obj_advancesolutioncorrector->proc~eulerian_obj_updateghostcells proc~hypre_obj_setrhs hypre_obj%hypre_obj_SetRHS proc~cdifs_obj_advancesolutioncorrector->proc~hypre_obj_setrhs proc~hypre_obj_solve hypre_obj%hypre_obj_Solve proc~cdifs_obj_advancesolutioncorrector->proc~hypre_obj_solve proc~monitor_set_set monitor_set%monitor_set_Set proc~cdifs_obj_advancesolutioncorrector->proc~monitor_set_set proc~cdifs_obj_advancesolutionib->none~updateboundary proc~cdifs_obj_advancesolutionib->proc~eulerian_obj_updateghostcells proc~op_obj_intrp1 op_obj%op_obj_intrp1 proc~cdifs_obj_advancesolutionib->proc~op_obj_intrp1 proc~op_obj_intrp2 op_obj%op_obj_intrp2 proc~cdifs_obj_advancesolutionib->proc~op_obj_intrp2 proc~op_obj_intrp3 op_obj%op_obj_intrp3 proc~cdifs_obj_advancesolutionib->proc~op_obj_intrp3 proc~respart_set_getibforcing ResPart_set%ResPart_set_GetIBForcing proc~cdifs_obj_advancesolutionib->proc~respart_set_getibforcing proc~respart_set_updatesdf ResPart_set%ResPart_set_UpdateSDF proc~cdifs_obj_advancesolutionib->proc~respart_set_updatesdf proc~cdifs_obj_advancesolutionpredictor->none~updateboundary proc~cdifs_advancesolutionmomentumrhs1 cdifs_AdvanceSolutionMomentumRHS1 proc~cdifs_obj_advancesolutionpredictor->proc~cdifs_advancesolutionmomentumrhs1 proc~cdifs_advancesolutionmomentumrhs2 cdifs_AdvanceSolutionMomentumRHS2 proc~cdifs_obj_advancesolutionpredictor->proc~cdifs_advancesolutionmomentumrhs2 proc~cdifs_advancesolutionmomentumrhs3 cdifs_AdvanceSolutionMomentumRHS3 proc~cdifs_obj_advancesolutionpredictor->proc~cdifs_advancesolutionmomentumrhs3 proc~cdifs_obj_advancesolutionrp->proc~timer_obj_updatetiming proc~cdifs_obj_computesolidvf cdifs_obj%cdifs_obj_ComputeSolidVF proc~cdifs_obj_advancesolutionrp->proc~cdifs_obj_computesolidvf proc~cdifs_obj_updatecollisions cdifs_obj_UpdateCollisions proc~cdifs_obj_advancesolutionrp->proc~cdifs_obj_updatecollisions proc~lagrangian_set_applyperiodicity lagrangian_set%lagrangian_set_ApplyPeriodicity proc~cdifs_obj_advancesolutionrp->proc~lagrangian_set_applyperiodicity proc~lagrangian_set_communicate lagrangian_set%lagrangian_set_Communicate proc~cdifs_obj_advancesolutionrp->proc~lagrangian_set_communicate proc~lagrangian_set_localize lagrangian_set%lagrangian_set_Localize proc~cdifs_obj_advancesolutionrp->proc~lagrangian_set_localize proc~respart_set_advancecenters ResPart_set%ResPart_set_AdvanceCenters proc~cdifs_obj_advancesolutionrp->proc~respart_set_advancecenters proc~respart_set_advancemarkers ResPart_set%ResPart_set_AdvanceMarkers proc~cdifs_obj_advancesolutionrp->proc~respart_set_advancemarkers proc~respart_set_gethydroforces ResPart_set%ResPart_set_GetHydroForces proc~cdifs_obj_advancesolutionrp->proc~respart_set_gethydroforces proc~respart_set_regroup ResPart_set%ResPart_set_Regroup proc~cdifs_obj_advancesolutionrp->proc~respart_set_regroup proc~respart_set_updatelookup ResPart_set%ResPart_set_UpdateLookup proc~cdifs_obj_advancesolutionrp->proc~respart_set_updatelookup markers markers proc~respart_set_storeold->markers particle particle proc~respart_set_storeold->particle none~get~3 hashtbl_obj%Get proc~timer_obj_updatetiming->none~get~3 proc~hashtbl_obj_hashstring hashtbl_obj%hashtbl_obj_HashString proc~timer_obj_updatetiming->proc~hashtbl_obj_hashstring proc~hashtbl_obj_get_int4 hashtbl_obj%hashtbl_obj_Get_int4 none~get~3->proc~hashtbl_obj_get_int4 proc~hashtbl_obj_get_int8 hashtbl_obj%hashtbl_obj_Get_int8 none~get~3->proc~hashtbl_obj_get_int8 proc~hashtbl_obj_get_real_dp hashtbl_obj%hashtbl_obj_Get_real_dp none~get~3->proc~hashtbl_obj_get_real_dp proc~hashtbl_obj_get_real_sp hashtbl_obj%hashtbl_obj_Get_real_sp none~get~3->proc~hashtbl_obj_get_real_sp proc~bc_set_updateboundaryscalar bc_set%bc_set_UpdateBoundaryScalar none~updateboundary->proc~bc_set_updateboundaryscalar proc~bc_set_updateboundaryvector bc_set%bc_set_UpdateBoundaryVector none~updateboundary->proc~bc_set_updateboundaryvector proc~eulerian_obj_init eulerian_obj_base%eulerian_obj_Init proc~cdifs_advancesolutionmomentumrhs1->proc~eulerian_obj_init proc~cdifs_advancesolutionmomentumrhs2->proc~eulerian_obj_init proc~cdifs_advancesolutionmomentumrhs3->proc~eulerian_obj_init proc~cdifs_obj_computesolidvf->none~updateboundary proc~cdifs_obj_computesolidvf->proc~hypre_obj_setrhs proc~cdifs_obj_computesolidvf->proc~hypre_obj_solve proc~op_obj_applylaplaciandc op_obj%op_obj_ApplyLaplacianDC proc~cdifs_obj_computesolidvf->proc~op_obj_applylaplaciandc proc~respart_set_getcentroidvf ResPart_set%ResPart_set_GetCentroidVF proc~cdifs_obj_computesolidvf->proc~respart_set_getcentroidvf proc~respart_set_updatenormals ResPart_set%ResPart_set_UpdateNormals proc~cdifs_obj_computesolidvf->proc~respart_set_updatenormals proc~collision_obj_computecollisions collision_obj%collision_obj_ComputeCollisions proc~cdifs_obj_updatecollisions->proc~collision_obj_computecollisions proc~collision_obj_sanitize collision_obj%collision_obj_Sanitize proc~cdifs_obj_updatecollisions->proc~collision_obj_sanitize proc~collision_obj_updateghostobjects collision_obj%collision_obj_UpdateGhostObjects proc~cdifs_obj_updatecollisions->proc~collision_obj_updateghostobjects proc~collision_obj_updateneighborlist collision_obj%collision_obj_UpdateNeighborList proc~cdifs_obj_updatecollisions->proc~collision_obj_updateneighborlist cell cell proc~eulerian_obj_mean->cell proc~eulerian_obj_updateghostcells_x eulerian_obj_base%eulerian_obj_UpdateGhostCells_x proc~eulerian_obj_updateghostcells->proc~eulerian_obj_updateghostcells_x proc~eulerian_obj_updateghostcells_y eulerian_obj_base%eulerian_obj_UpdateGhostCells_y proc~eulerian_obj_updateghostcells->proc~eulerian_obj_updateghostcells_y proc~eulerian_obj_updateghostcells_z eulerian_obj_base%eulerian_obj_UpdateGhostCells_z proc~eulerian_obj_updateghostcells->proc~eulerian_obj_updateghostcells_z proc~hypre_obj_setrhsij hypre_obj%hypre_obj_SetRHSIJ proc~hypre_obj_setrhs->proc~hypre_obj_setrhsij proc~hypre_obj_setrhss hypre_obj%hypre_obj_SetRHSS proc~hypre_obj_setrhs->proc~hypre_obj_setrhss proc~hypre_obj_solveij hypre_obj%hypre_obj_SolveIJ proc~hypre_obj_solve->proc~hypre_obj_solveij proc~hypre_obj_solves hypre_obj%hypre_obj_SolveS proc~hypre_obj_solve->proc~hypre_obj_solves mpi_gather mpi_gather proc~lagrangian_set_communicate->mpi_gather mpi_recv mpi_recv proc~lagrangian_set_communicate->mpi_recv mpi_send mpi_send proc~lagrangian_set_communicate->mpi_send proc~lagrangian_set_recycle lagrangian_set%lagrangian_set_Recycle proc~lagrangian_set_communicate->proc~lagrangian_set_recycle proc~lagrangian_set_resize lagrangian_set%lagrangian_set_Resize proc~lagrangian_set_communicate->proc~lagrangian_set_resize proc~block_obj_getowningcell block_obj%block_obj_GetOwningCell proc~lagrangian_set_localize->proc~block_obj_getowningcell proc~monitor_obj_setval monitor_obj%monitor_obj_SetVal proc~monitor_set_set->proc~monitor_obj_setval proc~monitor_set_getindex monitor_set%monitor_set_GetIndex proc~monitor_set_set->proc~monitor_set_getindex proc~parallel_obj_rankisroot parallel_obj%parallel_obj_RankIsRoot proc~monitor_set_set->proc~parallel_obj_rankisroot proc~op_obj_intrp1->proc~eulerian_obj_init proc~op_obj_intrp2->proc~eulerian_obj_init proc~op_obj_intrp3->proc~eulerian_obj_init proc~respart_set_advancecenters->particle proc~respart_set_advancemarkers->markers proc~respart_set_advancemarkers->particle proc~cross_product~2 cross_product proc~respart_set_advancemarkers->proc~cross_product~2 proc~respart_set_gethydroforces->markers proc~respart_set_gethydroforces->proc~respart_set_regroup proc~respart_set_gethydroforces->proc~respart_set_updatelookup particles particles proc~respart_set_gethydroforces->particles proc~respart_set_gethydroforces->proc~cross_product~2 proc~respart_set_getsurfacestresses ResPart_set%ResPart_set_GetSurfaceStresses proc~respart_set_gethydroforces->proc~respart_set_getsurfacestresses proc~marker_set_getibforcing marker_set%marker_set_GetIBForcing proc~respart_set_getibforcing->proc~marker_set_getibforcing proc~respart_set_regroup->markers proc~respart_set_regroup->proc~lagrangian_set_communicate proc~block_obj_locate block_obj%block_obj_Locate proc~respart_set_regroup->proc~block_obj_locate proc~lagrangian_set_updatecount lagrangian_set%lagrangian_set_UpdateCount proc~respart_set_regroup->proc~lagrangian_set_updatecount proc~respart_set_updatelookup->particles proc~marker_set_updatesdf marker_set%marker_set_UpdateSDF proc~respart_set_updatesdf->proc~marker_set_updatesdf proc~bc_set_updateboundaryscalar->proc~eulerian_obj_updateghostcells proc~bc_set_checkbcexists bc_set%bc_set_CheckBCExists proc~bc_set_updateboundaryscalar->proc~bc_set_checkbcexists proc~bc_set_getbctype bc_set%bc_set_GetBCType proc~bc_set_updateboundaryscalar->proc~bc_set_getbctype proc~bc_set_updateboundarydirichlet bc_set%bc_set_UpdateBoundaryDirichlet proc~bc_set_updateboundaryscalar->proc~bc_set_updateboundarydirichlet proc~bc_set_updateboundaryneumann bc_set%bc_set_UpdateBoundaryNeumann proc~bc_set_updateboundaryscalar->proc~bc_set_updateboundaryneumann proc~bc_set_updateboundarysymmetryplus bc_set%bc_set_UpdateBoundarySymmetryPlus proc~bc_set_updateboundaryscalar->proc~bc_set_updateboundarysymmetryplus proc~bc_set_updateboundaryvector->proc~eulerian_obj_updateghostcells proc~bc_set_updateboundaryvector->proc~bc_set_checkbcexists proc~bc_set_updateboundaryvector->proc~bc_set_getbctype proc~bc_set_getsidedirbyregion bc_set%bc_set_GetSideDirByRegion proc~bc_set_updateboundaryvector->proc~bc_set_getsidedirbyregion proc~bc_set_updateboundaryvector->proc~bc_set_updateboundarydirichlet proc~bc_set_updateboundaryvector->proc~bc_set_updateboundaryneumann proc~bc_set_updateboundarysymmetryminus bc_set%bc_set_UpdateBoundarySymmetryMinus proc~bc_set_updateboundaryvector->proc~bc_set_updateboundarysymmetryminus proc~bc_set_updateboundaryvector->proc~bc_set_updateboundarysymmetryplus mpi_cart_rank mpi_cart_rank proc~block_obj_locate->mpi_cart_rank proc~collision_obj_computecollisions->particle center center proc~collision_obj_computecollisions->center proc~collision_obj_computecollisionsppvpp collision_obj%collision_obj_ComputeCollisionsPPvPP proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsppvpp proc~collision_obj_computecollisionsppvwall collision_obj%collision_obj_ComputeCollisionsPPvWALL proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsppvwall proc~collision_obj_computecollisionsrpvib collision_obj%collision_obj_ComputeCollisionsRPvIB proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsrpvib proc~collision_obj_computecollisionsrpvpp collision_obj%collision_obj_ComputeCollisionsRPvPP proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsrpvpp proc~collision_obj_computecollisionsrpvrp collision_obj%collision_obj_ComputeCollisionsRPvRP proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsrpvrp proc~collision_obj_computecollisionsrpvwall collision_obj%collision_obj_ComputeCollisionsRPvWALL proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsrpvwall proc~collision_obj_sanitize->proc~lagrangian_set_recycle proc~lagrangian_set_updateghostobjects lagrangian_set%lagrangian_set_UpdateGhostObjects proc~collision_obj_updateghostobjects->proc~lagrangian_set_updateghostobjects proc~block_obj_getowningcellwgc block_obj%block_obj_GetOwningCellWGC proc~collision_obj_updateneighborlist->proc~block_obj_getowningcellwgc proc~sllist_obj_put sllist_obj%sllist_obj_Put proc~collision_obj_updateneighborlist->proc~sllist_obj_put proc~eulerian_obj_updateghostcells_x->cell mpi_irecv mpi_irecv proc~eulerian_obj_updateghostcells_x->mpi_irecv mpi_isend mpi_isend proc~eulerian_obj_updateghostcells_x->mpi_isend mpi_waitall mpi_waitall proc~eulerian_obj_updateghostcells_x->mpi_waitall proc~eulerian_obj_updateghostcells_y->cell proc~eulerian_obj_updateghostcells_y->mpi_irecv proc~eulerian_obj_updateghostcells_y->mpi_isend proc~eulerian_obj_updateghostcells_y->mpi_waitall proc~eulerian_obj_updateghostcells_z->cell proc~eulerian_obj_updateghostcells_z->mpi_irecv proc~eulerian_obj_updateghostcells_z->mpi_isend proc~eulerian_obj_updateghostcells_z->mpi_waitall none~get~2 sllist_obj%Get proc~hashtbl_obj_get_int4->none~get~2 proc~hashtbl_obj_get_int8->none~get~2 proc~hashtbl_obj_get_real_dp->none~get~2 proc~hashtbl_obj_get_real_sp->none~get~2 hypre_ijvectorassemble hypre_ijvectorassemble proc~hypre_obj_setrhsij->hypre_ijvectorassemble hypre_ijvectorsetvalues hypre_ijvectorsetvalues proc~hypre_obj_setrhsij->hypre_ijvectorsetvalues hypre_structvectorassemble hypre_structvectorassemble proc~hypre_obj_setrhss->hypre_structvectorassemble hypre_structvectorsetvalues hypre_structvectorsetvalues proc~hypre_obj_setrhss->hypre_structvectorsetvalues proc~hypre_obj_solveij->proc~eulerian_obj_updateghostcells hypre_boomeramggetfinalreltvres hypre_boomeramggetfinalreltvres proc~hypre_obj_solveij->hypre_boomeramggetfinalreltvres hypre_boomeramggetnumiterations hypre_boomeramggetnumiterations proc~hypre_obj_solveij->hypre_boomeramggetnumiterations hypre_boomeramgsolve hypre_boomeramgsolve proc~hypre_obj_solveij->hypre_boomeramgsolve hypre_ijvectorgetvalues hypre_ijvectorgetvalues proc~hypre_obj_solveij->hypre_ijvectorgetvalues hypre_parcsrpcggetfinalrelative hypre_parcsrpcggetfinalrelative proc~hypre_obj_solveij->hypre_parcsrpcggetfinalrelative hypre_parcsrpcggetnumiterations hypre_parcsrpcggetnumiterations proc~hypre_obj_solveij->hypre_parcsrpcggetnumiterations hypre_parcsrpcgsolve hypre_parcsrpcgsolve proc~hypre_obj_solveij->hypre_parcsrpcgsolve hypre_structpcggetfinalrelative hypre_structpcggetfinalrelative proc~hypre_obj_solves->hypre_structpcggetfinalrelative hypre_structpcggetnumiterations hypre_structpcggetnumiterations proc~hypre_obj_solves->hypre_structpcggetnumiterations hypre_structpcgsolve hypre_structpcgsolve proc~hypre_obj_solves->hypre_structpcgsolve hypre_structpfmggetfinalrelativ hypre_structpfmggetfinalrelativ proc~hypre_obj_solves->hypre_structpfmggetfinalrelativ hypre_structpfmggetnumiteration hypre_structpfmggetnumiteration proc~hypre_obj_solves->hypre_structpfmggetnumiteration hypre_structpfmgsolve hypre_structpfmgsolve proc~hypre_obj_solves->hypre_structpfmgsolve hypre_structsmggetfinalrelative hypre_structsmggetfinalrelative proc~hypre_obj_solves->hypre_structsmggetfinalrelative hypre_structsmggetnumiterations hypre_structsmggetnumiterations proc~hypre_obj_solves->hypre_structsmggetnumiterations hypre_structsmgsolve hypre_structsmgsolve proc~hypre_obj_solves->hypre_structsmgsolve hypre_structvectorgetboxvalues hypre_structvectorgetboxvalues proc~hypre_obj_solves->hypre_structvectorgetboxvalues proc~lagrangian_set_recycle->proc~lagrangian_set_resize mpi_allgather mpi_allgather proc~lagrangian_set_updatecount->mpi_allgather proc~marker_set_getibforcing->markers proc~marker_set_getibforcing->proc~eulerian_obj_init p p proc~marker_set_getibforcing->p proc~eulerian_obj_final eulerian_obj_base%eulerian_obj_Final proc~marker_set_getibforcing->proc~eulerian_obj_final proc~marker_set_filter marker_set%marker_set_Filter proc~marker_set_getibforcing->proc~marker_set_filter proc~marker_set_updatesdf->proc~eulerian_obj_init proc~marker_set_updatesdf->proc~eulerian_obj_final proc~marker_set_updatesdf->proc~marker_set_filter proc~monitor_set_getindex->none~get~3 proc~monitor_set_getindex->proc~hashtbl_obj_hashstring proc~op_obj_applylaplaciandc->proc~bc_set_checkbcexists proc~bc_set_getbcpointer bc_set%bc_set_GetBCPointer proc~op_obj_applylaplaciandc->proc~bc_set_getbcpointer proc~op_obj_applylaplaciandc->proc~bc_set_getbctype proc~bc_set_getextents bc_set%bc_set_GetExtents proc~op_obj_applylaplaciandc->proc~bc_set_getextents proc~op_obj_applylaplaciandc->proc~bc_set_getsidedirbyregion proc~respart_set_getcentroidvf->particles proc~respart_set_getcentroidvf->p proc~respart_set_getsurfacestresses->markers proc~respart_set_getsurfacestresses->p proc~op_obj_strainrate op_obj%op_obj_StrainRate proc~respart_set_getsurfacestresses->proc~op_obj_strainrate proc~marker_set_updatenormals marker_set%marker_set_UpdateNormals proc~respart_set_updatenormals->proc~marker_set_updatenormals proc~sllist_obj_get_int4 sllist_obj%sllist_obj_Get_int4 none~get~2->proc~sllist_obj_get_int4 proc~sllist_obj_get_int8 sllist_obj%sllist_obj_Get_int8 none~get~2->proc~sllist_obj_get_int8 proc~sllist_obj_get_real_dp sllist_obj%sllist_obj_Get_real_dp none~get~2->proc~sllist_obj_get_real_dp proc~sllist_obj_get_real_sp sllist_obj%sllist_obj_Get_real_sp none~get~2->proc~sllist_obj_get_real_sp proc~bc_set_getregionindex bc_set%bc_set_GetRegionIndex proc~bc_set_checkbcexists->proc~bc_set_getregionindex proc~region_obj_getbcindex region_obj%region_obj_GetBCIndex proc~bc_set_checkbcexists->proc~region_obj_getbcindex proc~bc_set_getbcpointer->proc~bc_set_getregionindex proc~bc_set_getbcpointer->proc~region_obj_getbcindex proc~bc_set_getbctype->proc~bc_set_getregionindex proc~bc_set_getbctype->proc~region_obj_getbcindex proc~bc_set_getextents->proc~bc_set_getregionindex proc~bc_set_getsidedirbyregion->proc~bc_set_getregionindex proc~bc_set_updateboundarydirichlet->proc~bc_set_getbcpointer proc~bc_set_updateboundarydirichlet->proc~bc_set_getextents proc~bc_set_updateboundarydirichlet->proc~bc_set_getsidedirbyregion proc~bc_set_updateboundaryneumann->proc~bc_set_getextents proc~bc_set_updateboundaryneumann->proc~bc_set_getsidedirbyregion proc~bc_set_updateboundarysymmetryminus->proc~bc_set_getextents proc~bc_set_updateboundarysymmetryminus->proc~bc_set_getsidedirbyregion proc~bc_set_updateboundarysymmetryplus->proc~bc_set_getextents proc~bc_set_updateboundarysymmetryplus->proc~bc_set_getsidedirbyregion proc~collision_obj_computecollisionsppvpp->center proc~collision_obj_computecollisionsppvpp->none~get~2 proc~cross_product~3 cross_product proc~collision_obj_computecollisionsppvpp->proc~cross_product~3 proc~dem_col DEM_col proc~collision_obj_computecollisionsppvpp->proc~dem_col proc~collision_obj_computecollisionsppvwall->center proc~collision_obj_computecollisionsppvwall->proc~cross_product~3 proc~collision_obj_computecollisionsppvwall->proc~dem_col proc~collision_obj_computecollisionsrpvib->center proc~collision_obj_computecollisionsrpvib->none~get~2 proc~collision_obj_computecollisionsrpvib->proc~cross_product~3 proc~collision_obj_computecollisionsrpvib->proc~dem_col triangle triangle proc~collision_obj_computecollisionsrpvib->triangle proc~collision_obj_computecollisionsrpvpp->none~get~2 proc~collision_obj_computecollisionsrpvpp->proc~cross_product~3 proc~collision_obj_computecollisionsrpvpp->proc~dem_col type1 type1 proc~collision_obj_computecollisionsrpvpp->type1 type2 type2 proc~collision_obj_computecollisionsrpvpp->type2 proc~collision_obj_computecollisionsrpvrp->center proc~collision_obj_computecollisionsrpvrp->none~get~2 proc~collision_obj_computecollisionsrpvrp->proc~cross_product~3 proc~collision_obj_computecollisionsrpvrp->proc~dem_col proc~collision_obj_computecollisionsrpvwall->center proc~collision_obj_computecollisionsrpvwall->proc~cross_product~3 proc~collision_obj_computecollisionsrpvwall->proc~dem_col proc~lagrangian_set_updateghostobjects->proc~lagrangian_set_recycle proc~lagrangian_set_updateghostobjectsdir lagrangian_set_UpdateGhostObjectsDir proc~lagrangian_set_updateghostobjects->proc~lagrangian_set_updateghostobjectsdir proc~marker_set_filter->markers extrapolate extrapolate proc~marker_set_filter->extrapolate f f proc~marker_set_filter->f n n proc~marker_set_filter->n proc~eulerian_obj_addupghostcells eulerian_obj_base%eulerian_obj_AddUpGhostCells proc~marker_set_filter->proc~eulerian_obj_addupghostcells v v proc~marker_set_filter->v proc~marker_set_updatenormals->none~updateboundary proc~marker_set_updatenormals->proc~eulerian_obj_updateghostcells proc~marker_set_updatenormals->proc~eulerian_obj_init proc~marker_set_updatenormals->proc~eulerian_obj_final proc~marker_set_updatenormals->proc~marker_set_filter proc~op_obj_strainrate->proc~eulerian_obj_updateghostcells proc~op_obj_strainrate->proc~eulerian_obj_init proc~sllist_obj_put->proc~sllist_obj_put proc~bc_set_getregionindex->none~get~3 proc~bc_set_getregionindex->proc~hashtbl_obj_hashstring proc~dem_col->proc~cross_product~3 proc~eulerian_obj_addupghostcells->proc~eulerian_obj_updateghostcells proc~eulerian_obj_addupghostcells_x eulerian_obj_base%eulerian_obj_AddUpGhostCells_x proc~eulerian_obj_addupghostcells->proc~eulerian_obj_addupghostcells_x proc~eulerian_obj_addupghostcells_y eulerian_obj_base%eulerian_obj_AddUpGhostCells_y proc~eulerian_obj_addupghostcells->proc~eulerian_obj_addupghostcells_y proc~eulerian_obj_addupghostcells_z eulerian_obj_base%eulerian_obj_AddUpGhostCells_z proc~eulerian_obj_addupghostcells->proc~eulerian_obj_addupghostcells_z proc~lagrangian_set_updateghostobjectsdir->proc~lagrangian_set_resize proc~lagrangian_set_updateghostobjectsdir->mpi_irecv proc~lagrangian_set_updateghostobjectsdir->mpi_isend proc~lagrangian_set_updateghostobjectsdir->mpi_waitall mpi_wait mpi_wait proc~lagrangian_set_updateghostobjectsdir->mpi_wait proc~region_obj_getbcindex->none~get~3 proc~region_obj_getbcindex->proc~hashtbl_obj_hashstring proc~sllist_obj_get_int4->proc~sllist_obj_get_int4 proc~sllist_obj_get_int8->proc~sllist_obj_get_int8 proc~sllist_obj_get_real_dp->proc~sllist_obj_get_real_dp proc~sllist_obj_get_real_sp->proc~sllist_obj_get_real_sp proc~eulerian_obj_addupghostcells_x->cell proc~eulerian_obj_addupghostcells_x->mpi_irecv proc~eulerian_obj_addupghostcells_x->mpi_isend proc~eulerian_obj_addupghostcells_x->mpi_waitall proc~eulerian_obj_addupghostcells_y->cell proc~eulerian_obj_addupghostcells_y->mpi_irecv proc~eulerian_obj_addupghostcells_y->mpi_isend proc~eulerian_obj_addupghostcells_y->mpi_waitall proc~eulerian_obj_addupghostcells_z->cell proc~eulerian_obj_addupghostcells_z->mpi_irecv proc~eulerian_obj_addupghostcells_z->mpi_isend proc~eulerian_obj_addupghostcells_z->mpi_waitall

Called by

proc~~cdifs_obj_advancesolution~~CalledByGraph proc~cdifs_obj_advancesolution cdifs_obj_AdvanceSolution interface~cdifs_obj_advancesolution cdifs_obj%cdifs_obj_AdvanceSolution interface~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolution

Source Code

    module subroutine cdifs_obj_AdvanceSolution(this)
      !> Advances solution from n to n+1.
      implicit none
      class(cdifs_obj), intent(inout) :: this                                  !! CDIFS solver
      ! Work variables
      integer :: it

      ! Store old states
      this%Vold(1) = this%V(1)
      this%Vold(2) = this%V(2)
      this%Vold(3) = this%V(3)
      if (this%use_RP) call this%RP%StoreOld()

      ! Build bodyforces
      call cdifs_obj_AdvanceSolutionBodyForce(this)

      ! Update Resolved Particles
      if (this%use_RP) call cdifs_obj_AdvanceSolutionRP(this)

      ! Perform sub-iterations
      it = 0
      do while (it.lt.this%subit)
        it = it + 1

        ! Predictor step
        call cdifs_obj_AdvanceSolutionPredictor(this)

        ! Immersed boundary step
        if (this%use_IB .or.this%use_RP) call cdifs_obj_AdvanceSolutionIB(this)

        ! Corrector step
        call cdifs_obj_AdvanceSolutionCorrector(this,it)
      end do
      call this%timer%UpdateTiming('Advance/V' )

      return
    end subroutine cdifs_obj_AdvanceSolution