Skip to content

setLocalConvectionBoundary3D and interpolatedConvection3D not working in v1.8.1

OpenLB – Open Source Lattice Boltzmann Code Forums on OpenLB Bug Reports setLocalConvectionBoundary3D and interpolatedConvection3D not working in v1.8.1

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #10412
    Yupeng
    Participant

    The boundary conditions of setLocalConvectionBoundary3D and interpolatedConvection3D seems fail to work well in version 1.8.1. lts possible l am doing something wrong with the new version of the lib, so any guidance is appreciated.

    The following error will appear when setLocalConvectionBoundary3D is applied.

    In file included from ../../../src/boundary/boundary3D.hh:40,
    from ../../../src/boundary/boundary3D.h:67,
    from ../../../src/olb3D.h:3,
    from ../../../src/olb.h:3,
    from galliumMelting2d.cpp:46:
    ../../../src/boundary/legacy/setLocalConvectionBoundary3D.hh: In instantiation of ‘void olb::setLocalConvectionBoundary(BlockLattice<T, DESCRIPTOR>&, BlockIndicatorF3D<T>&, T*) [with T = double; DESCRIPTOR = descriptors::D3Q7<descriptors::VELOCITY, descriptors::TEMPERATURE, descriptors::OMEGA>]’:
    ../../../src/boundary/legacy/setLocalConvectionBoundary3D.hh:47:45: required from ‘void olb::setLocalConvectionBoundary(SuperLattice<T, DESCRIPTOR>&, FunctorPtr<SuperIndicatorF3D<T> >&&, T*) [with T = double; DESCRIPTOR = descriptors::D3Q7<descriptors::VELOCITY, descriptors::TEMPERATURE, descriptors::OMEGA>]’
    galliumMelting2d.cpp:212:44: required from ‘void prepareLattice(const olb::ThermalUnitConverter<double, olb::descriptors::D3Q19<olb::descriptors::POROSITY, olb::descriptors::VELOCITY_SOLID, olb::descriptors::FORCE, olb::descriptors::OMEGA>, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA> >&, const olb::ThermalUnitConverter<double, olb::descriptors::D3Q19<olb::descriptors::POROSITY, olb::descriptors::VELOCITY_SOLID, olb::descriptors::FORCE, olb::descriptors::OMEGA>, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA> >&, olb::SuperLattice<double, olb::descriptors::D3Q19<olb::descriptors::POROSITY, olb::descriptors::VELOCITY_SOLID, olb::descriptors::FORCE, olb::descriptors::OMEGA> >&, olb::SuperLattice<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA> >&, SuperLatticeCoupling&, olb::SuperGeometry<double, 3>&) [with SuperLatticeCoupling = olb::SuperLatticeCoupling<olb::TotalEnthalpyPhaseChangeCoupling, olb::meta::plain_map<olb::meta::list<olb::names::NavierStokes, olb::names::Temperature>, olb::meta::list<olb::descriptors::VALUED_DESCRIPTOR<double, olb::descriptors::D3Q19<olb::descriptors::POROSITY, olb::descriptors::VELOCITY_SOLID, olb::descriptors::FORCE, olb::descriptors::OMEGA> >, olb::descriptors::VALUED_DESCRIPTOR<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA> > > > >]’
    galliumMelting2d.cpp:474:17: required from here
    ../../../src/boundary/legacy/setLocalConvectionBoundary3D.hh:94:34: error: no matching function for call to ‘olb::BlockLattice<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA> >::addPostProcessor(olb::PostProcessorGenerator3D<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA> >&)’
    94 | _block.addPostProcessor(*postProcessor);
    | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
    In file included from ../../../src/core/core.h:44,
    from ../../../src/core/core2D.h:28,
    from ../../../src/olb2D.h:1,
    from ../../../src/olb.h:1:
    ../../../src/core/blockLattice.h:328:16: note: candidate: ‘void olb::BlockLattice<T, DESCRIPTOR>::addPostProcessor(std::type_index, olb::LatticeR<DESCRIPTOR::d>, olb::PostProcessorPromise<T, DESCRIPTOR>&&) [with T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; olb::LatticeR<DESCRIPTOR::d> = olb::Vector<int, 3>]’
    328 | virtual void addPostProcessor(std::type_index stage,
    | ^~~~~~~~~~~~~~~~
    ../../../src/core/blockLattice.h:328:16: note: candidate expects 3 arguments, 1 provided
    ../../../src/core/blockLattice.h:332:16: note: candidate: ‘void olb::BlockLattice<T, DESCRIPTOR>::addPostProcessor(std::type_index, olb::PostProcessorPromise<T, DESCRIPTOR>&&) [with T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>’
    332 | virtual void addPostProcessor(std::type_index stage,
    | ^~~~~~~~~~~~~~~~
    ../../../src/core/blockLattice.h:332:16: note: candidate expects 2 arguments, 1 provided
    ../../../src/core/blockLattice.h:335:16: note: candidate: ‘void olb::BlockLattice<T, DESCRIPTOR>::addPostProcessor(std::type_index, olb::BlockIndicatorF<T, DESCRIPTOR::d>&, olb::PostProcessorPromise<T, DESCRIPTOR>&&) [with T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; olb::BlockIndicatorF<T, DESCRIPTOR::d> = olb::BlockIndicatorF3D<double>]’
    335 | virtual void addPostProcessor(std::type_index stage,
    | ^~~~~~~~~~~~~~~~
    ../../../src/core/blockLattice.h:335:16: note: candidate expects 3 arguments, 1 provided
    make: *** [../../../default.single.mk:41: galliumMelting2d.o] Error 1

    The following error will appear when interpolatedConvection3D is applied.

    In file included from ../../../src/boundary/boundary3D.hh:28,
    from ../../../src/boundary/boundary3D.h:67,
    from ../../../src/olb3D.h:3,
    from ../../../src/olb.h:3,
    from galliumMelting2d.cpp:46:
    ../../../src/boundary/boundaryPostProcessors3D.hh: In instantiation of ‘void olb::StraightConvectionBoundaryProcessor3D<T, DESCRIPTOR, direction, orientation>::apply(CELL&) [with CELL = olb::cpu::Cell<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, olb::Platform::CPU_SISD>; T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; int direction = 2; int orientation = 1]’:
    ../../../src/core/platform/cpu/sisd/operator.h:382:25: required from ‘void olb::ConcreteBlockO<T, DESCRIPTOR, olb::Platform::CPU_SISD, OPERATOR, olb::OperatorScope::PerCell>::apply(olb::ConcreteBlockLattice<T, DESCRIPTOR, olb::Platform::CPU_SISD>&) [with T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; OPERATOR = olb::StraightConvectionBoundaryProcessor3D<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, 2, 1>]’
    ../../../src/core/platform/cpu/sisd/operator.h:368:8: required from here
    ../../../src/boundary/boundaryPostProcessors3D.hh:115:32: error: subscripted value is neither array nor pointer
    115 | cell[missing[i]] = prevCell[i];
    | ~~~~~~~~^
    ../../../src/boundary/boundaryPostProcessors3D.hh:154:13: error: subscripted value is neither array nor pointer
    154 | prevCell[i] = cell[iPop]
    | ~~~~~~~~^
    ../../../src/boundary/boundaryPostProcessors3D.hh: In instantiation of ‘void olb::StraightConvectionBoundaryProcessor3D<T, DESCRIPTOR, direction, orientation>::apply(CELL&) [with CELL = olb::cpu::Cell<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, olb::Platform::CPU_SISD>; T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; int direction = 2; int orientation = -1]’:
    ../../../src/core/platform/cpu/sisd/operator.h:382:25: required from ‘void olb::ConcreteBlockO<T, DESCRIPTOR, olb::Platform::CPU_SISD, OPERATOR, olb::OperatorScope::PerCell>::apply(olb::ConcreteBlockLattice<T, DESCRIPTOR, olb::Platform::CPU_SISD>&) [with T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; OPERATOR = olb::StraightConvectionBoundaryProcessor3D<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, 2, -1>]’
    ../../../src/core/platform/cpu/sisd/operator.h:368:8: required from here
    ../../../src/boundary/boundaryPostProcessors3D.hh:115:32: error: subscripted value is neither array nor pointer
    115 | cell[missing[i]] = prevCell[i];
    | ~~~~~~~~^
    ../../../src/boundary/boundaryPostProcessors3D.hh:154:13: error: subscripted value is neither array nor pointer
    154 | prevCell[i] = cell[iPop]
    | ~~~~~~~~^
    ../../../src/boundary/boundaryPostProcessors3D.hh: In instantiation of ‘void olb::StraightConvectionBoundaryProcessor3D<T, DESCRIPTOR, direction, orientation>::apply(CELL&) [with CELL = olb::cpu::Cell<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, olb::Platform::CPU_SISD>; T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; int direction = 1; int orientation = 1]’:
    ../../../src/core/platform/cpu/sisd/operator.h:382:25: required from ‘void olb::ConcreteBlockO<T, DESCRIPTOR, olb::Platform::CPU_SISD, OPERATOR, olb::OperatorScope::PerCell>::apply(olb::ConcreteBlockLattice<T, DESCRIPTOR, olb::Platform::CPU_SISD>&) [with T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; OPERATOR = olb::StraightConvectionBoundaryProcessor3D<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, 1, 1>]’
    ../../../src/core/platform/cpu/sisd/operator.h:368:8: required from here
    ../../../src/boundary/boundaryPostProcessors3D.hh:115:32: error: subscripted value is neither array nor pointer
    115 | cell[missing[i]] = prevCell[i];
    | ~~~~~~~~^
    ../../../src/boundary/boundaryPostProcessors3D.hh:154:13: error: subscripted value is neither array nor pointer
    154 | prevCell[i] = cell[iPop]
    | ~~~~~~~~^
    ../../../src/boundary/boundaryPostProcessors3D.hh: In instantiation of ‘void olb::StraightConvectionBoundaryProcessor3D<T, DESCRIPTOR, direction, orientation>::apply(CELL&) [with CELL = olb::cpu::Cell<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, olb::Platform::CPU_SISD>; T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; int direction = 1; int orientation = -1]’:
    ../../../src/core/platform/cpu/sisd/operator.h:382:25: required from ‘void olb::ConcreteBlockO<T, DESCRIPTOR, olb::Platform::CPU_SISD, OPERATOR, olb::OperatorScope::PerCell>::apply(olb::ConcreteBlockLattice<T, DESCRIPTOR, olb::Platform::CPU_SISD>&) [with T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; OPERATOR = olb::StraightConvectionBoundaryProcessor3D<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, 1, -1>]’
    ../../../src/core/platform/cpu/sisd/operator.h:368:8: required from here
    ../../../src/boundary/boundaryPostProcessors3D.hh:115:32: error: subscripted value is neither array nor pointer
    115 | cell[missing[i]] = prevCell[i];
    | ~~~~~~~~^
    ../../../src/boundary/boundaryPostProcessors3D.hh:154:13: error: subscripted value is neither array nor pointer
    154 | prevCell[i] = cell[iPop]
    | ~~~~~~~~^
    ../../../src/boundary/boundaryPostProcessors3D.hh: In instantiation of ‘void olb::StraightConvectionBoundaryProcessor3D<T, DESCRIPTOR, direction, orientation>::apply(CELL&) [with CELL = olb::cpu::Cell<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, olb::Platform::CPU_SISD>; T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; int direction = 0; int orientation = 1]’:
    ../../../src/core/platform/cpu/sisd/operator.h:382:25: required from ‘void olb::ConcreteBlockO<T, DESCRIPTOR, olb::Platform::CPU_SISD, OPERATOR, olb::OperatorScope::PerCell>::apply(olb::ConcreteBlockLattice<T, DESCRIPTOR, olb::Platform::CPU_SISD>&) [with T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; OPERATOR = olb::StraightConvectionBoundaryProcessor3D<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, 0, 1>]’
    ../../../src/core/platform/cpu/sisd/operator.h:368:8: required from here
    ../../../src/boundary/boundaryPostProcessors3D.hh:115:32: error: subscripted value is neither array nor pointer
    115 | cell[missing[i]] = prevCell[i];
    | ~~~~~~~~^
    ../../../src/boundary/boundaryPostProcessors3D.hh:154:13: error: subscripted value is neither array nor pointer
    154 | prevCell[i] = cell[iPop]
    | ~~~~~~~~^
    ../../../src/boundary/boundaryPostProcessors3D.hh: In instantiation of ‘void olb::StraightConvectionBoundaryProcessor3D<T, DESCRIPTOR, direction, orientation>::apply(CELL&) [with CELL = olb::cpu::Cell<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, olb::Platform::CPU_SISD>; T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; int direction = 0; int orientation = -1]’:
    ../../../src/core/platform/cpu/sisd/operator.h:382:25: required from ‘void olb::ConcreteBlockO<T, DESCRIPTOR, olb::Platform::CPU_SISD, OPERATOR, olb::OperatorScope::PerCell>::apply(olb::ConcreteBlockLattice<T, DESCRIPTOR, olb::Platform::CPU_SISD>&) [with T = double; DESCRIPTOR = olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>; OPERATOR = olb::StraightConvectionBoundaryProcessor3D<double, olb::descriptors::D3Q7<olb::descriptors::VELOCITY, olb::descriptors::TEMPERATURE, olb::descriptors::OMEGA>, 0, -1>]’
    ../../../src/core/platform/cpu/sisd/operator.h:368:8: required from here
    ../../../src/boundary/boundaryPostProcessors3D.hh:115:32: error: subscripted value is neither array nor pointer
    115 | cell[missing[i]] = prevCell[i];
    | ~~~~~~~~^
    ../../../src/boundary/boundaryPostProcessors3D.hh:154:13: error: subscripted value is neither array nor pointer
    154 | prevCell[i] = cell[iPop]
    | ~~~~~~~~^
    make: *** [../../../default.single.mk:41: galliumMelting2d.o] Error 1

Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.