diff --git a/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicator.hh b/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicator.hh index 60fa0c7054df3a45cfe2fda3725b7c340ebfe520..b960ae7c9ea5bdb81d9e1a7ca5d548e1180dd127 100644 --- a/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicator.hh +++ b/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicator.hh @@ -26,7 +26,7 @@ #include <dumux/porousmediumflow/sequential/impetproperties.hh> #include <dumux/porousmediumflow/2p/sequential/properties.hh> -#include <dumux/linear/vectorexchange.hh> +#include <dumux/parallel/vectorcommdatahandle.hh> namespace Dumux { @@ -144,7 +144,7 @@ public: #if HAVE_MPI // communicate updated values - using DataHandle = VectorExchange<ElementMapper, ScalarSolutionType>; + using DataHandle = VectorCommDataHandleEqual<ElementMapper, ScalarSolutionType, 0/*elementCodim*/>; DataHandle dataHandle(problem_.elementMapper(), indicatorVector_); problem_.gridView().template communicate<DataHandle>(dataHandle, Dune::InteriorBorder_All_Interface, diff --git a/dumux/porousmediumflow/2p2c/sequential/fv2dtransportadaptive.hh b/dumux/porousmediumflow/2p2c/sequential/fv2dtransportadaptive.hh index fd19773d8485fcc29cf802b697eb321763dbab20..b7937fb722fbd09beeeb9492edf157af861b8c27 100644 --- a/dumux/porousmediumflow/2p2c/sequential/fv2dtransportadaptive.hh +++ b/dumux/porousmediumflow/2p2c/sequential/fv2dtransportadaptive.hh @@ -28,7 +28,7 @@ #include <dune/common/float_cmp.hh> #include <dumux/common/math.hh> -#include <dumux/linear/vectorexchange.hh> +#include <dumux/parallel/vectorcommdatahandle.hh> #include "adaptiveproperties.hh" #include "fvtransport.hh" @@ -305,7 +305,7 @@ void FV2dTransport2P2CAdaptive<TypeTag>::update(const Scalar t, Scalar& dt, Tran // communicate updated values using SolutionTypes = GetProp<TypeTag, Properties::SolutionTypes>; using ElementMapper = typename SolutionTypes::ElementMapper; - using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > >; + using DataHandle = VectorCommDataHandleEqual<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> >, 0/*elementCodim*/>; for (int i = 0; i < updateVec.size(); i++) { DataHandle dataHandle(problem_.variables().elementMapper(), updateVec[i]); diff --git a/dumux/porousmediumflow/2p2c/sequential/fv3dpressureadaptive.hh b/dumux/porousmediumflow/2p2c/sequential/fv3dpressureadaptive.hh index 98ec017f9f5849d35840028a47999283e8176a92..e4972f7d469ae735358e2df1f315b33eac2e28cb 100644 --- a/dumux/porousmediumflow/2p2c/sequential/fv3dpressureadaptive.hh +++ b/dumux/porousmediumflow/2p2c/sequential/fv3dpressureadaptive.hh @@ -35,6 +35,7 @@ #include <dumux/common/math.hh> #include <dumux/io/vtkmultiwriter.hh> #include <dumux/porousmediumflow/2p2c/sequential/adaptiveproperties.hh> +#include <dumux/parallel/vectorcommdatahandle.hh> // include pressure model from Markus #include <dumux/porousmediumflow/sequential/cellcentered/mpfa/properties.hh> @@ -233,7 +234,7 @@ public: using SolutionTypes = GetProp<TypeTag, Properties::SolutionTypes>; using ElementMapper = typename SolutionTypes::ElementMapper; using PressureSolution = GetPropType<TypeTag, Properties::PressureSolutionVector>; - using DataHandle = VectorExchange<ElementMapper, PressureSolution>; + using DataHandle = VectorCommDataHandleEqual<ElementMapper, PressureSolution, 0/*elementCodim*/>; DataHandle dataHandle(problem().variables().elementMapper(), this->pressure()); problem().gridView().template communicate<DataHandle>(dataHandle, diff --git a/dumux/porousmediumflow/2p2c/sequential/fv3dtransportadaptive.hh b/dumux/porousmediumflow/2p2c/sequential/fv3dtransportadaptive.hh index 0a711471e1e0dfea29edadbd9a282bcfeb7047f2..0d62ab64aca023f87abc96ae093bc0733657da86 100644 --- a/dumux/porousmediumflow/2p2c/sequential/fv3dtransportadaptive.hh +++ b/dumux/porousmediumflow/2p2c/sequential/fv3dtransportadaptive.hh @@ -28,7 +28,7 @@ #include <dune/common/float_cmp.hh> #include <dumux/common/math.hh> -#include <dumux/linear/vectorexchange.hh> +#include <dumux/parallel/vectorcommdatahandle.hh> #include "adaptiveproperties.hh" #include "fvtransport.hh" @@ -303,7 +303,7 @@ void FV3dTransport2P2CAdaptive<TypeTag>::update(const Scalar t, Scalar& dt, // communicate updated values using SolutionTypes = GetProp<TypeTag, Properties::SolutionTypes>; using ElementMapper = typename SolutionTypes::ElementMapper; - using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > >; + using DataHandle = VectorCommDataHandleEqual<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> >, 0/*elementCodim*/>; for (int i = 0; i < updateVec.size(); i++) { DataHandle dataHandle(problem().variables().elementMapper(), updateVec[i]); diff --git a/dumux/porousmediumflow/2p2c/sequential/fvmpfal3dinteractionvolumecontaineradaptive.hh b/dumux/porousmediumflow/2p2c/sequential/fvmpfal3dinteractionvolumecontaineradaptive.hh index f5c1c2a69cf3b4a528e506074fd847b9384907be..c6cccc8f62cd89b2a3e9f388390a66203f1b4ae1 100644 --- a/dumux/porousmediumflow/2p2c/sequential/fvmpfal3dinteractionvolumecontaineradaptive.hh +++ b/dumux/porousmediumflow/2p2c/sequential/fvmpfal3dinteractionvolumecontaineradaptive.hh @@ -26,7 +26,6 @@ // dumux environment #include <dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontaineradaptive.hh> -#include <dumux/linear/vectorexchange.hh> namespace Dumux { diff --git a/dumux/porousmediumflow/2p2c/sequential/fvpressuremultiphysics.hh b/dumux/porousmediumflow/2p2c/sequential/fvpressuremultiphysics.hh index 0d95a94d092e057a362737f850a730f3873f1214..8c49192fafe84ed0cd84f44fda469e9d1af663c9 100644 --- a/dumux/porousmediumflow/2p2c/sequential/fvpressuremultiphysics.hh +++ b/dumux/porousmediumflow/2p2c/sequential/fvpressuremultiphysics.hh @@ -28,7 +28,7 @@ // dumux environment #include <dumux/porousmediumflow/2p2c/sequential/fvpressure.hh> -#include <dumux/linear/vectorexchange.hh> +#include <dumux/parallel/vectorcommdatahandle.hh> #include <dumux/material/constraintsolvers/compositionalflash.hh> namespace Dumux { @@ -223,7 +223,7 @@ public: protected: #if HAVE_MPI using ElementMapper = typename SolutionTypes::ElementMapper; - using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<int, 1> > >; + using DataHandle = VectorCommDataHandleEqual<ElementMapper, Dune::BlockVector<Dune::FieldVector<int, 1> >, 0/*elementCodim*/>; #endif // subdomain map diff --git a/dumux/porousmediumflow/2p2c/sequential/fvtransport.hh b/dumux/porousmediumflow/2p2c/sequential/fvtransport.hh index ca31d807015f5509b91d1ad7f55a6e2f64569621..96df1dd835846ab62811639b6b8eacfb2fed6f4d 100644 --- a/dumux/porousmediumflow/2p2c/sequential/fvtransport.hh +++ b/dumux/porousmediumflow/2p2c/sequential/fvtransport.hh @@ -33,7 +33,7 @@ #include <dumux/porousmediumflow/2p2c/sequential/properties.hh> #include <dumux/material/constraintsolvers/compositionalflash.hh> #include <dumux/common/math.hh> -#include <dumux/linear/vectorexchange.hh> +#include <dumux/parallel/vectorcommdatahandle.hh> namespace Dumux { /*! @@ -479,7 +479,7 @@ void FVTransport2P2C<TypeTag>::update(const Scalar t, Scalar& dt, // communicate updated values using SolutionTypes = GetProp<TypeTag, Properties::SolutionTypes>; using ElementMapper = typename SolutionTypes::ElementMapper; - using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > >; + using DataHandle = VectorCommDataHandleEqual<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> >, 0/*elementCodim*/>; for (int i = 0; i < updateVec.size(); i++) { DataHandle dataHandle(problem_.variables().elementMapper(), updateVec[i]); @@ -490,7 +490,7 @@ void FVTransport2P2C<TypeTag>::update(const Scalar t, Scalar& dt, if (localTimeStepping_) { - using TimeDataHandle = VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> >; + using TimeDataHandle = VectorCommDataHandleEqual<ElementMapper, std::vector<LocalTimesteppingData>, 0/*elementCodim*/>; TimeDataHandle timeDataHandle(problem_.elementMapper(), timeStepData_); problem_.gridView().template communicate<TimeDataHandle>(timeDataHandle, @@ -1318,7 +1318,7 @@ void FVTransport2P2C<TypeTag>::updatedTargetDt_(Scalar &dt) // communicate updated values using SolutionTypes = GetProp<TypeTag, Properties::SolutionTypes>; using ElementMapper = typename SolutionTypes::ElementMapper; - using TimeDataHandle = VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> >; + using TimeDataHandle = VectorCommDataHandleEqual<ElementMapper, std::vector<LocalTimesteppingData>, 0/*elementCodim*/>; TimeDataHandle timeDataHandle(problem_.elementMapper(), timeStepData_); problem_.gridView().template communicate<TimeDataHandle>(timeDataHandle, diff --git a/dumux/porousmediumflow/2p2c/sequential/fvtransportmultiphysics.hh b/dumux/porousmediumflow/2p2c/sequential/fvtransportmultiphysics.hh index fb93249722be324bf74c43b9c76dea1c24f41a2a..4b962db5905f3d7fc7b70c739f488b334d82826b 100644 --- a/dumux/porousmediumflow/2p2c/sequential/fvtransportmultiphysics.hh +++ b/dumux/porousmediumflow/2p2c/sequential/fvtransportmultiphysics.hh @@ -25,7 +25,7 @@ #define DUMUX_FVTRANSPORT2P2C_MULTIPHYSICS_HH #include <dumux/porousmediumflow/2p2c/sequential/fvtransport.hh> -#include <dumux/linear/vectorexchange.hh> +#include <dumux/parallel/vectorcommdatahandle.hh> namespace Dumux { /*! @@ -236,7 +236,7 @@ void FVTransport2P2CMultiPhysics<TypeTag>::update(const Scalar t, Scalar& dt, Tr // communicate updated values using SolutionTypes = GetProp<TypeTag, Properties::SolutionTypes>; using ElementMapper = typename SolutionTypes::ElementMapper; - using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > >; + using DataHandle = VectorCommDataHandleEqual<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> >, 0/*elementCodim*/>; for (int i = 0; i < updateVec.size(); i++) { DataHandle dataHandle(problem().variables().elementMapper(), updateVec[i]); diff --git a/dumux/porousmediumflow/sequential/cellcentered/transport.hh b/dumux/porousmediumflow/sequential/cellcentered/transport.hh index ec0e35e7576c9e0e1920ef06733c4f9e38fcc1da..fe564c699c737614b938cb0f535a799c26e6708c 100644 --- a/dumux/porousmediumflow/sequential/cellcentered/transport.hh +++ b/dumux/porousmediumflow/sequential/cellcentered/transport.hh @@ -22,7 +22,7 @@ #include <dune/grid/common/gridenums.hh> #include <dumux/porousmediumflow/sequential/transportproperties.hh> #include <dumux/porousmediumflow/sequential/properties.hh> -#include <dumux/linear/vectorexchange.hh> +#include <dumux/parallel/vectorcommdatahandle.hh> #include <unordered_map> /** @@ -416,7 +416,7 @@ void FVTransport<TypeTag>::update(const Scalar t, Scalar& dt, TransportSolutionT // communicate updated values using SolutionTypes = GetProp<TypeTag, Properties::SolutionTypes>; using ElementMapper = typename SolutionTypes::ElementMapper; - using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > >; + using DataHandle = VectorCommDataHandleEqual<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> >, 0/*elementCodim*/>; DataHandle dataHandle(problem_.elementMapper(), updateVec); problem_.gridView().template communicate<DataHandle>(dataHandle, Dune::InteriorBorder_All_Interface, @@ -424,7 +424,7 @@ void FVTransport<TypeTag>::update(const Scalar t, Scalar& dt, TransportSolutionT if (localTimeStepping_) { - using TimeDataHandle = VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> >; + using TimeDataHandle = VectorCommDataHandleEqual<ElementMapper, std::vector<LocalTimesteppingData>, 0/*elementCodim*/>; TimeDataHandle timeDataHandle(problem_.elementMapper(), timeStepData_); problem_.gridView().template communicate<TimeDataHandle>(timeDataHandle, @@ -549,7 +549,7 @@ void FVTransport<TypeTag>::updatedTargetDt_(Scalar &dt) // communicate updated values using SolutionTypes = GetProp<TypeTag, Properties::SolutionTypes>; using ElementMapper = typename SolutionTypes::ElementMapper; - using TimeDataHandle = VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> >; + using TimeDataHandle = VectorCommDataHandleEqual<ElementMapper, std::vector<LocalTimesteppingData>, 0/*elementCodim*/>; TimeDataHandle timeDataHandle(problem_.elementMapper(), timeStepData_); problem_.gridView().template communicate<TimeDataHandle>(timeDataHandle, diff --git a/dumux/porousmediumflow/sequential/variableclassadaptive.hh b/dumux/porousmediumflow/sequential/variableclassadaptive.hh index 43bf606420d5b14df6282b7753b19803333bf368..cc0f65aa9af8b698cd86b22b5b7ef712726bd0e2 100644 --- a/dumux/porousmediumflow/sequential/variableclassadaptive.hh +++ b/dumux/porousmediumflow/sequential/variableclassadaptive.hh @@ -21,7 +21,7 @@ #include <dune/grid/common/partitionset.hh> #include <dune/grid/utility/persistentcontainer.hh> -#include <dumux/linear/vectorexchange.hh> +#include <dumux/parallel/vectorcommdatahandle.hh> #include "variableclass.hh" /** @@ -200,7 +200,7 @@ public: // communicate ghost data using SolutionTypes = GetProp<TypeTag, Properties::SolutionTypes>; using ElementMapper = typename SolutionTypes::ElementMapper; - using DataHandle = VectorExchange<ElementMapper, std::vector<CellData> >; + using DataHandle = VectorCommDataHandleEqual<ElementMapper, std::vector<CellData>, 0/*elementCodim*/>; DataHandle dataHandle(problem.elementMapper(), this->cellDataGlobal()); problem.gridView().template communicate<DataHandle>(dataHandle, Dune::InteriorBorder_All_Interface,