Giter Site home page Giter Site logo

kratosmultiphysics / kratos Goto Github PK

View Code? Open in Web Editor NEW
964.0 964.0 232.0 1.97 GB

Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.

Home Page: https://kratosmultiphysics.github.io/Kratos/

License: Other

CMake 0.33% Python 9.35% C++ 86.44% Shell 0.03% Tcl 0.15% Batchfile 0.01% C 1.62% Makefile 0.07% Fortran 1.71% HTML 0.02% MATLAB 0.01% Assembly 0.09% SAS 0.01% CLIPS 0.01% Pascal 0.05% Ada 0.06% C# 0.04% M4 0.01% DIGITAL Command Language 0.02% Roff 0.01%
bsd-license c-plus-plus dem fem kratos kratos-multiphysics mpi multi-platform multiphysics numerical-methods openmp parallel-computing python

kratos's Introduction

License C++ Github CI DOI GitHub stars Twitter Youtube

Release

PyPI pyversions Downloads

KRATOS Multiphysics ("Kratos") is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface. More in Overview

Kratos is free under BSD-4 license and can be used even in comercial softwares as it is. Many of its main applications are also free and BSD-4 licensed but each derived application can have its own propietary license.

Main Features

Kratos is multiplatform and available for Windows, Linux (several distros) and macOS.

Kratos is OpenMP and MPI parallel and scalable up to thousands of cores.

Kratos provides a core which defines the common framework and several application which work like plug-ins that can be extended in diverse fields.

Its main applications are:

Some main modules are:

Documentation

Here you can find the basic documentation of the project:

Getting Started

Tutorials

More documentation

Wiki

Examples of use

Kratos has been used for simulation of many different problems in a wide variety of disciplines ranging from wind over singular building to granular domain dynamics. Some examples and validation benchmarks simulated by Kratos can be found here

Barcelona Wind Simulation

Contributors

Organizations contributing to Kratos:



International Center for Numerical Methods in Engineering




Chair of Structural Analysis
Technical University of Munich




Altair Engineering


Deltares



Institute of Structural Analysis
Technische Universität Braunschweig



University of Padova, Italy



Our Users

Some users of the technologies developed in Kratos are:

Airbus Defence and Space
Stress Methods & Optimisation Department

Siemens AG
Corporate Technology

ONERA, The French Aerospace Lab
Applied Aerodynamics Department

🤗 Looking forward to seeing your logo here!

Special Thanks To

In Kratos Core:

  • Boost for ublas
  • pybind11 for exposing C++ to python
  • GidPost providing output to GiD
  • AMGCL for its highly scalable multigrid solver
  • JSON JSON for Modern C++
  • ZLib The compression library

In applications:

How to cite Kratos?

Please, use the following references when citing Kratos in your work.

kratos's People

Contributors

adityaghantasala avatar afranci avatar alejandrocornejo avatar armingeiser avatar bodhinandach avatar dbaumgaertner avatar farrufat-cimne avatar guillermocasas avatar inigolopezcanalejo avatar ipouplana avatar jcotela avatar jginternational avatar jgonzalezusua avatar joaquinirazabal avatar josep-m-carbonell avatar klausbsautter avatar lluis-mv avatar loumalouomega avatar marcnunezc avatar miguelmaso avatar peterjwilson avatar philbucher avatar pooyan-dadvand avatar riccardorossi avatar riccardotosi avatar roigcarlo avatar rubenzorrilla avatar salvalatorre avatar sunethwarna avatar tteschemacher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kratos's Issues

Python garbage collector and mpi interface interaction issues.

It appears that for some unknown reason python does not call the destructor of the mpi module when executed with mpirun. The problem is mainly that the job never ends so it keeps consuming CPU time and also it interferes with any 3rd party tool that tries to monitor for the end of the process as for example profilers

Example case:

mpirun -np 16 python MainKratos.py

In this case we should call 16 instances of:

/// Destructor, finalizes MPI if necessary.
~PythonMPI()
{
    int MpiIsFinalized = 0;
    MPI_Finalized(&MpiIsFinalized);
	
    if (MpiIsFinalized == 0)
        MPI_Finalize();
}

But only 11 or 12 are called. This drives me to the conclusion that the garbage collector is (a garbage) not waiting until the function is called at the end of script. Or the problem lies in how boost-python handles the destruction of the class. I am not sure.

A proposed solution for this, which I am using right now would be to explicitly define a finalize function:

/// Destructor, finalizes MPI if necessary.
void finalize()
{
    int MpiIsFinalized = 0;
    MPI_Finalized(&MpiIsFinalized);
	
    if (MpiIsFinalized == 0)
        MPI_Finalize();
}

Which basically does the same as the destructor but is explicitly called at the end of the script ( ideally leaving some room for the python script to do more things )

from KratosMultiphysics import mpi    # mpi_Initialize() is done here

# Fancy code here

mpi.finalize()

# Some more fancy code here if possible

compilation of a testing exe

@roigcarlo i think it would be better to create a testing library (complete with a python interface) AND an exe file for the tests. This way the KratosCore would not depend on the tests, but the tests might depend on the kratoscore.

i think this would imply doing something like the following in the CMakeLists

if(${KRATOS_BUILD_TESTING} MATCHES ON)
file(GLOB_RECURSE KRATOS_TESTING_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tests/*.cpp)
add_library(KratosTests ${KRATOS_CORE_TESTING_SOURCES})
add_executable(KratosTesting ${CMAKE_CURRENT_SOURCE_DIR}/testing_main.cpp)
target_link_libraries(KratosTesting KratosCore)
endif(${KRATOS_BUILD_TESTING} MATCHES ON)

Boost 1.63 problem

I've notice that the wiki states that Boost 1.63 is not compatible with Kratos.
Does someone knows why? I'm using this version with no problems.

Naming conventions in Python files

As noted in the discussion of #30 we have no unified criteria on naming Python methods (and in Python in general). Summarizing the discussion, PEP 8 provides some recommended best practices, which I think would be good to follow.

The immediate issue in #30 was if we want to use the single underscore _method(), which just hides the method, or the double leading underscore __method(), which also mangles the name (so it can't be easily used on derived classes), but I think a wider discussion is in order.

I would also like to raise the point of defining the __all__ variable in our modules, which is something we have never done and would be very convenient when doing from ... import * statements.

@KratosMultiphysics/technical-committee what is the 'official' view on this?

Making a new problemtype for GID

Hi together,

as stated in our last Skype meeting on last Thursday we would like to compile a problem type of the Kratos for GID ourself. The reason for this is, we want to use it for teaching and it would be very helpful for us in order to give changes we make directly to our students without waiting for an update of the original problemtype or make them compile the code by themselves.

It would be very nice, if you could help us in this regard.

Thank you in advance.

Ciao

Andreas

navier_stokes_base_solver.py cannot be derived in python3

Since python 3 only allow new-style classes:

class NavierStokesBaseSolver:

    def __init__(self, main_model_part, custom_settings):

    # etc...

Should become:

class NavierStokesBaseSolver(object):

    def __init__(self, main_model_part, custom_settings):

    # etc...

which is also compatible with python > 2.2

I will fix the one in the navier_stokes_base_solver.py but please be aware of this issue since I don't know the content of the rest of the python files.

ConstitutiveModelsApplication project

This issue is to discuss about having a constitutive models application that will include all the capabilities related to material modelling. As well it will be the reference to extend custom constitutive models in other applications.

That will mean to migrate the constitutive models from the SolidMechanicsApplication to the ConstitutiveModelsApplication and all variables related to the Material Properties.

The proposed structure for C++ objects is the following:

  elasticity_models (which will contain the objects:)
          hyperelastic_laws
                       hyperelastic_models
          hypoelastic_laws
          linear_elastic_laws

   plasticity_models (which will contain the objects:)

           hyperelastic_plastic_laws
                        flow_rules
                        hardening_laws
                        yield_criteria             
            linear_elastic_damage_laws
            linear_elastic_plastic_laws

From that structure the thermal, UP, hydromechanic.... laws could be derived.

There will be the possibility of testing a constitutive law from python.
There will be the possibility of writing a constitutive law from python, interpreted for C++ with as
a python_outfitted_constitutive_law.

At the same time it will integrate the new json input for the constitutive law.

During this process some extensions to the current design of the constitutive laws can be discussed and incorporated to improve and extend the current capabilities.

 **Please feel free to make questions give your opinion and make suggestions**      

@KratosMultiphysics/technical-committee @KratosMultiphysics/structural-mechanics @KratosMultiphysics/pfem @KratosMultiphysics/dem @KratosMultiphysics/poromechanics @KratosMultiphysics/multiscale

kratos execution error

After compiling kratos in windows 7, when I try to execute a problem I got this error

Tue Feb 21 15:47:18 2017
| / |
' / | ` | __| _ \ _|
. \ | ( | | ( |_

|__| _,
|__|_
/ __/
Multi-Physics 5.0.0-8f4ec7005
Importing KratosSolidMechanicsApplication
KRATOS | _ \ | | _
_
\ ( | | | | , )
|
/___/ __|| ___/ MECHANICS
Initializing KratosSolidMechanicsApplication...
Traceback (most recent call last):
File "MainKratos.py", line 50, in
import KratosMultiphysics.ExternalSolversApplication as KratosSolvers
File "C:\temp\Kratos\KratosMultiphysics\ExternalSolversApplication.py", line 2
, in
from KratosExternalSolversApplication import *
ImportError: DLL load failed: The specified module could not be found.
KRATOS TERMINATED WITH ERROR

This is my configure.bat file:

del CMakeCache.txt
:: this is an example file...please DO NOT MODIFY if you don't want to do it for everyone
:: to use it, copy it to another file and run it

cls

:: you may want to decomment this the first time you compile
del CMakeCache.txt

cmake -G "Visual Studio 14 2015 Win64" ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_CXX_FLAGS=" -D_SCL_SECURE_NO_WARNINGS " ^
-DBOOST_ROOT="C:\temp\Kratos\external_libraries\boost_1_62_0" ^
-DPYTHON_LIBRARY="C:\Python35\libs\python35.lib" ^
-DPYTHON_INCLUDE_PATH="C:\Python35\include" ^
-DLAPACK_LIBRARIES="C:\temp\Kratos\external_libraries\liblapack.lib" ^
-DBLAS_LIBRARIES="C:\temp\Kratos\external_libraries\libblas.lib" ^
-DMESHING_APPLICATION=OFF ^
-DEXTERNAL_SOLVERS_APPLICATION=ON ^
-DPFEM_BASE_APPLICATION=ON ^
-DPFEM_SOLID_MECHANICS_APPLICATION=ON ^
-DFLUID_DYNAMICS_APPLICATION=ON ^
-DSOLID_MECHANICS_APPLICATION=ON ^
-DCONTACT_MECHANICS_APPLICATION=ON ^
-DCONVECTION_DIFFUSION_APPLICATION=ON ^
-DFLUID_DYNAMICS_APPLICATION=ON ^
-DALE_APPLICATION=OFF ^
-DFSI_APPLICATION=OFF ^
-DDEM_APPLICATION=ON ^
-DSWIMMING_DEM_APPLICATION=ON ^
-DINSTALL_PYTHON_FILES=ON ^
-DINSTALL_EMBEDDED_PYTHON=ON ^
-DEXCLUDE_ITSOL=ON ^
..

The compilation of the structural reports the following warning

Regarding the eigenvalues solver:

In file included from /home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_python/add_custom_strategies_to_python.cpp:23:0:
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp: In instantiation of ‘Kratos::EigensolverStrategy<TSparseSpace, TDenseSpace, TLinearSolver>::~EigensolverStrategy() [with TSparseSpace = Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >; TDenseSpace = Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >; TLinearSolver = Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > >]’:
/home/vicente/bin/boost_1_59_0/boost/python/object/value_holder.hpp:133:13:   required from ‘boost::python::objects::value_holder<Value>::value_holder(PyObject*, A0, A1, A2) [with A0 = boost::python::objects::reference_to_value<Kratos::ModelPart&>; A1 = boost::python::objects::reference_to_value<boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > >; A2 = boost::python::objects::reference_to_value<boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > > >; Value = Kratos::EigensolverStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >; PyObject = _object]’
/home/vicente/bin/boost_1_59_0/boost/python/object/make_holder.hpp:94:18:   required from ‘static void boost::python::objects::make_holder<3>::apply<Holder, ArgList>::execute(PyObject*, boost::python::objects::make_holder<3>::apply<Holder, ArgList>::t0, boost::python::objects::make_holder<3>::apply<Holder, ArgList>::t1, boost::python::objects::make_holder<3>::apply<Holder, ArgList>::t2) [with Holder = boost::python::objects::value_holder<Kratos::EigensolverStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > >; ArgList = boost::mpl::vector3<Kratos::ModelPart&, boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > > >; PyObject = _object; boost::python::objects::make_holder<3>::apply<Holder, ArgList>::t0 = Kratos::ModelPart&; boost::python::objects::make_holder<3>::apply<Holder, ArgList>::t1 = boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >; boost::python::objects::make_holder<3>::apply<Holder, ArgList>::t2 = boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > >]’
/home/vicente/bin/boost_1_59_0/boost/python/detail/make_keyword_range_fn.hpp:63:47:   required from ‘boost::python::api::object boost::python::detail::make_keyword_range_constructor(const CallPolicies&, const keyword_range&, Holder*, ArgList*, Arity*) [with ArgList = boost::mpl::vector3<Kratos::ModelPart&, boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > > >; Arity = boost::mpl::size<boost::mpl::vector3<Kratos::ModelPart&, boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > > > >; Holder = boost::python::objects::value_holder<Kratos::EigensolverStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > >; CallPolicies = boost::python::default_call_policies; boost::python::detail::keyword_range = std::pair<const boost::python::detail::keyword*, const boost::python::detail::keyword*>]’
/home/vicente/bin/boost_1_59_0/boost/python/init.hpp:310:66:   required from ‘void boost::python::detail::def_init_aux(ClassT&, const Signature&, NArgs, const CallPoliciesT&, const char*, const keyword_range&) [with ClassT = boost::python::class_<Kratos::EigensolverStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::python::bases<Kratos::SolvingStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > >, boost::noncopyable_::noncopyable>; CallPoliciesT = boost::python::default_call_policies; Signature = boost::mpl::vector3<Kratos::ModelPart&, boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > > >; NArgs = boost::mpl::size<boost::mpl::vector3<Kratos::ModelPart&, boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > > > >; boost::python::detail::keyword_range = std::pair<const boost::python::detail::keyword*, const boost::python::detail::keyword*>]’
/home/vicente/bin/boost_1_59_0/boost/python/init.hpp:377:31:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/vicente/bin/boost_1_59_0/boost/python/def_visitor.hpp:31:9:   required from ‘static void boost::python::def_visitor_access::visit(const V&, classT&) [with V = boost::python::def_visitor<boost::python::init<Kratos::ModelPart&, boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > > > >; classT = boost::python::class_<Kratos::EigensolverStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::python::bases<Kratos::SolvingStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > >, boost::noncopyable_::noncopyable>]’
/home/vicente/bin/boost_1_59_0/boost/python/def_visitor.hpp:67:34:   required from ‘void boost::python::def_visitor<DerivedVisitor>::visit(classT&) const [with classT = boost::python::class_<Kratos::EigensolverStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::python::bases<Kratos::SolvingStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > >, boost::noncopyable_::noncopyable>; DerivedVisitor = boost::python::init<Kratos::ModelPart&, boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > > >]’
/home/vicente/bin/boost_1_59_0/boost/python/class.hpp:225:9:   required from ‘boost::python::class_<T, X1, X2, X3>::self& boost::python::class_<T, X1, X2, X3>::def(const boost::python::def_visitor<Derived>&) [with Derived = boost::python::init<Kratos::ModelPart&, boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > > >; W = Kratos::EigensolverStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >; X1 = boost::python::bases<Kratos::SolvingStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > >; X2 = boost::noncopyable_::noncopyable; X3 = boost::python::detail::not_specified; boost::python::class_<T, X1, X2, X3>::self = boost::python::class_<Kratos::EigensolverStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::python::bases<Kratos::SolvingStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > >, boost::noncopyable_::noncopyable>]’
/home/vicente/bin/boost_1_59_0/boost/python/class.hpp:459:9:   required from ‘void boost::python::class_<T, X1, X2, X3>::initialize(const DefVisitor&) [with DefVisitor = boost::python::init_base<boost::python::init<Kratos::ModelPart&, boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > > > >; W = Kratos::EigensolverStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >; X1 = boost::python::bases<Kratos::SolvingStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > >; X2 = boost::noncopyable_::noncopyable; X3 = boost::python::detail::not_specified]’
/home/vicente/bin/boost_1_59_0/boost/python/class.hpp:208:9:   required from ‘boost::python::class_<T, X1, X2, X3>::class_(const char*, const boost::python::init_base<DerivedT>&) [with DerivedT = boost::python::init<Kratos::ModelPart&, boost::shared_ptr<Kratos::Scheme<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >, boost::shared_ptr<Kratos::BuilderAndSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > > >; W = Kratos::EigensolverStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > >; X1 = boost::python::bases<Kratos::SolvingStrategy<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::LinearSolver<Kratos::UblasSpace<double, boost::numeric::ublas::compressed_matrix<double>, boost::numeric::ublas::vector<double> >, Kratos::UblasSpace<double, boost::numeric::ublas::matrix<double>, boost::numeric::ublas::vector<double> > > > >; X2 = boost::noncopyable_::noncopyable; X3 = boost::python::detail::not_specified]’
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_python/add_custom_strategies_to_python.cpp:91:115:   required from here
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: warning: throw will always call terminate() [-Wterminate]
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:136:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::overflow_error,MoreInfo,Block)   \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: note: in C++11 destructors default to noexcept
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:136:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::overflow_error,MoreInfo,Block)   \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: warning: throw will always call terminate() [-Wterminate]
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:137:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::underflow_error,MoreInfo,Block)  \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: note: in C++11 destructors default to noexcept
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:137:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::underflow_error,MoreInfo,Block)  \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: warning: throw will always call terminate() [-Wterminate]
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:138:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::range_error,MoreInfo,Block)      \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: note: in C++11 destructors default to noexcept
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:138:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::range_error,MoreInfo,Block)      \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: warning: throw will always call terminate() [-Wterminate]
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:139:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::out_of_range,MoreInfo,Block)     \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: note: in C++11 destructors default to noexcept
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:139:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::out_of_range,MoreInfo,Block)     \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: warning: throw will always call terminate() [-Wterminate]
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:140:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::length_error,MoreInfo,Block)     \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: note: in C++11 destructors default to noexcept
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:140:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::length_error,MoreInfo,Block)     \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: warning: throw will always call terminate() [-Wterminate]
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:141:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::invalid_argument,MoreInfo,Block) \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: note: in C++11 destructors default to noexcept
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:141:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::invalid_argument,MoreInfo,Block) \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: warning: throw will always call terminate() [-Wterminate]
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:142:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::domain_error,MoreInfo,Block)     \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: note: in C++11 destructors default to noexcept
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:142:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::domain_error,MoreInfo,Block)     \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: warning: throw will always call terminate() [-Wterminate]
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:143:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::logic_error,MoreInfo,Block)      \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: note: in C++11 destructors default to noexcept
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:143:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::logic_error,MoreInfo,Block)      \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: warning: throw will always call terminate() [-Wterminate]
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:144:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::runtime_error,MoreInfo,Block)    \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:126:24: note: in C++11 destructors default to noexcept
 KRATOS_ERROR << e.what();                             \
                        ^
/home/vicente/bin/Kratos/kratos/includes/define.h:144:1: note: in expansion of macro ‘KRATOS_CATCH_AND_THROW’
 KRATOS_CATCH_AND_THROW(std::runtime_error,MoreInfo,Block)    \
 ^~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:145:92: warning: throw will always call terminate() [-Wterminate]
 catch(Exception& e) { Block throw Exception(e) << KRATOS_CODE_LOCATION << MoreInfo << std::endl; } \
                                                                                            ^
/home/vicente/bin/Kratos/kratos/includes/define.h:145:92: note: in definition of macro ‘KRATOS_CATCH_WITH_BLOCK’
 catch(Exception& e) { Block throw Exception(e) << KRATOS_CODE_LOCATION << MoreInfo << std::endl; } \
                                                                                            ^~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:145:92: note: in C++11 destructors default to noexcept
 catch(Exception& e) { Block throw Exception(e) << KRATOS_CODE_LOCATION << MoreInfo << std::endl; } \
                                                                                            ^
/home/vicente/bin/Kratos/kratos/includes/define.h:145:92: note: in definition of macro ‘KRATOS_CATCH_WITH_BLOCK’
 catch(Exception& e) { Block throw Exception(e) << KRATOS_CODE_LOCATION << MoreInfo << std::endl; } \
                                                                                            ^~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:131:50: warning: throw will always call terminate() [-Wterminate]
 KRATOS_ERROR << ErrorMessage << MoreInfo << std::endl;          \
                                                  ^
/home/vicente/bin/Kratos/kratos/includes/define.h:131:50: note: in definition of macro ‘KRATOS_THROW_ERROR’
 KRATOS_ERROR << ErrorMessage << MoreInfo << std::endl;          \
                                                  ^~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:131:50: note: in C++11 destructors default to noexcept
 KRATOS_ERROR << ErrorMessage << MoreInfo << std::endl;          \
                                                  ^
/home/vicente/bin/Kratos/kratos/includes/define.h:131:50: note: in definition of macro ‘KRATOS_THROW_ERROR’
 KRATOS_ERROR << ErrorMessage << MoreInfo << std::endl;          \
                                                  ^~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:131:50: warning: throw will always call terminate() [-Wterminate]
 KRATOS_ERROR << ErrorMessage << MoreInfo << std::endl;          \
                                                  ^
/home/vicente/bin/Kratos/kratos/includes/define.h:131:50: note: in definition of macro ‘KRATOS_THROW_ERROR’
 KRATOS_ERROR << ErrorMessage << MoreInfo << std::endl;          \
                                                  ^~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^
/home/vicente/bin/Kratos/kratos/includes/define.h:131:50: note: in C++11 destructors default to noexcept
 KRATOS_ERROR << ErrorMessage << MoreInfo << std::endl;          \
                                                  ^
/home/vicente/bin/Kratos/kratos/includes/define.h:131:50: note: in definition of macro ‘KRATOS_THROW_ERROR’
 KRATOS_ERROR << ErrorMessage << MoreInfo << std::endl;          \
                                                  ^~~~
/home/vicente/bin/Kratos/kratos/includes/define.h:156:3: note: in expansion of macro ‘KRATOS_CATCH_WITH_BLOCK’
   KRATOS_CATCH_WITH_BLOCK(MoreInfo,{})
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/vicente/bin/Kratos/applications/StructuralMechanicsApplication/custom_strategies/custom_strategies/eigensolver_strategy.hpp:138:9: note: in expansion of macro ‘KRATOS_CATCH’
         KRATOS_CATCH("")
         ^

Please @AndreasWinterstein can you take a look at this?

feature branches should have specific and descriptive name

Would you please give a more specific and descriptive name to the pfem_development feature branch? Also he branch names making a new feature should start with feature and the words in branch should be separated by dash "-" not underline "_"

At this moment we don't have a convention documentation about branch naming in wiki and such a generic name would give a wrong message to other developers in naming their branches.

Length gives nan for inverted elements which leads to wrong quality measure

The length in tetrahedra_3d_4 is calculated using the volume and gives -nan for inverted elements. This leads to a same result for quality measures which use the length.

@KratosMultiphysics/technical-committee can we change the definition of the length or make the qualities work in a separate way?

My option would be to "correct" the length but there is no best interpretation of what is the length and how to calculate it.

Creating two GiD IOs leads to segmentation fault

Creating two GiD IOs leds to segmentation faults. Attached is a minimum working example and the output of gdb. It seems to be related to boost, however trying different versions of boost didn't solve the problem.

@loumalouomega did you have the same problem?

from __future__ import print_function, absolute_import, division 

from KratosMultiphysics import *

output_file = "outFile"

gid_mode = GiDPostMode.GiD_PostAscii
multifile = MultiFileFlag.MultipleFiles
deformed_mesh_flag = WriteDeformedMeshFlag.WriteUndeformed
write_conditions = WriteConditionsFlag.WriteConditions

gid_io_1 = GidIO(output_file, gid_mode, multifile,
                 deformed_mesh_flag, write_conditions)

gid_io_2 = GidIO(output_file, gid_mode, multifile,
                 deformed_mesh_flag, write_conditions)
```
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from python3...(no debugging symbols found)...done.
(gdb) r GiDPost_error.py 
Starting program: /usr/bin/python3 GiDPost_error.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
 |  /           |             
 ' /   __| _` | __|  _ \   __|
 . \  |   (   | |   (   |\__ \ 
_|\_\_|  \__,_|\__|\___/ ____/
           Multi-Physics 5.0.0-7c18d0a

Program received signal SIGSEGV, Segmentation fault.
refree (r=0x0)
    at /home/philippb/software/Kratos/external_libraries/gidpost/source/recycle.c:39
39	   if ((temp = r->list)) while (r->list)
(gdb) bt full
#0  refree (r=0x0)
    at /home/philippb/software/Kratos/external_libraries/gidpost/source/recycle.c:39
        temp = <optimized out>
#1  0x00007ffff5fa494c in GiD_HashDone ()
    at /home/philippb/software/Kratos/external_libraries/gidpost/source/gidpostHash.c:67
No locals.
#2  0x00007ffff5f9bf77 in GiD_PostDone ()
    at /home/philippb/software/Kratos/external_libraries/gidpost/source/gidpost.c:226
No locals.
#3  0x00007ffff58b13b9 in Kratos::GidIO<Kratos::GidGaussPointsContainer, Kratos::GidMeshContainer>::~GidIO (this=0x131dd50, __in_chrg=<optimized out>)
    at /home/philippb/software/Kratos/kratos/includes/gid_io.h:119
No locals.
#4  Kratos::GidIO<Kratos::GidGaussPointsContainer, Kratos::GidMeshContainer>::~GidIO (this=0x131dd50, __in_chrg=<optimized out>)
    at /home/philippb/software/Kratos/kratos/includes/gid_io.h:120
No locals.
#5  boost::checked_delete<Kratos::GidIO<Kratos::GidGaussPointsContainer, Kratos::GidMeshContainer> > (x=0x131dd50)
---Type <return> to continue, or q <return> to quit---
cked_delete.hpp:34
No locals.
#6  boost::detail::sp_counted_impl_p<Kratos::GidIO<Kratos::GidGaussPointsContainer, Kratos::GidMeshContainer> >::dispose (this=<optimized out>)
    at /home/philippb/software/boost/boost_1_62_0_install/include/boost/smart_ptr/detail/sp_counted_impl.hpp:78
No locals.
#7  0x00007ffff589c96a in boost::detail::sp_counted_base::release (this=0x131cab0)
    at /home/philippb/software/boost/boost_1_62_0_install/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:146
No locals.
#8  0x00007ffff58a4f8d in boost::detail::sp_counted_base::release (this=<optimized out>)
    at /home/philippb/software/boost/boost_1_62_0_install/include/boost/python/object/pointer_holder.hpp:52
No locals.
#9  boost::detail::shared_count::~shared_count (this=0xaf0dd8, __in_chrg=<optimized out>)
    at /home/philippb/software/boost/boost_1_62_0_install/include/boost/smart_ptr/detail/shared_count.hpp:473
No locals.
#10 boost::shared_ptr<Kratos::GidIO<Kratos::GidGaussPointsContainer, Kratos::GidMeshContainer> >::~shared_ptr (this=0xaf0dd0, __in_chrg=<optimized out>)
    at /home/philippb/software/boost/boost_1_62_0_install/include/boost/smart_ptr/shared_ptr.hpp:336
No locals.
#11 boost::python::objects::pointer_holder<boost::shared_ptr<Kratos::GidIO<Kratos::GidGaussPointsContainer, Kratos::GidMeshContainer> >, Kratos::GidIO<Kratos::GidGaussPointsContainer, Kratos::GidMeshContainer> >::~pointer_holder (this=0xaf0dc0, __in_chrg=<optimized out>)
    at /home/philippb/software/boost/boost_1_62_0_install/include/boost/python/object/pointer_holder.hpp:52
No locals.
#12 0x00007ffff432994c in instance_dealloc () from /home/philippb/software/Kratos/libs/libboost_python.so.1.62.0

Debug version of Kratos is not working under Windows

Hi Kratos team,

I'm trying to use Kratos within the debug mode but I'm facing the following problem

problem

The following list helps to better understand what I have done so far

  • I'm using VS2015 with Python 3.6 and boost 1.62
  • The release version of Kratos is working fine
  • The compilation of Kratos within debug mode is working as well

visualstudio_debug

  • but I cannot run an example with it (see error message above). It seems that there is a library missing.

Any help is appreciated.

Thanks in advance
Michael

KRATOS INSTALL ERROR

Hello everyone, I already have a KRATOS developers version on my computer which I am currently using to work on. It is the version of KRATOS before you moved to GitHub. So I am trying to install the current master version. After cloning the Code I used the configure.bat file I already used to install the previous verion:

del CMakeCache.txt
:: this is an example file...please DO NOT MODIFY if you don't want to do it for everyone
:: to use it, copy it to another file and run it

cls

:: you may want to decomment this the first time you compile
del CMakeCache.txt

cmake -G "Visual Studio 14 2015 Win64" ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_CXX_FLAGS=" -D_SCL_SECURE_NO_WARNINGS " ^
-DBOOST_ROOT="C:\boost_1_59_0" ^
-DPYTHON_LIBRARY="C:\Python33\libs\python33.lib" ^
-DPYTHON_INCLUDE_PATH="C:\Python33\include" ^
-DLAPACK_LIBRARIES="C:\external_libraries\liblapack.lib" ^
-DBLAS_LIBRARIES="C:\external_libraries\libblas.lib" ^
-DMESHING_APPLICATION=ON ^
-DEXTERNAL_SOLVERS_APPLICATION=ON ^
-DPFEM_APPLICATION=ON ^
-DSTRUCTURAL_MECHANICS_APPLICATION=ON ^
-DCONVECTION_DIFFUSION_APPLICATION=ON ^
-DFLUID_DYNAMICS_APPLICATION=ON ^
-DALE_APPLICATION=ON ^
-DFSI_APPLICATION=ON ^
-DDEM_APPLICATION=OFF ^
-DSWIMMING_DEM_APPLICATION=OFF ^
-DINSTALL_PYTHON_FILES=ON ^
-DINSTALL_EMBEDDED_PYTHON=ON ^
-DEXCLUDE_ITSOL=ON ^
-DSOLID_MECHANICS_APPLICATION=ON ^
-DKRATOS_INSTALL_PREFIX="C:\KRATOS_CLONE\KratosInstallNew" ^
..

this file runs smoothly without any errors. But when I try to install it within VS2015 I get the following errors:
1.)
Syntax error in cmake code at
24>
24> C:/KRATOS_CLONE/Kratos/cmake_build/cmake_install.cmake:5
24>
24> when parsing string
24>
24> C:\KRATOS_CLONE\KratosInstallNew
24>
24> Invalid escape sequence \K
24>
24> Policy CMP0010 is not set: Bad variable reference syntax is an error. Run
24> "cmake --help-policy CMP0010" for policy details. Use the cmake_policy
24> command to set the policy and suppress this warning.
24> This warning is for project developers. Use -Wno-dev to suppress it.

2.)
CMake Error at applications/PFEMapplication/cmake_install.cmake:46 (file):
24> file INSTALL cannot find
24> "C:/KRATOS_CLONE/Kratos/cmake_build/applications/PFEMapplication/Release/KratosPFEMApplication.pyd".
24> Call Stack (most recent call first):
24> applications/cmake_install.cmake:38 (include)
24> cmake_install.cmake:79 (include)

3.)
24>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: The command "setlocal
24>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: "C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake
24>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
24>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: :cmEnd
24>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
24>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: :cmErrorLevel
24>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: exit /b %1
24>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: :cmDone
24>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
24>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: :VCEnd" exited with code 1.

Sry for that long post, I hope anyone of you can help me.
Klaus

Develompents for tables and properties for the usage in the ConstitutiveLaw

I would like to know how to work with tables in a proper way. My question is related with this and with the assignation of tables to Properties.

If I have a YOUNG_MODULUS variable that is defined by a Table for different temperatures, how I check if the value is supplied by a table of the properties or by a variable of the properties ? Is there any method implemented for that issue?

@KratosMultiphysics/technical-committee

How to handle commit to "core applications"

we need to decide a policy for commits to core applications.

let's suppose for example that we need to create a new element, which we need for research purposes.
this element may not be of sufficient quality to be exposed to the general public, nevertheless it may well be needed during a long period of time as part of the thesis of someone.

creating a branch would not be the way to go, since this is designed to be long-living.
i really would like to avoid forks.

what should be the guideline here? to create a derived application and to work on that as we did until now?
problem here is that the (eventual) merging to the core application is very manual.

cheers
Riccardo

failure in the c++ tests

in kratos/sources/model_part_io.cpp:1651:void ModelPartIO::ReadNodalDataBlock(ModelPart&)
kratos/sources/model_part_io.cpp:1691:void ModelPartIO::ReadNodalDataBlock(ModelPart&)
kratos/sources/model_part_io.cpp:553:virtual void ModelPartIO::ReadModelPart(ModelPart&)

TestTetrahedra3D4RegualrityQuiality Failed with message: 
    Error: Method 'RegualrityQuiality' is not yet implemented for Tetrahedra3D4

in kratos/geometries/tetrahedra_3d_4.h:646:double Tetrahedra3D4::RegualrityQuiality() const [with TPointType = Node<3ul>]

TestTetrahedra3D4VolumeToAverageEdgeLength Failed with message: 
    Error: Check failed becuase geomTriRect->Quality(criteria) = 0.585786 is not near to -1.0 = -1 within the tolerance 1e-06

in kratos/tests/geometries/test_tetrahedra_3d_4.cpp:276:virtual void Testing::TestTetrahedra3D4VolumeToAverageEdgeLength::TestFunction()

TestTetrahedra3D4VolumeToEdgeLengthQuality Failed with message: 
    Error: Check failed becuase geomTriRect->Quality(criteria) = 0.839947 is not near to -1.0 = -1 within the tolerance 1e-06

in kratos/tests/geometries/test_tetrahedra_3d_4.cpp:261:virtual void Testing::TestTetrahedra3D4VolumeToEdgeLengthQuality::TestFunction()

TestTetrahedra3D4VolumeToRMSEdgeLength Failed with message: 
    Error: Check failed becuase geomTriRect->Quality(criteria) = 0.839947 is not near to -1.0 = -1 within the tolerance 1e-06

in kratos/tests/geometries/test_tetrahedra_3d_4.cpp:291:virtual void Testing::TestTetrahedra3D4VolumeToRMSEdgeLength::TestFunction()

TestTetrahedra3D4VolumeToSurfaceAreaQuality Failed with message: 
    Error: Method 'VolumeToSurfaceAreaQuality' is not yet implemented for Tetrahedra3D4

in kratos/geometries/tetrahedra_3d_4.h:660:double Tetrahedra3D4::VolumeToSurfaceAreaQuality() const [with TPointType = Node<3ul>]

model_part.GetElement(Id) silently creates new elements

If I call model_part.GetElement(Id) with non-existing Id, it inserts a new element in the model part and returns it without throwing an error. This is most certainly not what the programmer intended since for creating elements one should use model_part.CreateNewElement("SomeElement", NewId, ...)`.

I would suggest changing

ElementType& Mesh::GetElement(IndexType ElementId)
{
return (*mpElements)[ElementId];
}

to something like

ElementType& Mesh::GetElement(IndexType ElementId)
{
auto i = mpElements->find(ElementId);
assert(i != mpElements->end());
return *i;
}

with similar changes to pGetElement, pGetNode, GetNode, pGetCondition, GetCondition.

@pooyan is this possible?

Discussion about documentation format

Greetings, we have been discussing about the creation of a completely new repository just oriented to documentation, conclusions have been extracted, but of course a deeper and more profound discussion has to be made to paint the final structure of this repository.

This is my proposition:

  • The user documentation (manual): The documentation focused for the Kratos (just) users
  • The developer documentation (manual): The documentation focused in Kratos developers, C++ tips, data structure, API documentation, etc...
  • Theoretical documentation: This documentation is the explanation that underlies in Kratos core and main applications, this can be very interesting for users and developers to understand what underlays in the code.
  • Wiki files: The images, files needed to maintain the wiki, right now we are using the ones form the previous wiki, and this is not the proper way to work.
  • Presentations: The Kratos presentations in conferences, etc...

In general we can use as reference what is in the FEAP documentation.

@RiccardoRossi In the other hand, GitHub has built-in support for rendering .ipynb files. You can write inline and display LaTeX code in the notebook and GitHub will render it for you. I recommend this approach for the AD documentation, the Jupyter notebooks (previously IPython) are quite powerful, and they can be used for something more than just showing the LaTeX equations, you can show plots and small tests embedded. Try Jupyter

Here's a sample notebook file

Jacobian determinant computation in some geometries

Dear all,

Implementing an utility for the FSI application I noted the lack a DeterminantOfJacobian() method in these geometries:

  • line_2d.h
  • line_2d_2.h
  • line_2d_3.h
  • line_3d_3.h
  • triangle_3d_3.h

In these geometries what this DeterminantOfJacobian() method does it to turn an error complaining about the fact that the Jacobian matrix is not squared-shaped. Is there any reason to keep these methods as they are? In my opinion, it could be very useful to extend what is done in the line_3d_2.h geometry since these Jacobian "determinant" values are known

virtual Vector& DeterminantOfJacobian( Vector& rResult, IntegrationMethod ThisMethod ) const
{
rResult = ZeroVector( 1 );
rResult[0] = 0.5 * MathUtils::Norm3(( this->GetPoint( 1 ) ) - ( this->GetPoint( 0 ) ) );
return rResult;
}

If you agree to do that, I would do the implementations.

Regards.

Access to ProcessInfo not Parallel in Contact Mechanics Application

Regarding the Pull Request #61, this is a reminder that in the file:
ContactMechanicsApplication/custom_conditions/contact_domain_condition.cpp
there is a parallel write on a shared variable.
I understand that it was not the scope of #61, but a new branch should be opened to fix it when possible.

Please test thin shell element 3D4N

Hi Vicente,

as announced on Thursday I added a new branch called add-new-thin-shell-element-3D4N with this new element. Could you please test this element and tell me if there are any problems with it. From my opinion the bending formulation should be correct, but there might be some problems with the membrane part.

If necessary I can send you an example.

Thank you in advance.

Ciao

Andreas

No version in "kratos_version.h"

Due to #4 CMake no longer adds the old svn number to 'kratos_version.h', so version is always X.X.0

The SHA1 must be set by cmake while configuring the project.

Windows libs are not being installed

Following #60, DLL should be installed in the libs dir in windows automatically.

This should be done for the direct dependencies:

  • Python
  • Boost python
  • LibBlas
  • Lapack

It also would be nice to have the mingw dependencies. I will propose some solutions in an upcomming PR to tackle this.

Git patch number does not take any value when dowloaded as a package

This is related with #12

Since git allow people to download the source code as a tarball, the patch number obtained by CMake from the git command is not guaranteed if the command does not exists in the target machine ( which is already controlled ), or if such command is executed in a non-git directory.

For example the output of the nightly builds since they work with git is

 |  /           |
 ' /   __| _` | __|  _ \   __|
 . \  |   (   | |   (   |\__ \
_|\_\_|  \__,_|\__|\___/ ____/
           Multi-Physics 5.0.0-

The FEAST eigensolver stores the DoF of VELOCITY and ACCELERATION

Regarding #138 , I discover that the DoF stored in the EIGENVECTORS_MATRIX are additionally to the DISPLACEMENT the temporal derivatives VELOCITY and ACCELERATION, but like these DoF are not considered in the system K-M w^2=0, which are solved with the time scheme, then they are going to be always zero, so storing them increases the database size for the eigenvectors 3 times.

Additionally this means need to know which is the order for the DoF in the EIGENVECTORS_MATRIX to be able to process this info.

Defining the local coordinate system of elements (beams, shells)

Hi together,

with this post the discussion for the definition of the local coordinate system for elements, which is especially crucial for beam elements, is opened. Feel free to add other members of the team who might be of interested.

Here is our suggestion:

The local x-axis is the vector spanning from the starting point to the end point of the beam. Then the local y-axis is calculated with help of the cross product (gobalZ(0,0,1) X local x-axis). Another crossproduct (local x-axis X local y-axis) results in the local z-axis. All local axis are normalized.
One exception:
In case that the beam axis is parallel to the global Z-Axis:
nX = (0, 0, +- 1); nY = (0, 0 ,1); nZ = (-+ 1, 0, 0)

Looking forward to your comments.

Andreas

Kratos intallation isssue in windows, default build folders not found

We are intalling Kratos in windows, and the default location of the build has changed, also the location for the embedded_python exe file and we can not locate were the new libs and KratosMultiphysics folders are installed.
Please could you give us a solution for a correct install.

Thank you

an idea for c++ testing mechanism

@roigcarlo @pooyan-dadvand

i had an idea about the c++ testing mechanism.

why don't you derive it from the python unit test base class? this way you could interact seamlessly with the python unit testing and it should also be easier to integrate in travis-cl

Volume and determinant sign error for tetrahedra_3d_4

I have a tetrahedron with following connectivity which seems to have correct order but the volume calculated by Kratos is negative:

        Point 1  : (1 , 1 , -10)
        Point 2  : (0 , 0 , 0)
        Point 3  : (0 , 10 , 0)
        Point 4  : (4 , 6 , 0)
        Center   : (1.25 , 4.25 , -2.5)

        Length   : -nan(ind)
        Area     : -66.6667

I have checked it in GiD and says that is positive! And also debugging I'm sure that it enters the correct method.

Meanwhile calculating the length by volume cause another wrong information!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.