shelterStart() sets withdrawn once, for a shelter_compliance fraction of agents (src/AgentContainer.cpp). It is the only place shelter compliance is applied, and it is called once, on the order's start day:
if (amrex::Random(engine) < shelter_compliance) { withdrawn_ptr[i] = 1; }
The withdrawn attribute gets cleared on recovery (src/DiseaseStatus.H):
if (!marked_for_hosp_ptr[i] && !inHospital(i, ptd) && counter_ptr[i] == recovered_period) {
status_ptr[i] = Status::immune;
...
withdrawn_ptr[i] = 0; // also cancels an active shelter-in-place order
}
There is no code path that re-sets withdrawn from shelter_compliance after recovery.
shelterStart()setswithdrawnonce, for ashelter_compliancefraction of agents (src/AgentContainer.cpp). It is the only place shelter compliance is applied, and it is called once, on the order's start day:The
withdrawnattribute gets cleared on recovery (src/DiseaseStatus.H):There is no code path that re-sets
withdrawnfromshelter_complianceafter recovery.