This repository has been archived by the owner on Jun 28, 2024. It is now read-only.
Releases: cea-hpc/NabLab
Releases · cea-hpc/NabLab
v0.4.0
- File extensions change from 'nabla' to 'n' and 'nablagen' to 'ngen'
- New job graph visualization: press F2 key on the ngen file open in the editor
- New "language extension" concept for external functions:
Application DepthInit;
MainModule DepthInit depthInit
{
meshClassName = "CartesianMesh2D";
nodeCoord = X;
time = t;
timeStep = δt;
iterationMax = maxIter;
timeMax = maxTime;
}
StlThread
{
outputPath = "/DepthInit/src-gen-cpp/stl-thread";
extension BatiLib providedBy BatiLibCpp;
}
- Support of multiple n files composed in ngen into a unique dataflow graph:
Application HydroRemap;
MainModule Hydro h
{
meshClassName = "CartesianMesh2D";
nodeCoord = X;
time = t;
timeStep = δt;
iterationMax = maxIter;
timeMax = maxTime;
}
AdditionalModule Remap r1
{
r1.X = h.X;
r1.rv1 = h.hv1;
r1.rv2 = h.hv4;
}
AdditionalModule Remap r2
{
r2.X = h.X;
r2.rv1 = h.hv3;
r2.rv3 = h.hv6;
}
v0.3.3
- New features in the C++ and Java mesh libraries
- LaTeX formula color available in project options and scrollbars added into the view
- New time iterator feature to support two iterators at the same level:
iterate n while (t^{n+1} < maxTime && n+1 < maxIter),
{
k while (k+1 < maxIterK);
l while (l+1 < maxIterL);
}
- NabLab console improved with messages during code generation
- LevelDB variable persistence supported in Java
- Options can have no default value
- Options become optional in Json file if they have a default value (mandatory otherwise)
- Mesh becomes an external component initialized with a Json "mesh" block. The nablagen file needs a
meshClassName
property:
SimulationVariables
{
meshClassName = "CartesianMesh2D";
nodeCoord = X;
time = t;
timeStep = δt;
iterationMax = maxIterations;
timeMax = stopTime;
}
v0.3.2
erf
mathematical function added into nabla library- Initialization of external classes through json data file. This feature is mainly used to initialize variables from an external file. An example is available here : https://github.com/cea-hpc/NabLab/tree/master/tests/NablaTest/src/depthinit
v0.3.1
- New solveLinearSystem function with a x0
- Refactoring of the mesh Java library
- New syntax for connectivities which always return a set (can be a singleton) and are always referenced by a loop
connectivity nodes: → {node};
connectivity cells: → {cell};
connectivity faces: → {face};
connectivity neighbourCells: cell → {cell};
connectivity nodesOfFace: face → {node};
connectivity nodesOfCell: cell → {node};
connectivity commonFace: cell × cell → face; // singleton
ComputeOutgoingFlux: ∀j1∈cells(), outgoingFlux{j1} = δt/V{j1}
* ∑{j2∈neighbourCells(j1)}(∑{cf∈commonFace(j1,j2)}( (u^{n}{j2}-u^{n}{j1})
/ norm(center{j2}-center{j1}) * surface{cf}));
v0.3.0
- Performance of Integrated Development Environment improved
- New interactive Job Graph view in NabLab perspective
- New
while
instruction - Bug fix on jobs Hierarchical Logical Time computation
- Improved naming index of reduction variables
- Post-processing variables (
outputPeriod
,lastDump
) moved from IrModule to PostProcessingInfo - Jobs sorted by
at
andname
in the IR model
v0.2.1
Minor improvements of version 0.2.0 to prepare a new test case:
- dump of output variables forced after last iteration
- old mandatory options can stay options or become variables
v0.2.0
- Environment upgraded to Java 11 and Eclipse 2020-03
- MutiArray mixing static/dynamic dimensions
- Header files (.h) created by all C++ generators
- Json user data file generated with option default values
- Json editor integrated to NabLab product
- Vectors data supported in VTK files
- New user friendly nablagen syntax
v0.1.3
- Bug fix on STL thread parallel_for
- Unary operator '-' added on vectors in cpplib
- Various improvements in CMakeLists.txt of cpplib
- New option keyword and removal of const keyword (const automatically inserted during generation)
- In generated C++, methods representing NabLab functions replaced by C++ functions at the beginning of the generated file (to be used during option definition).
- Optimization of job dispatching during HLTs computation to reduce generation times
v0.1.2
- Index and indices stored in IR model (instead of being computed during generation)
- Improvements of the C++ NabLab mesh library
- New C++ STL based multi-threaded backend
- "Modern CMake" support
- Instructions to store sets and items in variables (1, 2)
- Instruction to get the number of elements of a set (3)
- Dynamic base types with const integer expressions (4)
- Enhancement of loops to get a counter integer variable (5)
- Exit instructions with a message (6)
const V=100;
ComputeCjr: ∀j∈cells(), {
item n = topLeftNode(); // (1)
set rCellsJ = nodesOfCell(j); // (2)
const cardRCellsJ = card(rCellsJ); // (3)
ℝ[cardRCellsJ] tmp; // (4)
∀ r, ir ∈ rCellsJ, { // (5)
tmp[ir] = X{r}[0];
C{j,r} = 0.5 * (X{r+1} - X{r-1});
}
if (V<100) exit "Not allowed: V<100"; // (6)
}
v0.1.1
Bug fix on C++ generation and new mesh connectivities