Make basic decomposition-library independend from ThirdParty-software (but load the 'default' libraries before the runtime-selection kicks in)
--HG-- branch : bgschaid/foam3FixesBranch
This commit is contained in:
parent
d073895315
commit
3e6bfe9aea
3 changed files with 29 additions and 5 deletions
|
@ -1,8 +1,4 @@
|
||||||
EXE_INC =
|
EXE_INC =
|
||||||
|
|
||||||
LIB_LIBS = \
|
LIB_LIBS = \
|
||||||
-L$(FOAM_LIBBIN)/dummy \
|
-L$(FOAM_LIBBIN)/dummy
|
||||||
-L$(FOAM_MPI_LIBBIN) \
|
|
||||||
-lscotchDecomp \
|
|
||||||
-lmetisDecomp \
|
|
||||||
-lparMetisDecomp
|
|
||||||
|
|
|
@ -376,6 +376,8 @@ Foam::autoPtr<Foam::decompositionMethod> Foam::decompositionMethod::New
|
||||||
const dictionary& decompositionDict
|
const dictionary& decompositionDict
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
loadExternalLibraries();
|
||||||
|
|
||||||
word decompositionMethodTypeName(decompositionDict.lookup("method"));
|
word decompositionMethodTypeName(decompositionDict.lookup("method"));
|
||||||
|
|
||||||
Info<< "Selecting decompositionMethod "
|
Info<< "Selecting decompositionMethod "
|
||||||
|
@ -407,6 +409,8 @@ Foam::autoPtr<Foam::decompositionMethod> Foam::decompositionMethod::New
|
||||||
const polyMesh& mesh
|
const polyMesh& mesh
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
loadExternalLibraries();
|
||||||
|
|
||||||
word decompositionMethodTypeName(decompositionDict.lookup("method"));
|
word decompositionMethodTypeName(decompositionDict.lookup("method"));
|
||||||
|
|
||||||
Info<< "Selecting decompositionMethod "
|
Info<< "Selecting decompositionMethod "
|
||||||
|
@ -432,6 +436,28 @@ Foam::autoPtr<Foam::decompositionMethod> Foam::decompositionMethod::New
|
||||||
return autoPtr<decompositionMethod>(cstrIter()(decompositionDict, mesh));
|
return autoPtr<decompositionMethod>(cstrIter()(decompositionDict, mesh));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Foam::decompositionMethod::loadExternalLibraries()
|
||||||
|
{
|
||||||
|
wordList libNames(3);
|
||||||
|
libNames[0]=word("scotchDecomp");
|
||||||
|
libNames[1]=word("metisDecomp");
|
||||||
|
libNames[2]=word("parMetisDecomp");
|
||||||
|
|
||||||
|
forAll(libNames,i) {
|
||||||
|
const word libName("lib"+libNames[i]+".so");
|
||||||
|
|
||||||
|
// Info << "Loading " << libName << endl;
|
||||||
|
|
||||||
|
bool ok=dlLibraryTable::open(libName);
|
||||||
|
if(!ok) {
|
||||||
|
WarningIn("decompositionMethod::loadExternalLibraries()")
|
||||||
|
<< "Loading of decomposition library " << libName
|
||||||
|
<< " unsuccesful. Some decomposition methods may not be "
|
||||||
|
<< " available"
|
||||||
|
<< endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
|
@ -107,6 +107,8 @@ private:
|
||||||
//- Disallow default bitwise assignment
|
//- Disallow default bitwise assignment
|
||||||
void operator=(const decompositionMethod&);
|
void operator=(const decompositionMethod&);
|
||||||
|
|
||||||
|
//- load missing libraries to avoid compile-time linking to external dependencies
|
||||||
|
static void loadExternalLibraries();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
Reference in a new issue