function pbeDefinition = linearGrowth_metroMix
%% call common definition
pbeDefinition = linearGrowth_common;
seed = 0;

metroHandle = @(hC)(...
           0.5*pbeDefinition.seeding.volumeHandle(hC)./...
               pbeDefinition.analyticVolume(0) + ...
           0.5*pbeDefinition.seeding.fhandle(hC)./...
               pbeDefinition.analyticNumber(0));

initMean = 1.5e-5*[1 1 1]';
initCov = (3.0*eye(3) + 0.5*ones(3))*1e-10;

%% discrete sampling
thisFileName = ['metroArchive/linearGrowthMetroMix_' num2str(seed) '.matx'];
if ~exist(thisFileName, 'file') || true
    rng(seed);
    
    disD = obtainDistributionDiscrete('metro', ...
        'nSample', pbeDefinition.seeding.nSample, ...
        'metroHandle', metroHandle, ...
        'metroInit', initMean, ...  %m
        'metroCov', initCov, ...
        'metroNonAdaptive', 1e3, ...
        'metroNoHistory', 1e3, ...
        'metroHistory', 1e4, ...
        'metroLag', 1e3, ...
        'metroIntegral', 1, ...
        'metroSampleBatch', 500, ...
        'verbose', 1);
    save(thisFileName, '-mat', 'disD')
else
    load(thisFileName, '-mat');
end
pbeDefinition.seeding.disD = disD;
% disD.resMetro.mean
% disD.resMetro.cov
% disD.resMetro