sjtuwangding / msp-cfdemcoupling Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
我在使用semi求解器计算自己修改过的算例时,遇到错误,下面是错误信息:
“Selecting momCoupleModel: implicitCouple
Construct implicitCouple model...
ERROR on proc 6: Illegal length used in CfdDatacouplingMPI::allocate_external (../cfd_datacoupling_mpi.cpp:160)”
请问这个问题该怎么解决呢?
我把coupling文件设置放在下面:
/---------------------------------------------------------------------------
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.4 |
| \ / A nd | Web: http://www.openfoam.org |
| \/ M anipulation | |
*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object couplingProperties;
}
/* ---------------------------- sub-models & settings ---------------------------- */
modelType Bfull; // A or B
couplingInterval 10;
expandedCellScale 4;
allowUseSubCFDTimeStep false;
globalForce mixGlobalForce;
useGuoBBOEquation false;
useDDtVoidFraction true;
forceModels
(
Archimedes
mixDragForce
mixVirtualMassForce
mixMeiLiftForce
mixGradPForce // ++++++++++++
mixViscForce // ++++++++++++
);
momCoupleModels
(
implicitCouple
);
voidFractionModel mix; // divided, centre, mix
locateModel engineMix; // engine, engineIB, engineMix
meshMotionModel noMeshMotion;
dataExchangeModel twoWayMPI;
averagingModel dense; // dense dilute
turbulenceModelType turbulenceProperties;
/* ---------------------------- sub-model properties ------------------------- */
implicitCoupleProps
{
velFieldName "U";
granVelFieldName "Us";
voidFractionFieldName "voidFraction";
}
"(globalForceProps|mixGlobalForceProps)"
{
verbose true;
GaussCoreEff 3;
velFieldName "U";
voidFractionFieldName "voidFraction";
gravityFieldName "g";
}
ArchimedesProps
{
treatForceExplicitInMomEquation false;
treatForceBothCFDAndDEM false; //
treatDEMForceImplicit false;
verbose true;
interpolation false;
scalarViscosity false; //++++++
}
mixDragForceProps
{
dragModelName "Gidaspow";
treatForceExplicitInMomEquation false;
treatForceBothCFDAndDEM true;
treatDEMForceImplicit false;
verbose true;
interpolation false;
scalarViscosity false;
useGaussCoreFunctionRefined true;
}
mixMeiLiftForceProps
{
useSecondOrderTerms false;
treatForceBothCFDAndDEM true;
verbose true;
useGaussCoreFunctionRefined true;
}
mixVirtualMassForceProps
{
treatForceBothCFDAndDEM true;
verbose true;
useGaussCoreFunctionRefined true;
}
/++++++++++++++++++++++++++++++++++++/
mixGradPForceProps
{
treatForceExplicitInMomEquation true;
treatForceBothCFDAndDEM true; //
treatDEMForceImplicit false;
verbose true;
useGaussCoreFunctionRefined true;
}
mixViscForceProps
{
treatForceExplicitInMomEquation true;
treatForceBothCFDAndDEM true; //
treatDEMForceImplicit false;
verbose true;
useGaussCoreFunctionRefined true;
}
/++++++++++++++++++++++++++++++++++++/
twoWayMPIProps
{
liggghtsPath "../DEM/in.liggghts_run";
}
dividedProps
{
alphaMin 0.3;
scaleUpVol 1.0;
}
mixProps
{
verbose true;
alphaMin 0.3;
scaleUpVol 1.0;
}
centreProps
{
alphaMin 0.3;
}
bigParticleProps
{
maxCellsPerParticle 1000;
alphaMin 0.3;
scaleUpVol 1.0;
}
engineProps
{
treeSearch false;
}
engineMixProps
{
verbose true;
treeSearch true;
zSplit 8;
xySplit 16;
}
您好,我在直接编译这个SRC文件的时候,它提示这个错误是什么原因呀:
Make/linux64GccDPInt32Opt/options:54: /libs/libs_5.x: 没有那个文件或目录
mkdir: 无法创建目录"": 没有那个文件或目录
ln: 目标'' 不是目录: 没有那个文件或目录
fatal: Not a git repository (or any of the parent directories): .git
make: *** No rule to make target '/libs/libs_5.x'。 停止。
Make/linux64GccDPInt32Opt/options:54: /libs/libs_5.x: 没有那个文件或目录
mkdir: 无法创建目录"": 没有那个文件或目录
ln: 目标'' 不是目录: 没有那个文件或目录
fatal: Not a git repository (or any of the parent directories): .git
make: *** No rule to make target '/libs/libs_5.x'。 停止。
wmake error: file 'Make/linux64GccDPInt32Opt/sourceFiles' could not be created in /home/hugaoyang/MSP-CFDEMcoupling-main/src
我是用insert/stream持续生成颗粒。但是,每次颗粒数量更新之后,就会报错。用piso、semi、mix和IB都试了,报错大概是下面这样:
Total # of neighbors = 1
Ave neighs/atom = 0.125
Neighbor list builds = 1
Dangerous builds = 0
Run LIGGGHTS - done
number of particles: 8
cfdemCloud: Reset Us fields - done
cfdemCloud: Reset Us weight fields - done
Reset voidFraction fields - done
cfdemCloud: Reset voidFraction fields - done
Reset volumeFraction fields - done
cfdemCloud: Reset volumeFraction fields - done
cfdemCloud: Reset implicit force fields - done
cfdemCloud: Reset Explicit force fields - done
cfdemCloud: Reset Ksl fields - done
free(): invalid pointer
free(): invalid pointer
[yin-virtual-machine:96401] *** Process received signal ***
[yin-virtual-machine:96401] Signal: Aborted (6)
[yin-virtual-machine:96401] Signal code: (-6)
定位到代码里面,是在cfdem_cloud_semi里面,用parCloud_.impForces() 和parCloud_.expForces() 的时候出的问题:
//! \brief 重新分配内存
void cfdemCloudMix::reallocate() {
int number = numberOfParticles();
// allocate memory of data exchanged with liggghts
dataExchangeM().realloc(parCloud_.radii(), base::makeShape1(number), parCloud_.radiiPtr(), 0.0);
dataExchangeM().realloc(parCloud_.positions(), base::makeShape2(number, 3), parCloud_.positionsPtr(), 0.0);
dataExchangeM().realloc(parCloud_.velocities(), base::makeShape2(number, 3), parCloud_.velocitiesPtr(), 0.0);
dataExchangeM().realloc(parCloud_.DEMForces(), base::makeShape2(number, 3), parCloud_.DEMForcesPtr(), 0.0);
dataExchangeM().realloc(parCloud_.DEMTorques(), base::makeShape2(number, 3), parCloud_.DEMTorquesPtr(), 0.0);
dataExchangeM().realloc(parCloud_.cds(), base::makeShape1(number), parCloud_.cdsPtr(), 0.0);
dataExchangeM().realloc(parCloud_.fluidVel(), base::makeShape2(number, 3), parCloud_.fluidVelPtr(), 0.0);
dataExchangeM().realloc(parCloud_.angularVelocities(), base::makeShape2(number, 3), parCloud_.angularVelocitiesPtr(),
0.0);
// allocate memory of data not exchanged with liggghts
parCloud_.particleOverMeshNumber() = std::move(base::CITensor1(base::makeShape1(number), 0));
parCloud_.dimensionRatios() = std::move(base::CDTensor1(base::makeShape1(number), -1.0));
parCloud_.impForces() = std::move(base::CDTensor2(base::makeShape2(number, 3), 0.0));
parCloud_.expForces() = std::move(base::CDTensor2(base::makeShape2(number, 3), 0.0));
parCloud_.particleRootProcIDs() = std::move(base::CITensor1(base::makeShape1(number), -1));
parCloud_.findCellIDs() = std::move(base::CITensor1(base::makeShape1(number), -1));
parCloud_.findMpiCellIDs() = std::move(base::CITensor1(base::makeShape1(number), -1));
parCloud_.findExpandedCellIDs() = std::move(base::CITensor1(base::makeShape1(number), -1));
}
请问下,这是不支持颗粒数量变化吗,还是说哪里设置有问题呢
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.