diff --git a/src/miniFE_sve/openmp-sve/src/build_sell_sve/Makefile b/src/miniFE_sve/openmp-sve/src/build_sell_sve/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..0b5efb4c3c397a9ad3aff1d8ed8b8290855563a4
--- /dev/null
+++ b/src/miniFE_sve/openmp-sve/src/build_sell_sve/Makefile
@@ -0,0 +1,33 @@
+#-----------------------------------------------------------------------
+# ATTENTION:
+#
+# This file does not enable MPI in the binary, this is just OpenMP
+# only. To enable MPI calls add -DHAVE_MPI to CPPFLAGS
+#
+#-----------------------------------------------------------------------
+
+MINIFE_TYPES =  \
+        -DMINIFE_SCALAR=double   \
+        -DMINIFE_LOCAL_ORDINAL=int      \
+        -DMINIFE_GLOBAL_ORDINAL=int
+
+#MINIFE_MATRIX_TYPE = -DMINIFE_CSR_MATRIX
+#MINIFE_MATRIX_TYPE = -DMINIFE_ELL_MATRIX
+MINIFE_MATRIX_TYPE = -DMINIFE_SELL_MATRIX
+
+#-----------------------------------------------------------------------
+
+CFLAGS = -O3 -fopenmp -march=armv8-a+sve -static
+CXXFLAGS = $(CFLAGS)
+
+CPPFLAGS = -I. -I.. -I../../utils -I../../fem $(MINIFE_TYPES) $(MINIFE_MATRIX_TYPE)
+
+LDFLAGS=
+LIBS=
+
+CXX=g++
+CC=gcc
+
+#-----------------------------------------------------------------------
+
+include make_targets
diff --git a/src/miniFE_sve/openmp-sve/src/build_sell_sve/generate_info_header b/src/miniFE_sve/openmp-sve/src/build_sell_sve/generate_info_header
new file mode 100755
index 0000000000000000000000000000000000000000..469f0b9c81ce652eeb23e4a345f69c0515d37579
--- /dev/null
+++ b/src/miniFE_sve/openmp-sve/src/build_sell_sve/generate_info_header
@@ -0,0 +1,88 @@
+#!/bin/bash
+
+# usage:
+# generate_info_header <compiler> <flags> <header_prefix> <macro_prefix>
+# example:
+#   % generate_info_header g++ -O3 miniFE MINIFE
+# this will cause the appropriate info to be put in a 
+# header named miniFE_info.hpp and the info will be in macros
+# that start with MINIFE.
+#
+# an example of usage can be seen in miniFE/make_targets
+#
+if [ $# != 4 ] ; then
+echo "error, need 4 arguments.";
+exit 1;
+fi
+
+cxx=`which ${1}`
+errcode="$?"
+if [ ${errcode} != "0" ] ; then
+cxx="unknown";
+fi
+echo "CXX: ${cxx}"
+
+cxx_ver=`${1} --version 2>&1`
+errcode="$?"
+if [ ${errcode} != "0" ] ; then
+cxx_ver=`${1} -V 2>&1`;
+errcode="$?"
+if [ ${errcode} != "0" ] ; then
+cxx_ver="unknown";
+fi
+fi
+
+cxx_ver=${cxx_ver// /@}
+cxx_version=""
+for i in $(echo ${cxx_ver});
+do
+ if [ "$cxx_version" == "" ]; then
+    cxx_version=$i;
+ fi
+done
+cxx_version=${cxx_version//@/ }
+echo "Compiler version: ${cxx_version}"
+
+cxxflags=${2}
+hostname=`uname -n`
+errcode="$?"
+if [ ${errcode} != "0" ] ; then
+hostname="unknown";
+fi
+
+kern_name=`uname -s`
+errcode="$?"
+if [ ${errcode} != "0" ] ; then
+kern_name="unknown";
+fi
+
+kern_rel=`uname -r`
+errcode="$?"
+if [ ${errcode} != "0" ] ; then
+kern_rel="unknown";
+fi
+
+proc=`uname -p`
+errcode="$?"
+if [ ${errcode} != "0" ] ; then
+proc="unknown";
+fi
+
+header_prefix=${3}
+macro_prefix=${4}
+
+cat << END_CAT > ${header_prefix}_info.hpp
+#ifndef ${header_prefix}_info_hpp
+#define ${header_prefix}_info_hpp
+
+#define ${macro_prefix}_HOSTNAME "${hostname}"
+#define ${macro_prefix}_KERNEL_NAME "'${kern_name}'"
+#define ${macro_prefix}_KERNEL_RELEASE "'${kern_rel}'"
+#define ${macro_prefix}_PROCESSOR "'${proc}'"
+
+#define ${macro_prefix}_CXX "'${cxx}'"
+#define ${macro_prefix}_CXX_VERSION "'${cxx_version}'"
+#define ${macro_prefix}_CXXFLAGS "'${cxxflags}'"
+
+#endif
+END_CAT
diff --git a/src/miniFE_sve/openmp-sve/src/build_sell_sve/get_common_files b/src/miniFE_sve/openmp-sve/src/build_sell_sve/get_common_files
new file mode 100755
index 0000000000000000000000000000000000000000..a193c73173d61a26acbb2f82ec192e6fcbc86fe2
--- /dev/null
+++ b/src/miniFE_sve/openmp-sve/src/build_sell_sve/get_common_files
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+if [ -f ./YAML_Doc.cpp ] ; then
+  exit 0;
+fi
+
+dir=..
+
+cp ${dir}/YAML_Doc.cpp .
+cp ${dir}/YAML_Doc.hpp .
+cp ${dir}/YAML_Element.cpp .
+cp ${dir}/YAML_Element.hpp .
+
+cp ${dir}/generate_info_header .
+
diff --git a/src/miniFE_sve/openmp-sve/src/build_sell_sve/make_targets b/src/miniFE_sve/openmp-sve/src/build_sell_sve/make_targets
new file mode 100644
index 0000000000000000000000000000000000000000..635cfff541928bf17bbbb52f7c6bd5b794dde665
--- /dev/null
+++ b/src/miniFE_sve/openmp-sve/src/build_sell_sve/make_targets
@@ -0,0 +1,45 @@
+
+OBJS = \
+	BoxPartition.o \
+	YAML_Doc.o \
+	YAML_Element.o
+
+UTIL_OBJS = \
+	param_utils.o \
+	utils.o \
+	mytimer.o
+
+MAIN_OBJ = \
+	main.o
+
+MINIFE_INFO = 1
+MINIFE_KERNELS = 0
+
+vpath %.cpp ../../utils
+
+all:common_files generate_info miniFE.x
+
+miniFE.x:common_files $(MAIN_OBJ) $(OBJS) $(UTIL_OBJS) $(OPTIONAL_OBJS) ../*.hpp generate_info
+	$(INSTRUMENT) $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(MAIN_OBJ) $(OBJS) $(UTIL_OBJS) $(OPTIONAL_OBJS) -o miniFE.x $(LDFLAGS) $(OPTIONAL_LIBS) $(LIBS)
+
+common_files:
+	./get_common_files
+
+generate_info:
+	./generate_info_header "$(CXX)" "$(CXXFLAGS)" "miniFE" "MINIFE"
+
+verify:all
+	./run_tests
+
+%.o:../%.cpp ../*.hpp
+	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -DMINIFE_INFO=$(MINIFE_INFO) -DMINIFE_KERNELS=$(MINIFE_KERNELS) -c $<
+
+%.o:../%.c *.h
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
+
+clean:
+	rm -f *.o *.a *.x *.linkinfo miniFE_info.hpp
+
+realclean: clean
+	rm -f gmon.out gprof.* *~ *.yaml *.TVD.* *.mtx* *.vec* minife_debug*
+