55concept Cell =
requires(CELL cell,
typename CELL::value_t value) {
60 { cell.computeRho() } -> std::convertible_to<typename CELL::value_t>;
61 cell.computeU(&value);
62 cell.computeJ(&value);
63 cell.computeRhoU(value, &value);
64 cell.computeStress(&value);
65 cell.computeAllMomenta(value,&value,&value);
68 cell.defineRho(value);
70 cell.defineRhoU(value,&value);
71 cell.defineAllMomenta(value,&value,&value);
72 cell.inverseShiftRhoU(value,&value);
75 cell.definePopulations(&value);
78 cell.iniEquilibrium(value,&value);
79 cell.iniRegularized(value,&value,&value);
86 { cell.template getField<descriptors::POPULATION>() } -> std::same_as<
87 FieldD<typename CELL::value_t,typename CELL::descriptor_t,descriptors::POPULATION>
89 cell.template setField<descriptors::POPULATION>(&value);
93 { cell.template getFieldComponent<descriptors::POPULATION>(0) } -> std::convertible_to<const typename CELL::value_t&>;
97 { cell.template getFieldPointer<descriptors::POPULATION>()[0] } -> std::convertible_to<typename CELL::value_t>;