@@ -110,6 +110,9 @@ bool ColumnModel1D::usesAD() const CADET_NOEXCEPT
110110
111111bool ColumnModel1D::configureModelDiscretization (IParameterProvider& paramProvider, const IConfigHelper& helper)
112112{
113+ // Read unit type as name to allow model configuration via GRM, LRMP. Here, the particle types are set correspondingly
114+ std::string unitName = paramProvider.getString (" UNIT_TYPE" );
115+
113116 // ==== Read discretization
114117 _disc.nComp = paramProvider.getInt (" NCOMP" );
115118
@@ -162,20 +165,33 @@ bool ColumnModel1D::configureModelDiscretization(IParameterProvider& paramProvid
162165
163166 for (int parType = 0 ; parType < _disc.nParType ; parType++)
164167 {
165- paramProvider.pushScope (" particle_type_" + std::string (3 - std::to_string (parType).length (), ' 0' ) + std::to_string (parType));
166- std::string particleModelName = paramProvider.getString (" PARTICLE_TYPE" );
168+ if (unitName == " COLUMN_MODEL_1D" )
169+ {
170+ paramProvider.pushScope (" particle_type_" + std::string (3 - std::to_string (parType).length (), ' 0' ) + std::to_string (parType));
171+ std::string particleModelName = paramProvider.getString (" PARTICLE_TYPE" );
167172
168- _particles[parType] = helper.createParticleModel (particleModelName);
169- if (!_particles[parType])
170- throw InvalidParameterException (" Unknown particle model " + particleModelName);
173+ _particles[parType] = helper.createParticleModel (particleModelName);
174+ if (!_particles[parType])
175+ throw InvalidParameterException (" Unknown particle model " + particleModelName);
171176
172- paramProvider.popScope ();
177+ paramProvider.popScope ();
178+ }
179+ else
180+ {
181+ if (unitName == " GENERAL_RATE_MODEL_DG" )
182+ _particles[parType] = helper.createParticleModel (" GENERAL_RATE_PARTICLE" );
183+ else if (unitName == " LUMPED_RATE_MODEL_WITH_PORES_DG" )
184+ _particles[parType] = helper.createParticleModel (" HOMOGENEOUS_PARTICLE" );
185+ }
173186 }
174187
175188 bool particleConfSuccess = true ;
176189 for (int parType = 0 ; parType < _disc.nParType ; parType++)
177190 {
178- particleConfSuccess = particleConfSuccess && _particles[parType]->configureModelDiscretization (paramProvider, helper, _disc.nComp , parType, _disc.nParType , idxr.strideColComp ());
191+ if (unitName == " COLUMN_MODEL_1D" )
192+ particleConfSuccess = particleConfSuccess && _particles[parType]->configureModelDiscretization (paramProvider, helper, _disc.nComp , parType, _disc.nParType , idxr.strideColComp ());
193+ else
194+ particleConfSuccess = particleConfSuccess && _particles[parType]->configureModelDiscretization_old (paramProvider, helper, _disc.nComp , parType, _disc.nParType , idxr.strideColComp ());
179195 }
180196 paramProvider.pushScope (" discretization" );
181197
0 commit comments