Commit 86e6d1f4 authored by Kirill Terekhov's avatar Kirill Terekhov
Browse files

Fixes and updates

Silence solvers complaints about parameters.

Updates for Tests/solver_test001

Disable TagVariable and TagVariableArray when USE_AUTODIFF is disabled.

Fixes for Octree example.
parent f97fc84d
......@@ -15,4 +15,5 @@ if(USE_AUTODIFF AND USE_SOLVER AND USE_MESH)
add_subdirectory(ADFVDiscr)
add_subdirectory(ADMFD)
endif(USE_AUTODIFF AND USE_SOLVER AND USE_MESH)
#add_subdirectory(OctreeCutcell)
\ No newline at end of file
#add_subdirectory(OctreeCutcell)
add_subdirectory(Octree)
\ No newline at end of file
CXX=mpicxx
CC=mpicxx
#links for cluster
PETSC_DIR=/data4t/terekhov/Packages/petsc-3.3-p3
PETSC_ARCH=arch-linux2-c-opt
INCPATH = -I../../ #-I/data4t/terekhov/program/include -I${PETSC_DIR}/${PETSC_ARCH}/include -I${PETSC_DIR}/include
OPTFLAGS= -O0 -g -Wall
#OPTFLAGS= -O3
#MYLIBS=../../mspp.a
MYLIBS= ../../msppd.a
CXXFLAGS=$(OPTFLAGS) $(INCPATH)
LDFLAGS=$(OPTFLAGS)
PETSC = -L${PETSC_DIR}/${PETSC_ARCH}/lib/
#-lpetsc -L/usr/X11R6/lib -lX11 -ldmumps -lmumps_common -lmpi_f77 -lscalapack -lpord -lblacs -lparmetis -lmetis -lflapack -lfblas -lmpi -lHYPRE -lsuperlu_dist_2.4
#PETSC+=-lpetsc -L/usr/X11R6/lib64 -lX11 -lpthread -lmpigc4 -lstdc++ -ldmumps -lmumps_common -lscalapack -lpord -lblacs -lparmetis -lmetis -lmpi -lHYPRE -lflapack -lfblas -L/opt/intel/impi/3.2.2.006/lib64 -L/opt/intel/mpi-rt/3.2.2 -lmpigc4 -lmpigf -lmpi ../../ILU2/lib/libilu-2.3.a -lgfortran
PETSC =-lpetsc -L/usr/X11R6/lib -lX11 -lparmetis -lmetis -lmpi_f77 -lflapack -lfblas -lgfortran
ILU2 = ../../ILU2/lib/libilu-2.3.a -lgfortran
LDLIBS=$(MYLIBS) $(PETSC) $(ILU2)
targets=main
all: $(targets)
main: main.o
clean:
rm -f $(targets) *.o
......@@ -27,7 +27,7 @@ if(OPENGL_FOUND)
if(GLUT_FOUND)
include_directories(${OPENGL_INCLUDE_DIR})
include_directories(${GLUT_INCLUDE_DIR})
add_definitions(-D__GRAPHICS__ -g)
add_definitions(-D__GRAPHICS__)
target_link_libraries(Octree ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES})
else(GLUT_FOUND)
message("GLUT not found")
......
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The program to use to edit the cache.
CMAKE_EDIT_COMMAND = /usr/bin/ccmake
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/andre/inmost-root/INMOST-0.1
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/andre/inmost-root/INMOST-0.1
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: install/local
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: install/strip
.PHONY : install/strip/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target package
package: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
cd /home/andre/inmost-root/INMOST-0.1 && /usr/bin/cpack --config ./CPackConfig.cmake
.PHONY : package
# Special rule for the target package
package/fast: package
.PHONY : package/fast
# Special rule for the target package_source
package_source:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
cd /home/andre/inmost-root/INMOST-0.1 && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/andre/inmost-root/INMOST-0.1/CPackSourceConfig.cmake
.PHONY : package_source
# Special rule for the target package_source
package_source/fast: package_source
.PHONY : package_source/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target test
test:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..."
/usr/bin/ctest --force-new-ctest-process $(ARGS)
.PHONY : test
# Special rule for the target test
test/fast: test
.PHONY : test/fast
# The main all target
all: cmake_check_build_system
cd /home/andre/inmost-root/INMOST-0.1 && $(CMAKE_COMMAND) -E cmake_progress_start /home/andre/inmost-root/INMOST-0.1/CMakeFiles /home/andre/inmost-root/INMOST-0.1/examples/Octree/CMakeFiles/progress.marks
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f CMakeFiles/Makefile2 examples/Octree/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/andre/inmost-root/INMOST-0.1/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f CMakeFiles/Makefile2 examples/Octree/clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f CMakeFiles/Makefile2 examples/Octree/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f CMakeFiles/Makefile2 examples/Octree/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/andre/inmost-root/INMOST-0.1 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
examples/Octree/CMakeFiles/Octree.dir/rule:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f CMakeFiles/Makefile2 examples/Octree/CMakeFiles/Octree.dir/rule
.PHONY : examples/Octree/CMakeFiles/Octree.dir/rule
# Convenience name for target.
Octree: examples/Octree/CMakeFiles/Octree.dir/rule
.PHONY : Octree
# fast build rule for target.
Octree/fast:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f examples/Octree/CMakeFiles/Octree.dir/build.make examples/Octree/CMakeFiles/Octree.dir/build
.PHONY : Octree/fast
main.o: main.cpp.o
.PHONY : main.o
# target to build an object file
main.cpp.o:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f examples/Octree/CMakeFiles/Octree.dir/build.make examples/Octree/CMakeFiles/Octree.dir/main.cpp.o
.PHONY : main.cpp.o
main.i: main.cpp.i
.PHONY : main.i
# target to preprocess a source file
main.cpp.i:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f examples/Octree/CMakeFiles/Octree.dir/build.make examples/Octree/CMakeFiles/Octree.dir/main.cpp.i
.PHONY : main.cpp.i
main.s: main.cpp.s
.PHONY : main.s
# target to generate assembly for a file
main.cpp.s:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f examples/Octree/CMakeFiles/Octree.dir/build.make examples/Octree/CMakeFiles/Octree.dir/main.cpp.s
.PHONY : main.cpp.s
octgrid.o: octgrid.cpp.o
.PHONY : octgrid.o
# target to build an object file
octgrid.cpp.o:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f examples/Octree/CMakeFiles/Octree.dir/build.make examples/Octree/CMakeFiles/Octree.dir/octgrid.cpp.o
.PHONY : octgrid.cpp.o
octgrid.i: octgrid.cpp.i
.PHONY : octgrid.i
# target to preprocess a source file
octgrid.cpp.i:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f examples/Octree/CMakeFiles/Octree.dir/build.make examples/Octree/CMakeFiles/Octree.dir/octgrid.cpp.i
.PHONY : octgrid.cpp.i
octgrid.s: octgrid.cpp.s
.PHONY : octgrid.s
# target to generate assembly for a file
octgrid.cpp.s:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f examples/Octree/CMakeFiles/Octree.dir/build.make examples/Octree/CMakeFiles/Octree.dir/octgrid.cpp.s
.PHONY : octgrid.cpp.s
rotate.o: rotate.cpp.o
.PHONY : rotate.o
# target to build an object file
rotate.cpp.o:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f examples/Octree/CMakeFiles/Octree.dir/build.make examples/Octree/CMakeFiles/Octree.dir/rotate.cpp.o
.PHONY : rotate.cpp.o
rotate.i: rotate.cpp.i
.PHONY : rotate.i
# target to preprocess a source file
rotate.cpp.i:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f examples/Octree/CMakeFiles/Octree.dir/build.make examples/Octree/CMakeFiles/Octree.dir/rotate.cpp.i
.PHONY : rotate.cpp.i
rotate.s: rotate.cpp.s
.PHONY : rotate.s
# target to generate assembly for a file
rotate.cpp.s:
cd /home/andre/inmost-root/INMOST-0.1 && $(MAKE) -f examples/Octree/CMakeFiles/Octree.dir/build.make examples/Octree/CMakeFiles/Octree.dir/rotate.cpp.s
.PHONY : rotate.cpp.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... Octree"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... package"
@echo "... package_source"
@echo "... rebuild_cache"
@echo "... test"
@echo "... main.o"
@echo "... main.i"
@echo "... main.s"
@echo "... octgrid.o"
@echo "... octgrid.i"
@echo "... octgrid.s"
@echo "... rotate.o"
@echo "... rotate.i"
@echo "... rotate.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
cd /home/andre/inmost-root/INMOST-0.1 && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
#include "octgrid.h"
#include "oc_glut.h"
#include "my_glut.h"
#include "rotate.h"
#include <math.h>
#include "../../inmost.h"
#include "inmost.h"
#include <iomanip>
#include <iostream>
......@@ -72,7 +72,7 @@ void dump_to_vtk()
else
filename << ".pvtk";
thegrid.mesh->Save(filename.str());
cout << "Process " << rank << ": dumped mesh to file" << endl;
cout << "Process " << ::rank << ": dumped mesh to file" << endl;
}
/// Function provided to octgrid algorithm. Defines transformation from grid to grid for draw.
......@@ -353,7 +353,7 @@ void send_coordinates_to_slaves()
/// special command 'm' to slaves. Slave receive the message 'm', sends his cells to master.
void refresh_slaves_grid()
{
if (rank == 0) { // Send command to slaves for they will sent grid to us
if (::rank == 0) { // Send command to slaves for they will sent grid to us
char buff[10][2];
MPI_Request req[10];
for (int i = 1; i < size; i++)
......@@ -409,7 +409,7 @@ void refresh_slaves_grid()
void prepare_to_correct_brothers()
{
correct_brothers(&thegrid,size,rank, 0);
correct_brothers(&thegrid,size,::rank, 0);
thegrid.mesh->RemoveGhost();
thegrid.mesh->Redistribute();
thegrid.mesh->ReorderEmpty(CELL|FACE|EDGE|NODE);
......@@ -419,7 +419,7 @@ void prepare_to_correct_brothers()
/// Redistribute grid by using partitioner
void redistribute(int type)
{
LOG(2,"Process " << rank << ": redistribute. Cells: " << thegrid.mesh->NumberOfCells())
LOG(2,"Process " << ::rank << ": redistribute. Cells: " << thegrid.mesh->NumberOfCells())
Partitioner * part = new Partitioner(thegrid.mesh);
// Specify the partitioner
......@@ -431,12 +431,12 @@ void redistribute(int type)
part->Evaluate();
delete part;
correct_brothers(&thegrid,size,rank, 2);
correct_brothers(&thegrid,size,::rank, 2);
thegrid.mesh->RemoveGhost();
thegrid.mesh->Redistribute();
thegrid.mesh->ReorderEmpty(CELL|FACE|EDGE|NODE);
thegrid.mesh->AssignGlobalID(CELL | EDGE | FACE | NODE);
LOG(2,"Process " << rank << ": redistribute completed")
LOG(2,"Process " << ::rank << ": redistribute completed")
}
/// Prepare to redistribute. Master sends special command to slaves which means redistribute
......@@ -454,7 +454,7 @@ void redistribute_command()
for (int i = 1; i < size; i++)
{
LOG(3,"Master: send redistribute command to slave " << rank)
LOG(3,"Master: send redistribute command to slave " << ::rank)
buff[i][0] = 'x'; // Special key, means redistribute
buff[i][1] = type + '0'; // Special key, means redistribute
MPI_Isend(buff[i], 2, MPI_CHAR, i, 0, INMOST_MPI_COMM_WORLD, req + i);
......@@ -474,7 +474,7 @@ void keyboard(unsigned char key, int x, int y)
}
if( key == ' ' )
{
if (rank == 0)
if (::rank == 0)
{
send_coordinates_to_slaves();
}
......@@ -485,7 +485,7 @@ void keyboard(unsigned char key, int x, int y)
}
if( key == '[' )
{
if (rank == 0)
if (::rank == 0)
{
send_coordinates_to_slaves();
}
......@@ -500,7 +500,7 @@ void keyboard(unsigned char key, int x, int y)
}
if( key == 'f' )
{
if (rank == 0) { // Send dump command to other process
if (::rank == 0) { // Send dump command to other process
dump_to_vtk();
char buff[10][2];
MPI_Request req[10];
......@@ -565,7 +565,7 @@ void NotMainProcess()
while (1) {
MPI_Recv(buff, 256, MPI_CHAR, 0,0, INMOST_MPI_COMM_WORLD, &status);
LOG(2, "Process " << rank << ": received message '" << buff[0] << "'")
LOG(2, "Process " << ::rank << ": received message '" << buff[0] << "'")
if (buff[0] == 'm') // Need to refine, mouse coordinates come
{
......@@ -637,7 +637,7 @@ void NotMainProcess()
// Теперь мы готовы слать. Пошлем 2мя заходами
// Now we are ready to transmit the data. Transmit with 2 steps
LOG(2, "Process " << rank << ": send buffer with faces = " << count_f << " of " << count_df << ". Edges " << count_e)
LOG(2, "Process " << ::rank << ": send buffer with faces = " << count_f << " of " << count_df << ". Edges " << count_e)
MPI_Send(buff_f, offset ,MPI_CHAR,0,0,INMOST_MPI_COMM_WORLD);
MPI_Send(buff_e,count_e*sizeof(double) + sizeof(int),MPI_CHAR,0,0,INMOST_MPI_COMM_WORLD);
}
......@@ -654,18 +654,18 @@ int main(int argc, char ** argv)
thegrid.cell_should_split = cell_should_split;
thegrid.cell_should_unite = cell_should_unite;
Mesh::Initialize(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_rank(MPI_COMM_WORLD, &::rank);
gridInit(&thegrid,n);
Partitioner::Initialize(&argc,&argv);
size = thegrid.mesh->GetProcessorsNumber();
rank = thegrid.mesh->GetProcessorRank();
::size = thegrid.mesh->GetProcessorsNumber();
::rank = thegrid.mesh->GetProcessorRank();
//dump_to_vtk();
if (rank != 0)
if (::rank != 0)
{
NotMainProcess();
}
......
......@@ -376,6 +376,7 @@ Cell get_adjacent_cell(struct grid* g, Node node, int cell_num, int* result)
}
}
*result = -1;
return InvalidCell();
}
/// Returns true if edge is not a greatest in this cell
......
#ifndef _OCTGRID_H
#define _OCTGRID_H
#include "../../inmost.h"
#include "inmost.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
......
......@@ -15,7 +15,7 @@
Specific: glut.h
**********************************/
#include "oc_glut.h"
#include "my_glut.h"
#include "rotate.h"
#include "math.h"
#include <stdio.h>
......
......@@ -658,16 +658,6 @@ namespace INMOST
Storage::reference & operator [](const Storage & arg) const {return arg.Reference(*static_cast<const Tag*>(this));}
};
class TagVariable : public Tag
{
public:
TagVariable() : Tag() {}
TagVariable(const TagVariable & b) : Tag(b) {}
TagVariable(const Tag & b) : Tag(b) {}
TagVariable & operator = (TagVariable const & b) {Tag::operator =(b); return *this;}
TagVariable & operator = (Tag const & b) {Tag::operator =(b); return *this;}
Storage::var & operator [](const Storage & arg) const {return arg.Variable(*static_cast<const Tag*>(this));}
};
class TagRealArray : public Tag
{
......@@ -713,6 +703,18 @@ namespace INMOST
Storage::reference_array operator [](const Storage & arg) const {return arg.ReferenceArray(*static_cast<const Tag*>(this));}
};
#if defined(USE_AUTODIFF)
class TagVariable : public Tag
{
public:
TagVariable() : Tag() {}
TagVariable(const TagVariable & b) : Tag(b) {}
TagVariable(const Tag & b) : Tag(b) {}
TagVariable & operator = (TagVariable const & b) {Tag::operator =(b); return *this;}
TagVariable & operator = (Tag const & b) {Tag::operator =(b); return *this;}
Storage::var & operator [](const Storage & arg) const {return arg.Variable(*static_cast<const Tag*>(this));}
};
class TagVariableArray : public Tag
{
public:
......@@ -723,6 +725,7 @@ namespace INMOST
TagVariableArray & operator = (Tag const & b) {Tag::operator =(b); return *this;}
Storage::var_array operator [](const Storage & arg) const {return arg.VariableArray(*static_cast<const Tag*>(this));}
};
#endif //USE_AUTODIFF
//////////////////////////////////////////////////////////////////////
/// Inline functions for class Tag //
......
......@@ -157,6 +157,7 @@ namespace INMOST
case Element::Prism:
{
ElementArray<Node> nodes = it->getNodes();
if( nodes.size() != VtkElementNodes(it->GetGeometricType()) ) goto safe_output;
values.push_back(static_cast<integer>(nodes.size()));
for(ElementArray<Node>::iterator jt = nodes.begin(); jt != nodes.end(); jt++)
values.push_back(jt->IntegerDF(set_id));
......@@ -212,11 +213,10 @@ namespace INMOST
safe_output:
//printf("polyhedron!!!\n");
ElementArray<Face> faces = it->getFaces();
integer totalNum = 1 + static_cast<integer>(faces.size());
for(ElementArray<Face>::iterator jt = faces.begin(); jt != faces.end(); jt++)
totalNum += jt->nbAdjElements(NODE);
values.push_back(totalNum);
integer totalNum = 1 + static_cast<integer>(faces.size());
for(ElementArray<Face>::iterator jt = faces.begin(); jt != faces.end(); jt++)
totalNum += jt->nbAdjElements(NODE);
values.push_back(totalNum);
values.push_back(static_cast<integer>(faces.size()));
for(ElementArray<Face>::iterator jt = faces.begin(); jt != faces.end(); jt++)
{
......
......@@ -5,6 +5,8 @@
#include <sstream>
#include "inmost_sparse.h"
#define SILENCE_SET_PARAMETER
namespace INMOST {
#if defined(USE_SOLVER)
......
......@@ -190,7 +190,7 @@ namespace INMOST {
input.open(xml_database);
if (input.fail()) {
std::cout << __FILE__ << ": XML database file not found " << std::endl;
std::cout << __FILE__ << ":" << __LINE__ << ": XML database file " << xml_database << " not found." << std::endl;
return;
}
......@@ -200,7 +200,7 @@ namespace INMOST {
XMLReader::XMLTree root = reader.ReadXML();
if (root.tag.name != "SolverParameters") {
std::cout << __FILE__ << ": Bad XML database file" << std::endl;
std::cout << __FILE__ << ":" << __LINE__ << ": Bad XML database file " << xml_database << "!" << std::endl;
return;
}
......
......@@ -19,29 +19,27 @@ namespace INMOST {
throw INMOST::SolverUnsupportedOperation;
}
void SolverInner::Setup(int *argc, char ***argv, SolverParameters &p) {