From fc36a57471cf70ead02c1a9982b2b9aa05e2eca3 Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Fri, 10 Nov 2023 11:44:35 +0100 Subject: [PATCH] Documentation update and method improvement --- ...ampling_05_SampleAsMinMaxSobolSequence.png | Bin 0 -> 16216 bytes ...leAsIndependantRandomVariables_normal.png} | Bin ...eAsIndependantRandomVariables_uniform.png} | Bin ...eAsIndependantRandomVariables_weibull.png} | Bin ...thm_EnsembleOfSimulationGenerationTask.rst | 2 + ...thm_MeasurementsOptimalPositioningTask.rst | 2 + doc/en/ref_algorithm_SamplingTest.rst | 2 + doc/en/ref_sampling_requirements.rst | 32 +++++++++++--- .../snippets/SampleAsMinMaxLatinHyperCube.rst | 3 +- .../snippets/SampleAsMinMaxSobolSequence.rst | 16 +++++++ ...ampling_05_SampleAsMinMaxSobolSequence.png | Bin 0 -> 17436 bytes ...leAsIndependantRandomVariables_normal.png} | Bin ...eAsIndependantRandomVariables_uniform.png} | Bin ...eAsIndependantRandomVariables_weibull.png} | Bin ...thm_EnsembleOfSimulationGenerationTask.rst | 2 + ...thm_MeasurementsOptimalPositioningTask.rst | 2 + doc/fr/ref_algorithm_SamplingTest.rst | 2 + doc/fr/ref_sampling_requirements.rst | 26 ++++++++++-- .../snippets/SampleAsMinMaxLatinHyperCube.rst | 4 +- .../snippets/SampleAsMinMaxSobolSequence.rst | 18 ++++++++ src/daComposant/daAlgorithms/Atoms/eosg.py | 1 + .../EnsembleOfSimulationGenerationTask.py | 6 +++ .../MeasurementsOptimalPositioningTask.py | 6 +++ src/daComposant/daAlgorithms/SamplingTest.py | 7 +++ src/daComposant/daCore/NumericObjects.py | 40 +++++++++++++++--- src/daComposant/daCore/Reporting.py | 2 + 26 files changed, 155 insertions(+), 18 deletions(-) create mode 100644 doc/en/images/sampling_05_SampleAsMinMaxSobolSequence.png rename doc/en/images/{sampling_05_SampleAsIndependantRandomVariables_normal.png => sampling_06_SampleAsIndependantRandomVariables_normal.png} (100%) rename doc/en/images/{sampling_06_SampleAsIndependantRandomVariables_uniform.png => sampling_07_SampleAsIndependantRandomVariables_uniform.png} (100%) rename doc/en/images/{sampling_07_SampleAsIndependantRandomVariables_weibull.png => sampling_08_SampleAsIndependantRandomVariables_weibull.png} (100%) create mode 100644 doc/en/snippets/SampleAsMinMaxSobolSequence.rst create mode 100644 doc/fr/images/sampling_05_SampleAsMinMaxSobolSequence.png rename doc/fr/images/{sampling_05_SampleAsIndependantRandomVariables_normal.png => sampling_06_SampleAsIndependantRandomVariables_normal.png} (100%) rename doc/fr/images/{sampling_06_SampleAsIndependantRandomVariables_uniform.png => sampling_07_SampleAsIndependantRandomVariables_uniform.png} (100%) rename doc/fr/images/{sampling_07_SampleAsIndependantRandomVariables_weibull.png => sampling_08_SampleAsIndependantRandomVariables_weibull.png} (100%) create mode 100644 doc/fr/snippets/SampleAsMinMaxSobolSequence.rst diff --git a/doc/en/images/sampling_05_SampleAsMinMaxSobolSequence.png b/doc/en/images/sampling_05_SampleAsMinMaxSobolSequence.png new file mode 100644 index 0000000000000000000000000000000000000000..98a8d3086ce0654ac233c6ffadbd289022f3ae8c GIT binary patch literal 16216 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 0: + import scipy, warnings + if vt(scipy.version.version) <= vt("1.7.0"): + __msg = "In order to use Latin Hypercube sampling, you must at least use Scipy version 1.7.0 (and you are presently using Scipy %s). A void sample is then generated."%scipy.version.version + warnings.warn(__msg, FutureWarning, stacklevel=50) + sampleList = [] + else: + __spDesc = list(__SampleAsMinMaxSobolSequence) + __nbDime,__nbSamp = map(int, __spDesc.pop()) # Réduction du dernier + if __nbDime != len(__spDesc): + warnings.warn("Declared space dimension (%i) is not equal to number of bounds (%i), the last one will be used."%(__nbDime, len(__spDesc)), FutureWarning, stacklevel=50) + __sample = scipy.stats.qmc.Sobol( + d = len(__spDesc), + seed = numpy.random.default_rng(__Seed), + ) + __sample = __sample.random_base2(m = int(math.log2(__nbSamp))+1) + __bounds = numpy.array(__spDesc)[:,0:2] + __l_bounds = __bounds[:,0] + __u_bounds = __bounds[:,1] + sampleList = scipy.stats.qmc.scale(__sample, __l_bounds, __u_bounds) # --------------------------- elif len(__SampleAsIndependantRandomVariables) > 0: coordinatesList = [] diff --git a/src/daComposant/daCore/Reporting.py b/src/daComposant/daCore/Reporting.py index 22cd12b..d3d7ac3 100644 --- a/src/daComposant/daCore/Reporting.py +++ b/src/daComposant/daCore/Reporting.py @@ -252,6 +252,8 @@ class ReportViewInPlainTxt(__ReportV__): Report in plain TXT """ # + __slots__ = () + # default_filename="report.txt" tags = { "p":["\n",""], -- 2.39.2