Skip to content
This repository was archived by the owner on Mar 27, 2018. It is now read-only.
This repository was archived by the owner on Mar 27, 2018. It is now read-only.

Problem with test_suite #45

@nightkeo

Description

@nightkeo

Dear doc Benduson,
I compiled BOUT and after running test_suite one test failed: initial_test. In particularly, function mixmode and mixmode_suite failed. How to solve this problem?

And what is the virsion of python requasted?

Machine: Ubuntu 14.04.5 on the VirtualBox.

make_config file:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

configuration file for BOUT++

September 2008: Converted to use autoconf. Can be manually edited

for the (very) rare occasions when autoconf fails

extra compilation flags:

-DCHECK Enables a host of additional checks on each operation

such as uninitialised data. Helps when debugging

-DTRACK Keeps track of variable names.

Enables more useful error messages

for SSE2: -msse2 -mfpmath=sse

This must also specify one or more file formats

-DPDBF PDB format (need to include pdb_format.cxx)

-DNCDF NetCDF format (nc_format.cxx)

PETSc config variables need to be first, else they may clobber other

options (e.g. CXX, CXXFLAGS)

Created this variable so that a user won't overwrite the CXXFLAGS variable

on the command line, just add to this one

BOUT_FLAGS = $(CXXFLAGS) -g -O2 -O -DCHECK=2 -DSIGHANDLE -DBACKTRACE -DNCDF -DBOUT_HAS_PVODE -std=c++11

Specify the MPI C++ compiler in CXX

CXX = mpic++
CC = $(CXX)

AR = ar
ARFLAGS = cruU
RANLIB = ranlib
MKDIR = @mkdir@

####################################################################

Do not need to alter anything below

####################################################################

LD = $(CXX)
LDFLAGS =

####################################################################

Extra (optional) source files, includes and libs

NOTE: EXTRA_SRC must include a solver (solver.cxx or ida_solver.cxx)

and a file format (nc_format.cxx or pdb_format.cxx)

####################################################################

EXTRA_INCS =
EXTRA_LIBS = -lfftw3 -lnetcdf -lnetcdf_c++ -L$(BOUT_TOP)/lib -lpvode -lpvpre

PRECON_SOURCE =
FACETS_SOURCE =

####################################################################

These are used for compiling physics modules using BOUT++ library

####################################################################

Files that are needed by configure and should be dependencies for 'all'

OBJ = $(SOURCEC:%.cxx=%.o)
LIB = $(BOUT_TOP)/lib/libbout++.a

BOUT_INCLUDE = -I$(BOUT_TOP)/include $(CXXINCLUDE) $(EXTRA_INCS)
BOUT_LIBS = -lm -L$(BOUT_TOP)/lib -lbout++ $(EXTRA_LIBS)

#DEPS = $(SOURCEC:.cxx=.d)
CHANGED = $(shell find -f $(BOUT_TOP)/include $(BOUT_TOP)/src -type f ( -name *.cxx -or -name *.h ) -newer $(LIB) -print 2> /dev/null)

Need to use ifndef because TARGET could be set in a file (as opposed to the command line or environment variable)

This will set a default if no TARGET is provided

ifndef TARGET
TARGET = $(SOURCEC:%.cxx=%)
endif

####################################################################

Definining stuff for recursive make

####################################################################

Phony targets since they are directory names

.PHONY: $(DIRS) lib install

all: $(BOUT_TOP)/config.status $(BOUT_TOP)/make.config $(DIRS) $(TARGET)

####################################################################

Recursively run make through subdirs

####################################################################

$(DIRS):
@$(MAKE) --no-print-directory -s -C $@ all

Create 'lib' and 'include' incase they don't exist

$(BOUT_TOP)/include $(BOUT_TOP)/lib:
$(MKDIR) $@

####################################################################

Install header files and libraries

####################################################################
prefix = /usr/local
exec_prefix = ${prefix}
install: all
@$(MKDIR) $(DESTDIR)${prefix}
@$(MKDIR) $(DESTDIR)${prefix}/include
@$(MKDIR) $(DESTDIR)${prefix}/lib
@echo "Installing header files into $(DESTDIR)${prefix}/include"
@cp include/.hxx $(DESTDIR)${prefix}/include
@echo "Installing library files into $(DESTDIR)${exec_prefix}/lib"
@cp lib/
.a $(DESTDIR)${exec_prefix}/lib

####################################################################

A bit of a clever hack that determines wheter the TARGET variable is 'lib'

then, if true, adds the .o files to libbout++.a, else, it links the .o's

into an executable

####################################################################

ifeq ("$(TARGET)", "lib")
#BEGIN 'lib'

####################################################################

The prerquisites of any .o file should depend on

$(BOUT_TOP)/make.config

$(BOUT_TOP)/makefile

which are generated by configuration

####################################################################

#-include $(DEPS)

This automatically generates dependency rules

#%.d : %.cxx

-@$(CXX) $(BOUT_INCLUDE) $(BOUT_FLAGS) -MF"$@" -MG -MP -MM -MT"$(<:.cxx=.o)" -fsyntax-only "$<" 2> /dev/null

####################################################################

Notes about the different flags:

-MF write the generated dependency rule to a file

-MG assume missing headers will be generated and don't stop with an error

-MM generate dependency rule for prerequisite, skipping system headers

-MP add phony target for each header to prevent errors when header is missing

-MT add a target to the generated dependency

####################################################################

####################################################################

Builds the library with $(OBJ) which is defined from the SOURCEC variable

####################################################################

lib: makefile $(BOUT_TOP)/make.config $(BOUT_TOP)/include $(BOUT_TOP)/lib $(OBJ)
ifneq ("$(OBJ)foo", "foo")
@echo "Adding $(OBJ) to libbout++.a"
@$(AR) $(ARFLAGS) $(LIB) $(OBJ)
@$(RANLIB) $(LIB)
endif

#END 'lib'
else

ifeq ("$(TARGET)", "sub")

LIB=$(MODULE_DIR)/$(SUB_NAME).a

sub: makefile $(BOUT_TOP)/make.config $(BOUT_TOP)/include $(BOUT_TOP)/lib $(OBJ)
ifneq ("$(OBJ)foo", "foo")
@echo "Adding $(OBJ)"
@$(AR) cru $(LIB) $(OBJ)
@$(RANLIB) $(LIB)
endif

else

####################################################################

Make libbout++.a if it doesn't exist with the checklib target

####################################################################
%.a:
@echo "Rebuilding out-of-date bout++ library"
@$(MAKE) --no-print-directory -C $(BOUT_TOP)

####################################################################

Make the target (e.g. gas_compress)

####################################################################
SUB_LIBS=$(DIRS:%=%.a)

$(TARGET).cxx: checklib
$(TARGET).o: $(LIB)
$(TARGET): makefile $(BOUT_TOP)/make.config $(OBJ) $(SUB_LIBS)
@echo " Linking" $(TARGET)
@$(LD) $(LDFLAGS) -o $(TARGET) $(OBJ) $(BOUT_LIBS) $(SUB_LIBS)

checklib:
ifneq ("$(CHANGED)foo", "foo")
@echo "Rebuilding out-of-date bout++ library"
@$(MAKE) --no-print-directory -C $(BOUT_TOP)
endif

endif

endif

%.o: $(BOUT_TOP)/make.config %.cxx
@echo " Compiling " $(@f:.o=.cxx)
@$(CXX) $(BOUT_INCLUDE) $(BOUT_FLAGS) -c $(@f:.o=.cxx) -o $@

####################################################################

Clean target. Pretty self explanatory.

NOTE: See that double colon (::) below? That's signifies a rule that can be added to later

See:

http://owen.sj.ca.us/~rk/howto/slides/make/slides/makecolon.html

####################################################################

clean::
-@$(RM) -rf $(OBJ) $(DEPS) $(TARGET)
@for pp in $(DIRS); do echo " " $$pp cleaned; $(MAKE) --no-print-directory -C $$pp clean; done

distclean: clean
@echo include cleaned

Removing the externalpackage installation. When we have more packages, need a better way

@$(RM) -rf $(BOUT_TOP)/include/pvode
@echo lib cleaned
@$(RM) -rf $(BOUT_TOP)/lib/*
-@$(RM) $(BOUT_TOP)/externalpackages/PVODE/lib/*.a
-@$(RM) $(BOUT_TOP)/externalpackages/PVODE/source/obj/*.o
-@$(RM) $(BOUT_TOP)/externalpackages/PVODE/precon/obj/*.o
-@$(RM) -rf $(BOUT_TOP)/autom4te.cache make.config
@echo externalpackages cleaned
@touch $(BOUT_TOP)/configure
@echo autom4te.cache cleaned

####################################################################

Documentation

####################################################################

MANUAL_DIR=$(BOUT_TOP)/manual

doxygen:
cd $(MANUAL_DIR)/doxygen && doxygen Doxyfile

breathe-autogen: doxygen
breathe-apidoc -f -o $(MANUAL_DIR)/sphinx/_breathe_autogen $(MANUAL_DIR)/doxygen/bout/xml

sphinx-docs-html: breathe-autogen
sphinx-build -b html $(MANUAL_DIR)/sphinx/ $(MANUAL_DIR)/sphinx/_build/

sphinx-docs-latex: breathe-autogen
sphinx-build -b latex $(MANUAL_DIR)/sphinx/ $(MANUAL_DIR)/sphinx/_build/

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

run.log in initial_test

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

BOUT++ version 4.00
Revision: Unknown
MD5 checksum: 946e3d8d5632995b8e2b5f5842f42209
Code compiled on May 8 2017 at 15:10:29

B.Dudson (University of York), M.Umansky (LLNL) 2007
Based on BOUT by Xueqiao Xu, 1999

Processor number: 0 of 4

pid: 17411

Compile-time options:
Checking enabled, level 2
Signal handling enabled
netCDF support enabled
Parallel NetCDF support disabled
OpenMP parallelisation disabled
Reading options file data/BOUT.inp

Getting grid data from options
Option mesh:type = bout (default)
Option mesh:StaggerGrids = false (default)
Setting X differencing methods
First : Second order central (C2)
Second : Second order central (C2)
Upwind : First order upwinding (U1)
Flux : Split into upwind and central (SPLIT)
Setting Y differencing methods
First : Second order central (C2)
Second : Second order central (C2)
Upwind : First order upwinding (U1)
Flux : Split into upwind and central (SPLIT)
Setting Z differencing methods
First : Second order central (C2)
Second : Second order central (C2)
Upwind : First order upwinding (U1)
Flux : Split into upwind and central (SPLIT)
Option mesh:symmetricglobalx = true (data/BOUT.inp)
Option mesh:symmetricGlobalY = false (default)
Loading mesh
Option mesh:nx = 7 (data/BOUT.inp)
Option mesh:ny = 12 (data/BOUT.inp)
Option :mz = 4 (data/BOUT.inp)
Grid size: 7 x 12 x 4
Option :mxg = 1 (data/BOUT.inp)
Option :myg = 1 (data/BOUT.inp)
WARNING: Separatrix location 'ixseps1' not found. Setting to 7
WARNING: Separatrix location 'ixseps2' not found. Setting to 7
WARNING: Branch-cut 'jyseps1_1' not found. Setting to -1
WARNING: Branch-cut 'jyseps1_2' not found. Setting to 6
WARNING: Branch-cut 'jyseps2_1' not found. Setting to 6
WARNING: Branch-cut 'jyseps2_2' not found. Setting to 11
WARNING: Number of inner y points 'ny_inner' not found. Setting to 6
Option :nxpe = 1 (data/BOUT.inp)
Option :IncIntShear = false (default)
Option :periodicX = false (default)
Option :async_send = false (default)
Option :ZMIN = 0 (default)
Option :ZMAX = 1 (default)
EQUILIBRIUM IS SINGLE NULL (SND)
Connection between top of Y processor 3 and bottom of 0 in range 0 <= x < 7
=> This processor sending in down
WARNING adding connection: poloidal index -1 out of range
MYPE_IN_CORE = 1
DXS = 7, DIN = 3. DOUT = -1
UXS = 0, UIN = -1. UOUT = 1
XIN = -1, XOUT = -1
Twist-shift: DI
Option :TwistShift = false (default)
Boundary regions in this processor: core, sol,
done
Option mesh:paralleltransform = identity (default)
Option :append = false (default)
Option :dump_format = nc (default)
Setting up output (dump) file
Option output:parallel = false (default)
Option output:flush = true (default)
Option output:guards = true (default)
Option output:floats = false (default)
Option output:openclose = true (default)
Option output:enabled = true (default)
Option output:init_missing = false (default)
Option output:shiftOutput = false (default)
Using NetCDF format for file 'data/BOUT.dmp.nc'
Variable 'dx' not in mesh options. Setting to 0.000000e+00
WARNING: differencing quantity 'dx' not found. Set to 1.0
Variable 'dy' not in mesh options. Setting to 0.000000e+00
WARNING: differencing quantity 'dy' not found. Set to 1.0
Option :ZMIN = 0 (default)
Option :ZMAX = 1 (default)
Variable 'g11' not in mesh options. Setting to 1.000000e+00
Variable 'g22' not in mesh options. Setting to 1.000000e+00
Variable 'g33' not in mesh options. Setting to 1.000000e+00
Variable 'g12' not in mesh options. Setting to 0.000000e+00
Variable 'g13' not in mesh options. Setting to 0.000000e+00
Variable 'g23' not in mesh options. Setting to 0.000000e+00
Maximum error in diagonal inversion is 0.000000e+00
Maximum error in off-diagonal inversion is 0.000000e+00
Variable 'J' not in mesh options. Setting to 0.000000e+00
WARNING: Jacobian 'J' not found. Calculating from metric tensor
Variable 'Bxy' not in mesh options. Setting to 0.000000e+00
WARNING: Magnitude of B field 'Bxy' not found. Calculating from metric tensor
Calculating differential geometry terms
Communicating connection terms
Option :non_uniform = false (default)
Variable 'd2x' not in mesh options. Setting to 0.000000e+00
WARNING: differencing quantity 'd2x' not found. Calculating from dx
Variable 'd2y' not in mesh options. Setting to 0.000000e+00
WARNING: differencing quantity 'd2y' not found. Calculating from dy
Variable 'ShiftTorsion' not in mesh options. Setting to 0.000000e+00
WARNING: No Torsion specified for zShift. Derivatives may not be correct
Option var_x:function = x (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option var_y:function = y (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option var_z:function = z (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option abs:function = abs(x - 0.5) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option add:function = x + 2 (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option asin:function = asin(y/(2pi)) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option acos:function = acos(y/(2
pi)) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option atan:function = atan(y/(2pi)) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option atan_y:function = atan(y,x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option ballooning:function = ballooning(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option ballooning_n:function = ballooning(x,5) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option cos:function = cos(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option cosh:function = cosh(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option exp:function = exp(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option tanh:function = tanh(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option gauss:function = gauss(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option gauss_width:function = gauss(x, 1.0) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option h:function = h(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option log:function = log(abs(x)) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option max:function = max(4
x,y-pi,z^3) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option min:function = min(4x,y-pi,z^3) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option minus:function = 4 - x (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option mixmode:function = mixmode(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option mixmode_seed:function = mixmode(x, 0.5) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option pi:function = z - pi (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option power:function = power(abs(x), y) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option sin:function = sin(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option sinh:function = sinh(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option sqrt:function = sqrt(abs(x)) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option square:function = y^2 (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option tan:function = tan(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option times:function = 4
y (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option erf:function = erf(x) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)
Option tanhhat:function = tanhhat(x, 0.5, 0.4, 0.3) (data/BOUT.inp)
Option all:scale = 1 (data/BOUT.inp)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions