//====================================================================== // Setting filenames //====================================================================== int USERD_set_filenames ( char filename_1[], char filename_2[], char the_path[], int swapbytes ) { #ifdef ENSIGHTDEBUG Info<< "Entering: USERD_set_filenames" << endl << flush; #endif char tmp[100]; label lRoot = strlen(the_path); label lCase = strlen(filename_1); bool cleared = false; while (!cleared) { lRoot = strlen(the_path); lCase = strlen(filename_1); // remove the last '/' from rootDir if (the_path[lRoot-1] == '/') { the_path[lRoot-1] = '\0'; } else { cleared = true; } } rootDir = the_path; // the path is pre-pended to filename_1 // 1 is the 'Geometry' : 2 the 'Result' which is null here // since two_field is FALSE for (label i=0; iboundaryMesh().size(); // set the number of fields and store their names // a valid field must exist for all time-steps runTime.setTime(TimeList.last(), TimeList.size() - 1); IOobjectList objects(*meshPtr, runTime.timeName()); fieldNames = objects.names(); // because of the spray being a 'field' ... // get the availabe number of variables and // check for type (scalar/vector/tensor) label nVar = 0; wordList scalars = objects.names(scalarName); forAll (fieldNames, n) { bool isitScalar = false; forAll(scalars,i) { if (fieldNames[n] == scalars[i]) { isitScalar = true; var2field[nVar++] = n; } } isScalar[n] = isitScalar; } wordList vectors = objects.names(vectorName); forAll (fieldNames, n) { bool isitVector = false; forAll(vectors,i) { if (fieldNames[n] == vectors[i]) { isitVector = true; var2field[nVar++] = n; } } isVector[n] = isitVector; } wordList tensors = objects.names(tensorName); forAll (fieldNames, n) { bool isitTensor = false; forAll(tensors,i) { if (fieldNames[n] == tensors[i]) { isitTensor = true; var2field[nVar++] = n; } } isTensor[n] = isitTensor; } bool lagrangianNamesFound = false; label n = 0; while (!lagrangianNamesFound && n < Num_time_steps) { runTime.setTime(TimeList[n + 1], n + 1); Cloud lagrangian(*meshPtr, cloud::defaultName); n++; if (lagrangian.size() > 0) { lagrangianNamesFound = true; } } IOobject sprayHeader ( "positions", runTime.timeName(), "lagrangian", runTime, IOobject::NO_READ, IOobject::NO_WRITE, false ); if (sprayHeader.headerOk()) { Info << "[Found lagrangian]" << endl; delete sprayPtr; sprayPtr = new Cloud(*meshPtr, cloud::defaultName); IOobjectList objects(*meshPtr, runTime.timeName(), cloud::prefix); lagrangianScalarNames = objects.names(sprayScalarFieldName); lagrangianVectorNames = objects.names(sprayVectorFieldName); isSpray[fieldNames.size()] = true; nSprayVariables += lagrangianScalarNames.size(); nSprayVariables += lagrangianVectorNames.size(); Num_unstructured_parts++; } Current_time_step = Num_time_steps; runTime.setTime(TimeList[Current_time_step], Current_time_step); Num_variables = nVar + nSprayVariables; // Check if second mesh (region) exist. IOobject ensightReaderDictHeader ( IOobject ( "ensightReaderDict", runTime.constant(), *meshPtr, IOobject::MUST_READ, IOobject::NO_WRITE ) ); word secondRegionName("solid"); if(ensightReaderDictHeader.headerOk()) { IOdictionary ensightReaderDict ( IOobject ( "ensightReaderDict", runTime.constant(), *meshPtr, IOobject::MUST_READ, IOobject::NO_WRITE ) ); if (ensightReaderDict.found("secondRegionName")) { secondRegionName = word ( ensightReaderDict.lookup("secondRegionName") ); } if (ensightReaderDict.found("scalingFactor")) { scalingFactor = readScalar ( ensightReaderDict.lookup("scalingFactor") ); } } objectRegistry secondMeshObjReg ( IOobject ( secondRegionName, runTime.timeName(), runTime, IOobject::MUST_READ ) ); IOobject pointsHeader ( "points", runTime.constant(), polyMesh::meshSubDir, secondMeshObjReg ); if(pointsHeader.headerOk()) { secondMeshPtr = new fvMesh ( IOobject ( secondRegionName, runTime.timeName(), runTime, IOobject::MUST_READ ) ); } if (secondMeshPtr) { Num_unstructured_parts += 1; nSecondMeshPatches = secondMeshPtr->boundaryMesh().size(); IOobjectList secondMeshObjects(*secondMeshPtr, runTime.timeName()); secondMeshFieldNames = (const wordList&)secondMeshObjects.names(); label nVar = 0; wordList scalars = secondMeshObjects.names(scalarName); for (label n=0; ntime().findInstance ( meshPtr->dbDir()/fvMesh::meshSubDir, "boundary" ), faMesh::meshSubDir, *meshPtr, IOobject::MUST_READ, IOobject::NO_WRITE ); if(faMeshBoundaryIOobj.headerOk()) { Info << "\nFound finite area mesh" << endl; faMeshPtr = new faMesh(*meshPtr); } if(faMeshPtr) { Num_unstructured_parts += 1; IOobjectList faMeshObjects(faMeshPtr->time(), runTime.timeName()); faMeshFieldNames = (const wordList&)faMeshObjects.names(); Info << faMeshFieldNames << endl; label nVar = 0; wordList scalars = faMeshObjects.names(faScalarName); for (label n=0; n