mirror of
https://github.com/TREX-CoE/Sherman-Morrison.git
synced 2025-01-12 22:18:36 +01:00
Merge pull request #10 from fmgjcoppens/restructure
Restructuring of file tree
This commit is contained in:
commit
ba0c0c3213
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,11 +1,7 @@
|
|||||||
*.o
|
*.o
|
||||||
*.mod
|
*.mod
|
||||||
.vscode
|
.vscode
|
||||||
cMaponiA3_test*
|
|
||||||
fMaponiA3_test*
|
|
||||||
QMCChem_dataset_test
|
|
||||||
Slater*
|
Slater*
|
||||||
Updates*
|
Updates*
|
||||||
tests/test
|
|
||||||
datasets/datasets.*
|
datasets/datasets.*
|
||||||
|
bin/
|
||||||
|
106
Makefile
106
Makefile
@ -1,68 +1,84 @@
|
|||||||
# ARCH = -xCORE-AVX2
|
## Compilers
|
||||||
|
ARCH = -xCORE-AVX2
|
||||||
## Used compilers
|
|
||||||
H5CXX = h5c++
|
H5CXX = h5c++
|
||||||
CXX = icpc
|
CXX = icpc
|
||||||
FC = ifort
|
FC = ifort
|
||||||
|
|
||||||
## Compiler flags & common obs & libs
|
## Compiler flags
|
||||||
H5CXXFLAGS = -O0 -g
|
H5CXXFLAGS = -O0 -g
|
||||||
CXXFLAGS = -O0 -g -traceback
|
CXXFLAGS = -O0 -g -traceback
|
||||||
FFLAGS = -O0 -g -traceback
|
FFLAGS = -O0 -g -traceback
|
||||||
|
|
||||||
|
INCLUDE = -I $(INC_DIR)/
|
||||||
|
DEPS_CXX = $(OBJ_DIR)/SM_MaponiA3.o
|
||||||
|
DEPS_F = $(DEPS_CXX) $(OBJ_DIR)/SM_MaponiA3_mod.o $(OBJ_DIR)/Helpers_mod.o
|
||||||
FLIBS = -lstdc++
|
FLIBS = -lstdc++
|
||||||
OBJS = SM_MaponiA3.o
|
|
||||||
|
|
||||||
## Deps & objs for C++ cMaponiA3_test_3x3_3
|
SRC_DIR := src
|
||||||
cMaponiA3_test_3x3_3OBJ = cMaponiA3_test_3x3_3.o
|
TST_DIR := tests
|
||||||
fMaponiA3_test_3x3_3OBJ = SM_MaponiA3_mod.o fMaponiA3_test_3x3_3.o
|
INC_DIR := include
|
||||||
fMaponiA3_test_4x4_2OBJ = Helpers_mod.o SM_MaponiA3_mod.o fMaponiA3_test_4x4_2.o
|
OBJ_DIR := build
|
||||||
QMCChem_dataset_testOBJ = Helpers_mod.o SM_MaponiA3_mod.o QMCChem_dataset_test.o
|
BIN_DIR := bin
|
||||||
|
|
||||||
|
|
||||||
## Default build target: build everything
|
|
||||||
all: cMaponiA3_test_3x3_3 fMaponiA3_test_3x3_3 fMaponiA3_test_4x4_2 QMCChem_dataset_test tests/test
|
|
||||||
|
|
||||||
|
|
||||||
## Compile recipes for C++
|
|
||||||
%.o: %.cpp
|
|
||||||
$(CXX) $(ARCH) $(CXXFLAGS) -c -o $@ $<
|
|
||||||
|
|
||||||
## Compile recepies for Fortran
|
|
||||||
%.o: %.f90
|
|
||||||
$(FC) $(ARCH) $(FFLAGS) -c -o $@ $<
|
|
||||||
|
|
||||||
## Explicit recipe to trigger rebuild and relinking when headerfile is changed
|
|
||||||
SM_MaponiA3.o: SM_MaponiA3.cpp Helpers.hpp
|
|
||||||
$(CXX) $(ARCH) $(CXXFLAGS) -fPIC -c -o $@ $<
|
|
||||||
|
|
||||||
|
EXEC := $(BIN_DIR)/cMaponiA3_test_3x3_3 \
|
||||||
|
$(BIN_DIR)/test_h5 \
|
||||||
|
$(BIN_DIR)/fMaponiA3_test_3x3_3 \
|
||||||
|
$(BIN_DIR)/fMaponiA3_test_4x4_2 \
|
||||||
|
$(BIN_DIR)/QMCChem_dataset_test
|
||||||
|
|
||||||
## Build tagets
|
## Build tagets
|
||||||
.PHONY: all clean distclean
|
.PHONY: all clean distclean
|
||||||
|
|
||||||
|
all: $(EXEC)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -vf *.o *.mod
|
@rm -vrf $(OBJ_DIR)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
@rm -vf cMaponiA3_test_3x3_3 \
|
@rm -vrf $(BIN_DIR) \
|
||||||
fMaponiA3_test_3x3_3 fMaponiA3_test_4x4_2 \
|
Slater* Updates.dat
|
||||||
QMCChem_dataset_test \
|
|
||||||
Slater* Updates.dat \
|
|
||||||
tests/test
|
|
||||||
|
|
||||||
|
|
||||||
## Linking the C++ example program
|
#### COMPILING
|
||||||
cMaponiA3_test_3x3_3: $(cMaponiA3_test_3x3_3OBJ) $(OBJS)
|
$(BIN_DIR) $(OBJ_DIR):
|
||||||
$(CXX) $(ARCH) $(CXXFLAGS) -o $@ $^
|
mkdir -p $@
|
||||||
|
|
||||||
## Linking Fortran example program calling the C++ function
|
### IMPLICIT BUILD RULES
|
||||||
fMaponiA3_test_3x3_3: $(fMaponiA3_test_3x3_3OBJ) $(OBJS)
|
## C++ objects
|
||||||
$(FC) $(ARCH) $(FFLAGS) $(FLIBS) -o $@ $^
|
$(OBJ_DIR)/%.o: $(TST_DIR)/%.cpp $(INC_DIR)/* | $(OBJ_DIR)
|
||||||
|
$(CXX) $(CXXFLAGS) $(ARCH) $(INCLUDE) -c -o $@ $<
|
||||||
|
|
||||||
fMaponiA3_test_4x4_2: $(fMaponiA3_test_4x4_2OBJ) $(OBJS)
|
## HDF5/C++ objects
|
||||||
$(FC) $(ARCH) $(FFLAGS) $(FLIBS) -o $@ $^
|
$(OBJ_DIR)/%_h5.o: $(TST_DIR)/%_h5.cpp $(INC_DIR)/* | $(OBJ_DIR)
|
||||||
|
$(H5CXX) $(H5CXXFLAGS) $(INCLUDE) -c -o $@ $<
|
||||||
|
|
||||||
QMCChem_dataset_test: $(QMCChem_dataset_testOBJ) $(OBJS)
|
## Fortran modules
|
||||||
$(FC) $(ARCH) $(FFLAGS) $(FLIBS) -o $@ $^
|
$(OBJ_DIR)/%_mod.o: $(SRC_DIR)/%_mod.f90 | $(OBJ_DIR)
|
||||||
|
$(FC) $(FFLAGS) $(ARCH) -module $(OBJ_DIR)/ -c -o $@ $<
|
||||||
|
|
||||||
tests/test: tests/test.cpp SM_MaponiA3.o
|
## Fortran objects
|
||||||
$(H5CXX) $(ARCH) $(H5CXXFLAGS) -o $@ $^
|
$(OBJ_DIR)/%.o: $(TST_DIR)/%.f90 | $(OBJ_DIR)
|
||||||
|
$(FC) $(FFLAGS) $(ARCH) -I $(OBJ_DIR)/ -c -o $@ $<
|
||||||
|
|
||||||
|
### EXPLICIT BUILD RULES
|
||||||
|
## special compiler flag -fPIC otherwise h5c++ builds fail
|
||||||
|
$(OBJ_DIR)/SM_MaponiA3.o: $(SRC_DIR)/SM_MaponiA3.cpp $(INC_DIR)/* | $(OBJ_DIR)
|
||||||
|
$(CXX) $(CXXFLAGS) -fPIC $(ARCH) $(INCLUDE) -c -o $@ $<
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### LINKING
|
||||||
|
$(BIN_DIR)/cMaponiA3_test_3x3_3: $(OBJ_DIR)/cMaponiA3_test_3x3_3.o $(DEPS_CXX) | $(BIN_DIR)
|
||||||
|
$(CXX) -o $@ $^
|
||||||
|
|
||||||
|
$(BIN_DIR)/test_h5: $(OBJ_DIR)/test_h5.o $(DEPS_CXX) | $(BIN_DIR)
|
||||||
|
$(H5CXX) -o $@ $^
|
||||||
|
|
||||||
|
$(BIN_DIR)/fMaponiA3_test_3x3_3: $(DEPS_F) $(OBJ_DIR)/fMaponiA3_test_3x3_3.o | $(BIN_DIR)
|
||||||
|
$(FC) $(FLIBS) -o $@ $^
|
||||||
|
|
||||||
|
$(BIN_DIR)/fMaponiA3_test_4x4_2: $(DEPS_F) $(OBJ_DIR)/fMaponiA3_test_4x4_2.o | $(BIN_DIR)
|
||||||
|
$(FC) $(FLIBS) -o $@ $^
|
||||||
|
|
||||||
|
$(BIN_DIR)/QMCChem_dataset_test: $(DEPS_F) $(OBJ_DIR)/QMCChem_dataset_test.o | $(BIN_DIR)
|
||||||
|
$(FC) $(FLIBS) -o $@ $^
|
||||||
|
@ -1 +0,0 @@
|
|||||||
icpc -c worker.cpp && ifort -c main.f90 && ifort -lstdc++ worker.o main.o -o test
|
|
23
mwe/main.cpp
23
mwe/main.cpp
@ -1,23 +0,0 @@
|
|||||||
#include <iostream>
|
|
||||||
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
|
|
||||||
typedef int (*to2D)[3]; //pint2 is a pointer to an array of 2 ints
|
|
||||||
int linArray[9] = {0,1,2,3,4,5,6,7,8};
|
|
||||||
|
|
||||||
to2D dArray = (to2D)linArray;
|
|
||||||
|
|
||||||
std::cout << dArray[0][0] << std::endl;
|
|
||||||
std::cout << dArray[0][1] << std::endl;
|
|
||||||
std::cout << dArray[0][2] << std::endl;
|
|
||||||
std::cout << dArray[1][0] << std::endl;
|
|
||||||
std::cout << dArray[1][1] << std::endl;
|
|
||||||
std::cout << dArray[1][2] << std::endl;
|
|
||||||
std::cout << dArray[2][0] << std::endl;
|
|
||||||
std::cout << dArray[2][1] << std::endl;
|
|
||||||
std::cout << dArray[2][2] << std::endl;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
12
mwe/main.f90
12
mwe/main.f90
@ -1,12 +0,0 @@
|
|||||||
program test
|
|
||||||
use iso_c_binding
|
|
||||||
implicit none
|
|
||||||
|
|
||||||
interface
|
|
||||||
subroutine hello() bind(C, name="worker")
|
|
||||||
end subroutine
|
|
||||||
end interface
|
|
||||||
|
|
||||||
call hello()
|
|
||||||
|
|
||||||
end program test
|
|
@ -1,7 +0,0 @@
|
|||||||
#include "worker.h"
|
|
||||||
|
|
||||||
void worker()
|
|
||||||
{
|
|
||||||
std::cout << "Hello, World!" << std::endl;
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#include <iostream>
|
|
||||||
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
void worker();
|
|
||||||
}
|
|
@ -3,13 +3,13 @@
|
|||||||
#include "hdf5/serial/hdf5.h"
|
#include "hdf5/serial/hdf5.h"
|
||||||
#include "H5Cpp.h"
|
#include "H5Cpp.h"
|
||||||
|
|
||||||
#include "../SM_MaponiA3.hpp"
|
#include "SM_MaponiA3.hpp"
|
||||||
#include "../Helpers.hpp"
|
#include "Helpers.hpp"
|
||||||
|
|
||||||
using namespace H5;
|
using namespace H5;
|
||||||
#define DEBUG 1
|
//#define DEBUG 0
|
||||||
|
|
||||||
const H5std_string FILE_NAME( "datasets.small.hdf5" );
|
const H5std_string FILE_NAME( "datasets.hdf5" );
|
||||||
|
|
||||||
void read_int(H5File file, std::string key, unsigned int * data) {
|
void read_int(H5File file, std::string key, unsigned int * data) {
|
||||||
DataSet ds = file.openDataSet(key);
|
DataSet ds = file.openDataSet(key);
|
@ -7,7 +7,7 @@ def rl(rf):
|
|||||||
|
|
||||||
|
|
||||||
with h5py.File('datasets.hdf5', 'w') as f:
|
with h5py.File('datasets.hdf5', 'w') as f:
|
||||||
with open('datasets.short.dat', 'r') as rf:
|
with open('datasets.dat', 'r') as rf:
|
||||||
while(1):
|
while(1):
|
||||||
line = rl(rf)
|
line = rl(rf)
|
||||||
if not line or not line.startswith('#START_PACKET'):
|
if not line or not line.startswith('#START_PACKET'):
|
Loading…
Reference in New Issue
Block a user