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
- This topic has 0 replies, 1 voice, and was last updated 1 week, 5 days ago by Yupeng.
-
AuthorPosts
-
July 1, 2025 at 3:20 pm #10412YupengParticipant
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 1The 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 -
AuthorPosts
- You must be logged in to reply to this topic.