401 std::cout <<
"Running Test__ModuleSurfaceData" << std::endl;
404 COM_LOAD_MODULE_STATIC_DYNAMIC(OpenFoamFSI,
"OFModule");
407 std::string suffix =
"/share/Testing/test_data/HronTurekFsi";
409 std::string testDir = IRAD::Sys::CWD() +
"/UnitTestDataSurfaceData";
411 std::string fluidDir = testDir +
"/fluid";
412 std::string OrgDir = IRAD::Sys::CWD();
413 IntDir = IRAD::Sys::ChDir(fluidDir);
418 dummy2[0] =
const_cast<char *
>(std::string(
"DataReg").c_str());
421 int initHandle = COM_get_function_handle(
"OFModule.InitFoam");
422 COM_call_function(initHandle, &dummy1, &dummy2, &verb);
427 COM_get_panes(
"OFModule", &numPanes, &paneList);
430 int pane = paneList[0];
433 int status = COM_get_status(
"OFModule.pressure", pane);
435 std::cout <<
"ModuleSurfaceData Error: pressure not a valid DataItem. "
436 <<
"status = " << status << std::endl;
437 result.UpdateResult(
"PressureData:Registered",
false);
440 result.UpdateResult(
"PressureData:Registered",
true);
445 COM_Type getDataItemType;
446 int getDataItemComponents;
447 std::string getDataItemUnits;
448 COM_get_dataitem(
"OFModule.pressure", &getDataItemLoc, &getDataItemType,
449 &getDataItemComponents, &getDataItemUnits);
451 double* pressure=NULL;
452 COM_get_array(
"OFModule.pressure", pane, &pressure);
458 bool pressureCorrect =
false;
460 int numPresExpected = 168;
461 int numPresCompExpected = 1;
462 COM_get_size(
"OFModule.pressure", pane, &numPres);
464 if (numPres != numPresExpected || numPresCompExpected != getDataItemComponents) {
465 std::cout <<
"Wrong number of pressures registered for this mesh." << std::endl;
466 std::cout <<
"Got " << numPres <<
" Items, Expected: " << numPresExpected << std::endl;
467 std::cout <<
"Got " << getDataItemComponents <<
" Components, Expected: "
468 << numPresCompExpected << std::endl;
470 pressureCorrect =
true;
475 status = COM_get_status(
"OFModule.traction", pane);
477 std::cout <<
"ModuleSurfaceData Error: traction not a valid DataItem."
478 <<
"status = " << status << std::endl;
479 result.UpdateResult(
"TractionData:Registered",
false);
482 result.UpdateResult(
"TractionData:Registered",
true);
485 COM_get_dataitem(
"OFModule.traction", &getDataItemLoc, &getDataItemType,
486 &getDataItemComponents, &getDataItemUnits);
488 double* traction=NULL;
489 COM_get_array(
"OFModule.traction", pane, &traction);
494 bool tractionCorrect =
false;
496 int numTracExpected = 168;
497 int numTracCompExpected = 3;
498 COM_get_size(
"OFModule.traction", pane, &numTrac);
500 if (numTrac != numTracExpected || numTracCompExpected != getDataItemComponents) {
501 std::cout <<
"Wrong number of tractions registered for this mesh." << std::endl;
502 std::cout <<
"Got " << numTrac <<
" Items, Expected: " << numTracExpected << std::endl;
503 std::cout <<
"Got " << getDataItemComponents <<
" Components, Expected: "
504 << numTracCompExpected << std::endl;
506 tractionCorrect =
true;
511 int stepHandle = COM_get_function_handle(
"OFModule.StepFluid");
512 COM_call_function(stepHandle);
520 std::cout <<
"ModuleSurfaceData Error: pressure incorrect "
523 result.UpdateResult(
"PressureData:Correct", pressureCorrect);
524 result.UpdateResult(
"TractionData:Correct", tractionCorrect);
527 IntDir = IRAD::Sys::ChDir(OrgDir);
529 COM_UNLOAD_MODULE_STATIC_DYNAMIC(OpenFoamFSI,
"OFModule");
virtual int GetInputData(std::string sourceDir, std::string destDir)
Function to copy input data from source testing directory for use in unit tests.
std::string SourceDirPath
The string for the testing source directory.