From 0b860722c38bc38bbc46808da1a30fbef29ea01b Mon Sep 17 00:00:00 2001 From: Mathieu Westphal Date: Fri, 22 Apr 2022 15:49:37 +0200 Subject: [PATCH 01/11] Improve LPT XML plugin --- .../Filters/LagrangianParticleTracker.xml | 55 ++++++++++--------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml b/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml index a65470d869..6c3d528f80 100644 --- a/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml +++ b/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml @@ -193,13 +193,14 @@ This property contains the name of the vector array from the seeds to use as initial particle velocity. - - - Set whether to use an initial integration time array from input - instead of zero values. - - - - - - - - - This property contains the name of the scalar array from the seeds to use as initial particle integration time. @@ -307,6 +293,31 @@ + + + + + + + + This property contains the name of + the array to use as flow velocity. + + - - This property specifies the input used to obtain the seed points to generate particles. -- GitLab From 45fc9e362514d9522efdbcbc7b370a9098f06809 Mon Sep 17 00:00:00 2001 From: Mathieu Westphal Date: Fri, 22 Apr 2022 16:05:58 +0200 Subject: [PATCH 02/11] Revert "Improve LPT XML plugin" This reverts commit 0b860722c38bc38bbc46808da1a30fbef29ea01b. --- .../Filters/LagrangianParticleTracker.xml | 55 +++++++++---------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml b/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml index 6c3d528f80..a65470d869 100644 --- a/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml +++ b/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml @@ -193,14 +193,13 @@ This property contains the name of the vector array from the seeds to use as initial particle velocity. + + + Set whether to use an initial integration time array from input + instead of zero values. + + + - + + + + + This property contains the name of the scalar array from the seeds to use as initial particle integration time. @@ -293,31 +307,6 @@ - - - - - - - - This property contains the name of - the array to use as flow velocity. - - + + This property specifies the input used to obtain the seed points to generate particles. -- GitLab From b9fba42696b0faa3ba6c9f08859137cb18d50c0a Mon Sep 17 00:00:00 2001 From: Mathieu Westphal Date: Fri, 22 Apr 2022 16:18:28 +0200 Subject: [PATCH 03/11] Improve LPT XML plugin --- .../Filters/LagrangianParticleTracker.xml | 51 ++++++++++--------- .../LagrangianParticleTrackerReseeding.xml | 1 - 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml b/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml index a65470d869..89ad5b5db2 100644 --- a/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml +++ b/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml @@ -200,6 +200,7 @@ number_of_elements="5"> This property contains the name of the vector array from the seeds to use as initial particle velocity. - - - Set whether to use an initial integration time array from input - instead of zero values. - - - - @@ -237,11 +228,6 @@ name="DummySource" /> - - - - - This property contains the name of the scalar array from the seeds to use as initial particle integration time. @@ -307,6 +293,31 @@ + + + + + + + + This property contains the name of + the array to use as flow velocity. + + - - This property specifies the input used to obtain the seed points to generate particles. diff --git a/Plugins/LagrangianParticleTracker/Testing/LagrangianParticleTrackerReseeding.xml b/Plugins/LagrangianParticleTracker/Testing/LagrangianParticleTrackerReseeding.xml index 62511d3c67..51d3fa96d0 100644 --- a/Plugins/LagrangianParticleTracker/Testing/LagrangianParticleTrackerReseeding.xml +++ b/Plugins/LagrangianParticleTracker/Testing/LagrangianParticleTrackerReseeding.xml @@ -71,7 +71,6 @@ - -- GitLab From 5f0a9f7846bb5553b48f33658cff04b094243cb7 Mon Sep 17 00:00:00 2001 From: Mathieu Westphal Date: Fri, 22 Apr 2022 16:19:21 +0200 Subject: [PATCH 04/11] Updating VTK --- VTK | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VTK b/VTK index 3b249310b0..ed9921c026 160000 --- a/VTK +++ b/VTK @@ -1 +1 @@ -Subproject commit 3b249310b0ebec3a9aabfd65bfeabb0e46dfd266 +Subproject commit ed9921c026d85e7e3237d18d12df7150c6d0bf48 -- GitLab From d2b2ad6e08abf71a2e677dda5ac434932346e950 Mon Sep 17 00:00:00 2001 From: Mathieu Westphal Date: Mon, 9 May 2022 11:27:50 +0200 Subject: [PATCH 05/11] Fixup surface helper --- .../Filters/vtkLagrangianSurfaceHelper.cxx | 29 ------------------- .../Filters/vtkLagrangianSurfaceHelper.h | 6 ---- .../pqIntegrationModelSurfaceHelperWidget.cxx | 4 ++- 3 files changed, 3 insertions(+), 36 deletions(-) diff --git a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.cxx b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.cxx index b9bf0baca3..c831781587 100644 --- a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.cxx +++ b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.cxx @@ -60,35 +60,6 @@ vtkLagrangianSurfaceHelper::~vtkLagrangianSurfaceHelper() delete this->Internals; } -//--------------------------------------------------------------------------- -int vtkLagrangianSurfaceHelper::RequestInformation(vtkInformation* vtkNotUsed(request), - vtkInformationVector** inputVector, vtkInformationVector* vtkNotUsed(outputVector)) -{ - // Add input to the model so it will be able to use it to compute default values - this->IntegrationModel->ClearDataSets(true); - vtkDataObject* input = vtkDataObject::GetData(inputVector[0]); - vtkCompositeDataSet* hdInput = vtkCompositeDataSet::SafeDownCast(input); - vtkDataSet* dsInput = vtkDataSet::SafeDownCast(input); - if (hdInput) - { - vtkSmartPointer iter; - iter.TakeReference(hdInput->NewIterator()); - for (iter->InitTraversal(); !iter->IsDoneWithTraversal(); iter->GoToNextItem()) - { - vtkDataSet* inDataset = vtkDataSet::SafeDownCast(hdInput->GetDataSet(iter)); - if (inDataset) - { - this->IntegrationModel->AddDataSet(inDataset, true, iter->GetCurrentFlatIndex()); - } - } - } - else if (dsInput) - { - this->IntegrationModel->AddDataSet(dsInput, true); - } - return 1; -} - //--------------------------------------------------------------------------- int vtkLagrangianSurfaceHelper::RequestData( vtkInformation*, vtkInformationVector** inputVector, vtkInformationVector* outputVector) diff --git a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.h b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.h index e35553055a..ba855e7df3 100644 --- a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.h +++ b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.h @@ -57,12 +57,6 @@ protected: vtkLagrangianSurfaceHelper(); ~vtkLagrangianSurfaceHelper() override; - /** - * Fill the model with inputs if any. - */ - int RequestInformation(vtkInformation* request, vtkInformationVector** inputVector, - vtkInformationVector* outputVector) override; - /** * Creates the same output type as the input type. */ diff --git a/Plugins/LagrangianParticleTracker/pqIntegrationModelSurfaceHelperWidget.cxx b/Plugins/LagrangianParticleTracker/pqIntegrationModelSurfaceHelperWidget.cxx index 2ea97aa8fe..fa1e176cd7 100644 --- a/Plugins/LagrangianParticleTracker/pqIntegrationModelSurfaceHelperWidget.cxx +++ b/Plugins/LagrangianParticleTracker/pqIntegrationModelSurfaceHelperWidget.cxx @@ -179,6 +179,7 @@ void pqIntegrationModelSurfaceHelperWidget::resetSurfaceWidget(bool force) enumIndex++; // Add a row for each leaf + double defaultValue = 0; for (unsigned int j = 0; j < nLeafs; j++) { QStandardItem* item; @@ -191,9 +192,10 @@ void pqIntegrationModelSurfaceHelperWidget::resetSurfaceWidget(bool force) { item = new QStandardItem(); model->setItem(j, k, item); - double defaultValue = 0; if (defaultValuesIndex < defaultValuesProp->GetNumberOfElements()) { + // defaultValue can be set only once and will be used all the time + // or can be set multiple times if provided defaultValue = defaultValuesProp->GetElement(defaultValuesIndex); defaultValuesIndex++; } -- GitLab From 0974a82419c33e4db027d02a3b2382b9a87ca401 Mon Sep 17 00:00:00 2001 From: Mathieu Westphal Date: Mon, 9 May 2022 11:27:59 +0200 Subject: [PATCH 06/11] Updating VTK --- VTK | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VTK b/VTK index ed9921c026..ad63632b22 160000 --- a/VTK +++ b/VTK @@ -1 +1 @@ -Subproject commit ed9921c026d85e7e3237d18d12df7150c6d0bf48 +Subproject commit ad63632b225a240cfcccf7e4f80679829af6d3b1 -- GitLab From b9cafbea9783eab4a657c8136b61a52357643bd6 Mon Sep 17 00:00:00 2001 From: Mathieu Westphal Date: Mon, 9 May 2022 12:58:55 +0200 Subject: [PATCH 07/11] Update VTK --- VTK | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VTK b/VTK index ad63632b22..bf3ada3f94 160000 --- a/VTK +++ b/VTK @@ -1 +1 @@ -Subproject commit ad63632b225a240cfcccf7e4f80679829af6d3b1 +Subproject commit bf3ada3f94605e14555d8677cff513f53c54e819 -- GitLab From f6570a399267ca425445bc378e0069c015bc56d7 Mon Sep 17 00:00:00 2001 From: Mathieu Westphal Date: Thu, 2 Jun 2022 17:01:30 +0200 Subject: [PATCH 08/11] Fixup model --- .../Filters/LagrangianParticleTracker.xml | 8 ++++++++ .../Filters/vtkLagrangianHelperBase.cxx | 16 ---------------- .../Filters/vtkLagrangianHelperBase.h | 17 ++--------------- .../Filters/vtkLagrangianSeedHelper.cxx | 11 +++++------ .../Filters/vtkLagrangianSeedHelper.h | 13 ++++++++++++- .../Filters/vtkLagrangianSurfaceHelper.cxx | 1 - 6 files changed, 27 insertions(+), 39 deletions(-) diff --git a/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml b/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml index 89ad5b5db2..3250a7390e 100644 --- a/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml +++ b/Plugins/LagrangianParticleTracker/Filters/LagrangianParticleTracker.xml @@ -631,6 +631,14 @@ This property specifies the integration model to use to generate data. + + + + + Specify the locator used to locate cells in the flow input + IntegrationModel = vtkLagrangianMatidaIntegrationModel::New(); -} - -//--------------------------------------------------------------------------- -vtkLagrangianHelperBase::~vtkLagrangianHelperBase() -{ - this->SetIntegrationModel(nullptr); -} - //---------------------------------------------------------------------------- void vtkLagrangianHelperBase::PrintSelf(ostream& os, vtkIndent indent) { this->Superclass::PrintSelf(os, indent); - os << indent << "IntegrationModel: " << this->IntegrationModel << endl; } //---------------------------------------------------------------------------- diff --git a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianHelperBase.h b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianHelperBase.h index 801d19766b..ca403b4ee1 100644 --- a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianHelperBase.h +++ b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianHelperBase.h @@ -18,8 +18,6 @@ * * * This is an abstract class for Lagrangian helper - * It defines the integration model - * as well as the SetArrayToGenerate method signature */ #ifndef vtkLagrangianHelperBase_h @@ -28,21 +26,12 @@ #include "vtkDataObjectAlgorithm.h" #include "vtkLagrangianParticleTrackerModule.h" // for export macro -class vtkLagrangianBasicIntegrationModel; class VTKLAGRANGIANPARTICLETRACKER_EXPORT vtkLagrangianHelperBase : public vtkDataObjectAlgorithm { public: vtkTypeMacro(vtkLagrangianHelperBase, vtkDataObjectAlgorithm); void PrintSelf(ostream& os, vtkIndent indent) override; - //@{ - /** - * Set/Get the integration model. - */ - void SetIntegrationModel(vtkLagrangianBasicIntegrationModel* integrationModel); - vtkGetObjectMacro(IntegrationModel, vtkLagrangianBasicIntegrationModel); - //@} - /** * Remove all arrays to generate, no more array will be generated */ @@ -60,16 +49,14 @@ public: int secondInt, const char* arrayValues) = 0; protected: - vtkLagrangianHelperBase(); - ~vtkLagrangianHelperBase() override; + vtkLagrangianHelperBase() = default; + ~vtkLagrangianHelperBase() override = default; /** * Parse string array and extract double components from it. */ bool ParseDoubleValues(const char*& arrayString, int numberOfComponents, double* array); - vtkLagrangianBasicIntegrationModel* IntegrationModel; - class vtkInternals; vtkInternals* Internals; diff --git a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.cxx b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.cxx index 0d97e36c40..79ddd870c9 100644 --- a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.cxx +++ b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.cxx @@ -25,7 +25,7 @@ #include "vtkExecutive.h" #include "vtkInformation.h" #include "vtkInformationVector.h" -#include "vtkLagrangianBasicIntegrationModel.h" +#include "vtkLagrangianMatidaIntegrationModel.h" #include "vtkLagrangianParticle.h" #include "vtkNew.h" #include "vtkObjectFactory.h" @@ -35,6 +35,7 @@ #include vtkStandardNewMacro(vtkLagrangianSeedHelper); +vtkCxxSetSmartPointerMacro(vtkLagrangianSeedHelper, IntegrationModel, vtkLagrangianBasicIntegrationModel); class vtkLagrangianSeedHelper::vtkInternals { @@ -66,16 +67,14 @@ public: //--------------------------------------------------------------------------- vtkLagrangianSeedHelper::vtkLagrangianSeedHelper() + : Internals(new vtkLagrangianSeedHelper::vtkInternals()) { - this->Internals = new vtkInternals(); + this->IntegrationModel = vtkSmartPointer::New(); this->SetNumberOfInputPorts(2); } //--------------------------------------------------------------------------- -vtkLagrangianSeedHelper::~vtkLagrangianSeedHelper() -{ - delete this->Internals; -} +vtkLagrangianSeedHelper::~vtkLagrangianSeedHelper() = default; //--------------------------------------------------------------------------- void vtkLagrangianSeedHelper::SetSourceConnection(vtkAlgorithmOutput* algInput) diff --git a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.h b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.h index ce9fbe8bbd..54b4779c18 100644 --- a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.h +++ b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.h @@ -27,7 +27,11 @@ #include "vtkLagrangianHelperBase.h" #include "vtkLagrangianParticleTrackerModule.h" // for export macro +#include "vtkSmartPointer.h" // for SmartPointer +#include + +class vtkLagrangianBasicIntegrationModel; class VTKLAGRANGIANPARTICLETRACKER_EXPORT vtkLagrangianSeedHelper : public vtkLagrangianHelperBase { public: @@ -41,6 +45,11 @@ public: CONSTANT = 1 }; + /** + * Set the integration model. + */ + void SetIntegrationModel(vtkLagrangianBasicIntegrationModel* integrationModel); + /** * Set/Get the seed source input */ @@ -81,8 +90,10 @@ protected: int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override; + vtkSmartPointer IntegrationModel; + class vtkInternals; - vtkInternals* Internals; + std::unique_ptr Internals; private: vtkLagrangianSeedHelper(const vtkLagrangianSeedHelper&) = delete; diff --git a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.cxx b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.cxx index c831781587..58f9459d09 100644 --- a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.cxx +++ b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSurfaceHelper.cxx @@ -24,7 +24,6 @@ #include "vtkFieldData.h" #include "vtkInformation.h" #include "vtkInformationVector.h" -#include "vtkLagrangianBasicIntegrationModel.h" #include "vtkNew.h" #include "vtkObjectFactory.h" #include "vtkSmartPointer.h" -- GitLab From 720db83473692432301ac2f8b65cc6f4e2bf2b39 Mon Sep 17 00:00:00 2001 From: Mathieu Westphal Date: Fri, 3 Jun 2022 09:56:29 +0200 Subject: [PATCH 09/11] Improving seed helper --- .../Filters/vtkLagrangianSeedHelper.cxx | 3 +++ .../Filters/vtkLagrangianSeedHelper.h | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.cxx b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.cxx index 79ddd870c9..2d0238d0c7 100644 --- a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.cxx +++ b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.cxx @@ -15,6 +15,7 @@ #include "vtkLagrangianSeedHelper.h" +#include "vtkAbstractCellLocator.h" #include "vtkCell.h" #include "vtkCellData.h" #include "vtkCompositeDataIterator.h" @@ -36,6 +37,7 @@ vtkStandardNewMacro(vtkLagrangianSeedHelper); vtkCxxSetSmartPointerMacro(vtkLagrangianSeedHelper, IntegrationModel, vtkLagrangianBasicIntegrationModel); +vtkCxxSetSmartPointerMacro(vtkLagrangianSeedHelper, Locator, vtkAbstractCellLocator); class vtkLagrangianSeedHelper::vtkInternals { @@ -108,6 +110,7 @@ int vtkLagrangianSeedHelper::RequestData( // Clear previously setup flow this->IntegrationModel->ClearDataSets(); + this->IntegrationModel->SetLocator(this->Locator); // Check flow dataset type vtkCompositeDataSet* hdFlow = vtkCompositeDataSet::SafeDownCast(flow); diff --git a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.h b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.h index 54b4779c18..dd340fe65b 100644 --- a/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.h +++ b/Plugins/LagrangianParticleTracker/Filters/vtkLagrangianSeedHelper.h @@ -32,6 +32,7 @@ #include class vtkLagrangianBasicIntegrationModel; +class vtkAbstractCellLocator; class VTKLAGRANGIANPARTICLETRACKER_EXPORT vtkLagrangianSeedHelper : public vtkLagrangianHelperBase { public: @@ -50,6 +51,11 @@ public: */ void SetIntegrationModel(vtkLagrangianBasicIntegrationModel* integrationModel); + /** + * Set the locator. + */ + void SetLocator(vtkAbstractCellLocator* locator); + /** * Set/Get the seed source input */ @@ -91,6 +97,7 @@ protected: int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override; vtkSmartPointer IntegrationModel; + vtkSmartPointer Locator; class vtkInternals; std::unique_ptr Internals; -- GitLab From 8fc0d86b0080db4d36c6992035262ccdca0f50cb Mon Sep 17 00:00:00 2001 From: Mathieu Westphal Date: Fri, 3 Jun 2022 09:57:01 +0200 Subject: [PATCH 10/11] Updating VTK --- VTK | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VTK b/VTK index bf3ada3f94..707a1ebcce 160000 --- a/VTK +++ b/VTK @@ -1 +1 @@ -Subproject commit bf3ada3f94605e14555d8677cff513f53c54e819 +Subproject commit 707a1ebcce579264d3f03e7c7dea858fcdf40c8e -- GitLab From 4e3d7eb96c2a9d96b0ff6c228641c2ce626ac950 Mon Sep 17 00:00:00 2001 From: Mathieu Westphal Date: Fri, 3 Jun 2022 10:26:20 +0200 Subject: [PATCH 11/11] Fixup vtk --- VTK | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VTK b/VTK index 707a1ebcce..bcfaf22150 160000 --- a/VTK +++ b/VTK @@ -1 +1 @@ -Subproject commit 707a1ebcce579264d3f03e7c7dea858fcdf40c8e +Subproject commit bcfaf22150a1646c4b6f313861d6aa06407180f9 -- GitLab