diff --git a/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C b/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C index 783550c378..021c8e86ee 100644 --- a/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C +++ b/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C @@ -61,6 +61,18 @@ Foam::DSMCParcel::DSMCParcel { is >> U_ >> Ei_ >> typeId_; } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + + is.beginRawRead(); + + readRawScalar(is, U_.data(), vector::nComponents); + readRawScalar(is, &Ei_); + readRawLabel(is, &typeId_); + + is.endRawRead(); + } else { is.read(reinterpret_cast(&U_), sizeofFields); diff --git a/src/lagrangian/basic/injectedParticle/injectedParticleIO.C b/src/lagrangian/basic/injectedParticle/injectedParticleIO.C index 10bdd4770f..958853851d 100644 --- a/src/lagrangian/basic/injectedParticle/injectedParticleIO.C +++ b/src/lagrangian/basic/injectedParticle/injectedParticleIO.C @@ -69,9 +69,21 @@ Foam::injectedParticle::injectedParticle { is >> tag_ >> soi_ >> d_ >> U_; } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + is.beginRawRead(); + + readRawLabel(is, &tag_); + readRawScalar(is, &soi_); + readRawScalar(is, &d_); + readRawScalar(is, U_.data(), vector::nComponents); + + is.endRawRead(); + } else { - is.read(reinterpret_cast(&soi_), sizeofFields); + is.read(reinterpret_cast(&tag_), sizeofFields); } } diff --git a/src/lagrangian/basic/particle/particleIO.C b/src/lagrangian/basic/particle/particleIO.C index 521d888c5e..bfba21b67d 100644 --- a/src/lagrangian/basic/particle/particleIO.C +++ b/src/lagrangian/basic/particle/particleIO.C @@ -73,6 +73,27 @@ Foam::particle::particle is >> facei_ >> stepFraction_ >> origProc_ >> origId_; } } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + + is.beginRawRead(); + + readRawScalar(is, coordinates_.data(), barycentric::nComponents); + readRawLabel(is, &celli_); + readRawLabel(is, &tetFacei_); + readRawLabel(is, &tetPti_); + + if (readFields) + { + readRawLabel(is, &facei_); + readRawScalar(is, &stepFraction_); + readRawLabel(is, &origProc_); + readRawLabel(is, &origId_); + } + + is.endRawRead(); + } else { if (readFields) @@ -103,6 +124,27 @@ Foam::particle::particle >> p.origId; } } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + + is.beginRawRead(); + + readRawScalar(is, p.position.data(), vector::nComponents); + readRawLabel(is, &p.celli); + + if (readFields) + { + readRawLabel(is, &p.facei); + readRawScalar(is, &p.stepFraction); + readRawLabel(is, &p.tetFacei); + readRawLabel(is, &p.tetPti); + readRawLabel(is, &p.origProc); + readRawLabel(is, &p.origId); + } + + is.endRawRead(); + } else { if (readFields) diff --git a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C index 4d265e4642..2d20855373 100644 --- a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C +++ b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C @@ -68,6 +68,18 @@ Foam::CollidingParcel::CollidingParcel is >> angularMomentum_; is >> torque_; } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + + is.beginRawRead(); + + readRawScalar(is, f_.data(), vector::nComponents); + readRawScalar(is, angularMomentum_.data(), vector::nComponents); + readRawScalar(is, torque_.data(), vector::nComponents); + + is.endRawRead(); + } else { is.read(reinterpret_cast(&f_), sizeofFields); diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C index 74f26230a0..dc400a28b7 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C @@ -83,6 +83,25 @@ Foam::KinematicParcel::KinematicParcel >> tTurb_ >> UTurb_; } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + + is.beginRawRead(); + + readRawLabel(is, &active_); + readRawLabel(is, &typeId_); + readRawScalar(is, &nParticle_); + readRawScalar(is, &d_); + readRawScalar(is, &dTarget_); + readRawScalar(is, U_.data(), vector::nComponents); + readRawScalar(is, &rho_); + readRawScalar(is, &age_); + readRawScalar(is, &tTurb_); + readRawScalar(is, UTurb_.data(), vector::nComponents); + + is.endRawRead(); + } else { is.read(reinterpret_cast(&active_), sizeofFields); diff --git a/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C index 82a1b557e4..9e2c5fd51b 100644 --- a/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C +++ b/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C @@ -63,6 +63,16 @@ Foam::MPPICParcel::MPPICParcel { is >> UCorrect_; } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + + is.beginRawRead(); + + readRawScalar(is, UCorrect_.data(), vector::nComponents); + + is.endRawRead(); + } else { is.read(reinterpret_cast(&UCorrect_), sizeofFields); diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C index 0d81e59bc9..b74e991de6 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C @@ -63,14 +63,25 @@ Foam::ReactingParcel::ReactingParcel if (is.format() == IOstream::ASCII) { - is >> mass0_ >> Ymix; + is >> mass0_; + } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + + is.beginRawRead(); + + readRawScalar(is, &mass0_); + + is.endRawRead(); } else { is.read(reinterpret_cast(&mass0_), sizeofFields); - is >> Ymix; } + is >> Ymix; + Y_.transfer(Ymix); } diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C index abbb09baa4..8ffe611bf0 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C +++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C @@ -64,6 +64,17 @@ Foam::ThermoParcel::ThermoParcel { is >> T_ >> Cp_; } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + + is.beginRawRead(); + + readRawScalar(is, &T_); + readRawScalar(is, &Cp_); + + is.endRawRead(); + } else { is.read(reinterpret_cast(&T_), sizeofFields); diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C b/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C index 8e362182d2..75e907a3af 100644 --- a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C +++ b/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C @@ -58,8 +58,8 @@ Foam::molecule::molecule rf_(Zero), special_(0), id_(0), - siteForces_(0), - sitePositions_(0) + siteForces_(), + sitePositions_() { if (readFields) { @@ -74,15 +74,33 @@ Foam::molecule::molecule >> potentialEnergy_ >> rf_ >> special_ - >> id_ - >> siteForces_ - >> sitePositions_; + >> id_; + } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + + is.beginRawRead(); + + readRawScalar(is, Q_.data(), tensor::nComponents); + readRawScalar(is, v_.data(), vector::nComponents); + readRawScalar(is, a_.data(), vector::nComponents); + readRawScalar(is, pi_.data(), vector::nComponents); + readRawScalar(is, tau_.data(), vector::nComponents); + readRawScalar(is, specialPosition_.data(), vector::nComponents); + readRawScalar(is, &potentialEnergy_); + readRawScalar(is, rf_.data(), tensor::nComponents); + readRawLabel(is, &special_); + readRawLabel(is, &id_); + + is.endRawRead(); } else { is.read(reinterpret_cast(&Q_), sizeofFields); - is >> siteForces_ >> sitePositions_; } + + is >> siteForces_ >> sitePositions_; } is.check(FUNCTION_NAME); diff --git a/src/lagrangian/solidParticle/solidParticleIO.C b/src/lagrangian/solidParticle/solidParticleIO.C index 14d171f91b..d69ab73360 100644 --- a/src/lagrangian/solidParticle/solidParticleIO.C +++ b/src/lagrangian/solidParticle/solidParticleIO.C @@ -54,6 +54,17 @@ Foam::solidParticle::solidParticle { is >> d_ >> U_; } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + + is.beginRawRead(); + + readRawScalar(is, &d_); + readRawScalar(is, U_.data(), vector::nComponents); + + is.endRawRead(); + } else { is.read(reinterpret_cast(&d_), sizeofFields); diff --git a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C index b23165c656..4a9ebb0428 100644 --- a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C +++ b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C @@ -86,6 +86,28 @@ Foam::SprayParcel::SprayParcel >> tMom_ >> user_; } + else if (!is.checkLabelSize<>() || !is.checkScalarSize<>()) + { + // Non-native label or scalar size + + is.beginRawRead(); + + readRawScalar(is, &d0_); + readRawScalar(is, position0_.data(), vector::nComponents); + readRawScalar(is, &sigma_); + readRawScalar(is, &mu_); + readRawScalar(is, &liquidCore_); + readRawScalar(is, &KHindex_); + readRawScalar(is, &y_); + readRawScalar(is, &yDot_); + readRawScalar(is, &tc_); + readRawScalar(is, &ms_); + readRawScalar(is, &injector_); + readRawScalar(is, &tMom_); + readRawScalar(is, &user_); + + is.endRawRead(); + } else { is.read(reinterpret_cast(&d0_), sizeofFields);