Skip to content
Snippets Groups Projects
Commit cc2c28d1 authored by Petr Strakos's avatar Petr Strakos
Browse files

test code text

parent 09da505c
No related branches found
No related tags found
No related merge requests found
...@@ -48,13 +48,71 @@ It will generate the CxxFullExampleAdaptor executable file. This can be later ru ...@@ -48,13 +48,71 @@ It will generate the CxxFullExampleAdaptor executable file. This can be later ru
Provided example is a simple MPI program. Main executing part is written in FEDriver.cxx. It is a simulator code that creates computational grid Provided example is a simple MPI program. Main executing part is written in FEDriver.cxx. It is a simulator code that creates computational grid
```javascript {.line-numbers} ```c++
#include ahoj.h #include "FEDataStructures.h"
#include <mpi.h>
int main() { #include <stdio.h>
#include <unistd.h>
#include <iostream>
return 0; #include <stdlib.h>
#ifdef USE_CATALYST
#include "FEAdaptor.h"
#endif
// Example of a C++ adaptor for a simulation code
int main(int argc, char** argv)
{
// Check the input arguments for area size
if (argc < 4) {
printf("Not all arguments for grid definition supplied\n");
return 0;
}
unsigned int pointsX = abs(std::stoi(argv[1]));
unsigned int pointsY = abs(std::stoi(argv[2]));
unsigned int pointsZ = abs(std::stoi(argv[3]));
//MPI_Init(&argc, &argv);
MPI_Init(NULL, NULL);
Grid grid;
unsigned int numPoints[3] = { pointsX, pointsY, pointsZ };
double spacing[3] = { 1, 1.1, 1.3 };
grid.Initialize(numPoints, spacing);
Attributes attributes;
attributes.Initialize(&grid);
#ifdef USE_CATALYST
// The first argument is the program name
FEAdaptor::Initialize(argc - 4, &argv[4]);
#endif
unsigned int numberOfTimeSteps = 1000;
for (unsigned int timeStep = 0; timeStep < numberOfTimeSteps; timeStep++)
{
// use a time step length of 0.1
double time = timeStep * 0.1;
attributes.UpdateFields(time);
#ifdef USE_CATALYST
FEAdaptor::CoProcess(grid, attributes, time, timeStep, timeStep == numberOfTimeSteps - 1);
#endif
// Get the name of the processor
char processor_name[MPI_MAX_PROCESSOR_NAME];
int name_len;
MPI_Get_processor_name(processor_name, &name_len);
printf("This is processor %s, time step: %0.3f\n", processor_name, time);
usleep(500000);
}
#ifdef USE_CATALYST
FEAdaptor::Finalize();
#endif
MPI_Finalize();
return 0;
} }
``` ```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment