diff --git a/packages/core.cmake b/packages/core.cmake index 161af40cf..e5fd798e0 100644 --- a/packages/core.cmake +++ b/packages/core.cmake @@ -1,521 +1,523 @@ #=============================================================================== # @file core.cmake # # @author Guillaume Anciaux # @author Nicolas Richart # # @date creation: Mon Nov 21 2011 # @date last modification: Mon Jan 18 2016 # # @brief package description for core # # @section LICENSE # # Copyright (©) 2010-2012, 2014, 2015 EPFL (Ecole Polytechnique Fédérale de # Lausanne) Laboratory (LSMS - Laboratoire de Simulation en Mécanique des # Solides) # # Akantu is free software: you can redistribute it and/or modify it under the # terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # Akantu is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License # along with Akantu. If not, see . # #=============================================================================== package_declare(core NOT_OPTIONAL DESCRIPTION "core package for Akantu" FEATURES_PUBLIC cxx_strong_enums cxx_defaulted_functions cxx_deleted_functions cxx_auto_type cxx_decltype_auto FEATURES_PRIVATE cxx_lambdas cxx_nullptr cxx_range_for cxx_delegating_constructors DEPENDS INTERFACE Boost) package_declare_sources(core common/aka_array.cc common/aka_array.hh common/aka_array_tmpl.hh common/aka_bbox.hh common/aka_blas_lapack.hh common/aka_circular_array.hh common/aka_circular_array_inline_impl.cc common/aka_common.cc common/aka_common.hh common/aka_common_inline_impl.cc common/aka_csr.hh common/aka_element_classes_info_inline_impl.cc common/aka_enum_macros.hh common/aka_error.cc common/aka_error.hh common/aka_event_handler_manager.hh common/aka_extern.cc common/aka_factory.hh common/aka_fwd.hh common/aka_grid_dynamic.hh common/aka_math.cc common/aka_math.hh common/aka_math_tmpl.hh common/aka_memory.cc common/aka_memory.hh common/aka_memory_inline_impl.cc common/aka_named_argument.hh common/aka_random_generator.hh common/aka_safe_enum.hh common/aka_static_memory.cc common/aka_static_memory.hh common/aka_static_memory_inline_impl.cc common/aka_static_memory_tmpl.hh common/aka_typelist.hh common/aka_types.hh common/aka_visitor.hh common/aka_voigthelper.hh common/aka_voigthelper_tmpl.hh common/aka_voigthelper.cc common/aka_warning.hh common/aka_warning_restore.hh common/aka_iterators.hh common/aka_static_if.hh common/aka_compatibilty_with_cpp_standard.hh fe_engine/element_class.hh fe_engine/element_class_tmpl.hh fe_engine/element_classes/element_class_hexahedron_8_inline_impl.cc fe_engine/element_classes/element_class_hexahedron_20_inline_impl.cc fe_engine/element_classes/element_class_pentahedron_6_inline_impl.cc fe_engine/element_classes/element_class_pentahedron_15_inline_impl.cc fe_engine/element_classes/element_class_point_1_inline_impl.cc fe_engine/element_classes/element_class_quadrangle_4_inline_impl.cc fe_engine/element_classes/element_class_quadrangle_8_inline_impl.cc fe_engine/element_classes/element_class_segment_2_inline_impl.cc fe_engine/element_classes/element_class_segment_3_inline_impl.cc fe_engine/element_classes/element_class_tetrahedron_10_inline_impl.cc fe_engine/element_classes/element_class_tetrahedron_4_inline_impl.cc fe_engine/element_classes/element_class_triangle_3_inline_impl.cc fe_engine/element_classes/element_class_triangle_6_inline_impl.cc fe_engine/element_type_conversion.hh fe_engine/fe_engine.cc fe_engine/fe_engine.hh fe_engine/fe_engine_inline_impl.cc fe_engine/fe_engine_template.hh fe_engine/fe_engine_template_tmpl_field.hh fe_engine/fe_engine_template_tmpl.hh fe_engine/geometrical_element_property.hh fe_engine/geometrical_element_property.cc fe_engine/gauss_integration.cc fe_engine/gauss_integration_tmpl.hh fe_engine/integrator.hh fe_engine/integrator_gauss.hh fe_engine/integrator_gauss_inline_impl.cc fe_engine/interpolation_element_tmpl.hh fe_engine/integration_point.hh fe_engine/shape_functions.hh fe_engine/shape_functions.cc fe_engine/shape_functions_inline_impl.cc fe_engine/shape_lagrange_base.cc fe_engine/shape_lagrange_base.hh fe_engine/shape_lagrange_base_inline_impl.cc fe_engine/shape_lagrange.hh fe_engine/shape_lagrange_inline_impl.cc fe_engine/element.hh io/dumper/dumpable.hh io/dumper/dumpable.cc io/dumper/dumpable_dummy.hh io/dumper/dumpable_inline_impl.hh io/dumper/dumper_field.hh io/dumper/dumper_material_padders.hh io/dumper/dumper_filtered_connectivity.hh io/dumper/dumper_element_partition.hh io/mesh_io.cc io/mesh_io.hh io/mesh_io/mesh_io_diana.cc io/mesh_io/mesh_io_diana.hh io/mesh_io/mesh_io_msh.cc io/mesh_io/mesh_io_msh.hh #io/model_io.cc #io/model_io.hh io/parser/algebraic_parser.hh io/parser/input_file_parser.hh io/parser/parsable.cc io/parser/parsable.hh io/parser/parser.cc io/parser/parser_real.cc io/parser/parser_random.cc io/parser/parser_types.cc io/parser/parser_input_files.cc io/parser/parser.hh io/parser/parser_tmpl.hh io/parser/parser_grammar_tmpl.hh io/parser/cppargparse/cppargparse.hh io/parser/cppargparse/cppargparse.cc io/parser/cppargparse/cppargparse_tmpl.hh io/parser/parameter_registry.cc io/parser/parameter_registry.hh io/parser/parameter_registry_tmpl.hh mesh/element_group.cc mesh/element_group.hh mesh/element_group_inline_impl.cc mesh/element_type_map.cc mesh/element_type_map.hh mesh/element_type_map_tmpl.hh mesh/element_type_map_filter.hh mesh/group_manager.cc mesh/group_manager.hh mesh/group_manager_inline_impl.cc mesh/mesh.cc mesh/mesh.hh mesh/mesh_periodic.cc mesh/mesh_accessor.hh mesh/mesh_events.hh mesh/mesh_filter.hh mesh/mesh_global_data_updater.hh mesh/mesh_data.cc mesh/mesh_data.hh mesh/mesh_data_tmpl.hh mesh/mesh_inline_impl.cc mesh/node_group.cc mesh/node_group.hh mesh/node_group_inline_impl.cc mesh/mesh_iterators.hh mesh_utils/mesh_partition.cc mesh_utils/mesh_partition.hh mesh_utils/mesh_partition/mesh_partition_mesh_data.cc mesh_utils/mesh_partition/mesh_partition_mesh_data.hh mesh_utils/mesh_partition/mesh_partition_scotch.hh mesh_utils/mesh_utils_pbc.cc mesh_utils/mesh_utils.cc mesh_utils/mesh_utils.hh mesh_utils/mesh_utils_distribution.cc mesh_utils/mesh_utils_distribution.hh mesh_utils/mesh_utils.hh mesh_utils/mesh_utils_inline_impl.cc mesh_utils/global_ids_updater.hh mesh_utils/global_ids_updater.cc mesh_utils/global_ids_updater_inline_impl.cc - model/boundary_condition.hh - model/boundary_condition_functor.hh - model/boundary_condition_functor_inline_impl.cc - model/boundary_condition_tmpl.hh + model/common/boundary_condition/boundary_condition.hh + model/common/boundary_condition/boundary_condition_functor.hh + model/common/boundary_condition/boundary_condition_functor_inline_impl.cc + model/common/boundary_condition/boundary_condition_tmpl.hh - model/common/neighborhood_base.hh - model/common/neighborhood_base.cc - model/common/neighborhood_base_inline_impl.cc - model/common/neighborhoods_criterion_evaluation/neighborhood_max_criterion.hh - model/common/neighborhoods_criterion_evaluation/neighborhood_max_criterion.cc - model/common/neighborhoods_criterion_evaluation/neighborhood_max_criterion_inline_impl.cc + model/common/non_local_toolbox/neighborhood_base.hh + model/common/non_local_toolbox/neighborhood_base.cc + model/common/non_local_toolbox/neighborhood_base_inline_impl.cc + model/common/non_local_toolbox/neighborhoods_criterion_evaluation/neighborhood_max_criterion.hh + model/common/non_local_toolbox/neighborhoods_criterion_evaluation/neighborhood_max_criterion.cc + model/common/non_local_toolbox/neighborhoods_criterion_evaluation/neighborhood_max_criterion_inline_impl.cc model/common/non_local_toolbox/non_local_manager.hh model/common/non_local_toolbox/non_local_manager.cc model/common/non_local_toolbox/non_local_manager_inline_impl.cc model/common/non_local_toolbox/non_local_manager_callback.hh model/common/non_local_toolbox/non_local_neighborhood_base.hh model/common/non_local_toolbox/non_local_neighborhood_base.cc model/common/non_local_toolbox/non_local_neighborhood.hh model/common/non_local_toolbox/non_local_neighborhood_tmpl.hh model/common/non_local_toolbox/non_local_neighborhood_inline_impl.cc model/common/non_local_toolbox/base_weight_function.hh model/common/non_local_toolbox/base_weight_function_inline_impl.cc - model/dof_manager.cc - model/dof_manager.hh - model/dof_manager_default.cc - model/dof_manager_default.hh - model/dof_manager_default_inline_impl.cc - model/dof_manager_inline_impl.cc - model/model_solver.cc - model/model_solver.hh - model/non_linear_solver.cc - model/non_linear_solver.hh - model/non_linear_solver_default.hh - model/non_linear_solver_lumped.cc - model/non_linear_solver_lumped.hh - model/solver_callback.hh - model/solver_callback.cc - model/time_step_solver.hh - model/time_step_solvers/time_step_solver.cc - model/time_step_solvers/time_step_solver_default.cc - model/time_step_solvers/time_step_solver_default.hh - model/time_step_solvers/time_step_solver_default_explicit.hh - model/non_linear_solver_callback.hh - model/time_step_solvers/time_step_solver_default_solver_callback.hh + model/common/model_solver.cc + model/common/model_solver.hh + model/common/solver_callback.hh + model/common/solver_callback.cc + + model/common/dof_manager/dof_manager.cc + model/common/dof_manager/dof_manager.hh + model/common/dof_manager/dof_manager_default.cc + model/common/dof_manager/dof_manager_default.hh + model/common/dof_manager/dof_manager_default_inline_impl.cc + model/common/dof_manager/dof_manager_inline_impl.cc + + model/common/non_linear_solver/non_linear_solver.cc + model/common/non_linear_solver/non_linear_solver.hh + model/common/non_linear_solver/non_linear_solver_default.hh + model/common/non_linear_solver/non_linear_solver_lumped.cc + model/common/non_linear_solver/non_linear_solver_lumped.hh + + model/common/time_step_solvers/time_step_solver.hh + model/common/time_step_solvers/time_step_solver.cc + model/common/time_step_solvers/time_step_solver_default.cc + model/common/time_step_solvers/time_step_solver_default.hh + model/common/time_step_solvers/time_step_solver_default_explicit.hh + + model/common/integration_scheme/generalized_trapezoidal.cc + model/common/integration_scheme/generalized_trapezoidal.hh + model/common/integration_scheme/integration_scheme.cc + model/common/integration_scheme/integration_scheme.hh + model/common/integration_scheme/integration_scheme_1st_order.cc + model/common/integration_scheme/integration_scheme_1st_order.hh + model/common/integration_scheme/integration_scheme_2nd_order.cc + model/common/integration_scheme/integration_scheme_2nd_order.hh + model/common/integration_scheme/newmark-beta.cc + model/common/integration_scheme/newmark-beta.hh + model/common/integration_scheme/pseudo_time.cc + model/common/integration_scheme/pseudo_time.hh - model/integration_scheme/generalized_trapezoidal.cc - model/integration_scheme/generalized_trapezoidal.hh - model/integration_scheme/integration_scheme.cc - model/integration_scheme/integration_scheme.hh - model/integration_scheme/integration_scheme_1st_order.cc - model/integration_scheme/integration_scheme_1st_order.hh - model/integration_scheme/integration_scheme_2nd_order.cc - model/integration_scheme/integration_scheme_2nd_order.hh - model/integration_scheme/newmark-beta.cc - model/integration_scheme/newmark-beta.hh - model/integration_scheme/pseudo_time.cc - model/integration_scheme/pseudo_time.hh model/model.cc model/model.hh model/model_inline_impl.cc model/model_options.hh solver/sparse_solver.cc solver/sparse_solver.hh solver/sparse_solver_inline_impl.cc solver/sparse_matrix.cc solver/sparse_matrix.hh solver/sparse_matrix_inline_impl.cc solver/sparse_matrix_aij.cc solver/sparse_matrix_aij.hh solver/sparse_matrix_aij_inline_impl.cc solver/terms_to_assemble.hh synchronizer/communication_buffer_inline_impl.cc synchronizer/communication_descriptor.hh synchronizer/communication_descriptor_tmpl.hh synchronizer/communication_request.hh synchronizer/communication_tag.hh synchronizer/communications.hh synchronizer/communications_tmpl.hh synchronizer/communicator.cc synchronizer/communicator.hh synchronizer/communicator_dummy_inline_impl.cc synchronizer/communicator_event_handler.hh synchronizer/communicator_inline_impl.hh synchronizer/data_accessor.cc synchronizer/data_accessor.hh synchronizer/dof_synchronizer.cc synchronizer/dof_synchronizer.hh synchronizer/dof_synchronizer_inline_impl.cc synchronizer/element_info_per_processor.cc synchronizer/element_info_per_processor.hh synchronizer/element_info_per_processor_tmpl.hh synchronizer/element_synchronizer.cc synchronizer/element_synchronizer.hh synchronizer/facet_synchronizer.cc synchronizer/facet_synchronizer.hh synchronizer/facet_synchronizer_inline_impl.cc synchronizer/grid_synchronizer.cc synchronizer/grid_synchronizer.hh synchronizer/grid_synchronizer_tmpl.hh synchronizer/master_element_info_per_processor.cc synchronizer/node_info_per_processor.cc synchronizer/node_info_per_processor.hh synchronizer/node_synchronizer.cc synchronizer/node_synchronizer.hh synchronizer/periodic_node_synchronizer.cc synchronizer/periodic_node_synchronizer.hh synchronizer/slave_element_info_per_processor.cc synchronizer/synchronizer.cc synchronizer/synchronizer.hh synchronizer/synchronizer_impl.hh synchronizer/synchronizer_impl_tmpl.hh synchronizer/synchronizer_registry.cc synchronizer/synchronizer_registry.hh synchronizer/synchronizer_tmpl.hh synchronizer/communication_buffer.hh ) set(AKANTU_SPIRIT_SOURCES io/mesh_io/mesh_io_abaqus.cc io/parser/parser_real.cc io/parser/parser_random.cc io/parser/parser_types.cc io/parser/parser_input_files.cc PARENT_SCOPE ) package_declare_elements(core ELEMENT_TYPES _point_1 _segment_2 _segment_3 _triangle_3 _triangle_6 _quadrangle_4 _quadrangle_8 _tetrahedron_4 _tetrahedron_10 _pentahedron_6 _pentahedron_15 _hexahedron_8 _hexahedron_20 KIND regular GEOMETRICAL_TYPES _gt_point _gt_segment_2 _gt_segment_3 _gt_triangle_3 _gt_triangle_6 _gt_quadrangle_4 _gt_quadrangle_8 _gt_tetrahedron_4 _gt_tetrahedron_10 _gt_hexahedron_8 _gt_hexahedron_20 _gt_pentahedron_6 _gt_pentahedron_15 INTERPOLATION_TYPES _itp_lagrange_point_1 _itp_lagrange_segment_2 _itp_lagrange_segment_3 _itp_lagrange_triangle_3 _itp_lagrange_triangle_6 _itp_lagrange_quadrangle_4 _itp_serendip_quadrangle_8 _itp_lagrange_tetrahedron_4 _itp_lagrange_tetrahedron_10 _itp_lagrange_hexahedron_8 _itp_serendip_hexahedron_20 _itp_lagrange_pentahedron_6 _itp_lagrange_pentahedron_15 GEOMETRICAL_SHAPES _gst_point _gst_triangle _gst_square _gst_prism GAUSS_INTEGRATION_TYPES _git_point _git_segment _git_triangle _git_tetrahedron _git_pentahedron INTERPOLATION_KIND _itk_lagrangian FE_ENGINE_LISTS gradient_on_integration_points interpolate_on_integration_points interpolate compute_normals_on_integration_points inverse_map contains compute_shapes compute_shapes_derivatives get_shapes_derivatives lagrange_base ) package_declare_documentation_files(core manual.sty manual.cls manual.tex manual-macros.sty manual-titlepages.tex manual-authors.tex manual-changelog.tex manual-introduction.tex manual-gettingstarted.tex manual-io.tex manual-feengine.tex manual-elements.tex manual-appendix-elements.tex manual-appendix-packages.tex manual-backmatter.tex manual-bibliography.bib manual-bibliographystyle.bst figures/bc_and_ic_example.pdf figures/boundary.pdf figures/boundary.svg figures/dirichlet.pdf figures/dirichlet.svg # figures/doc_wheel.pdf # figures/doc_wheel.svg figures/hot-point-1.png figures/hot-point-2.png figures/insertion.pdf figures/interpolate.pdf figures/interpolate.svg figures/vectors.pdf figures/vectors.svg figures/elements/hexahedron_8.pdf figures/elements/hexahedron_8.svg figures/elements/quadrangle_4.pdf figures/elements/quadrangle_4.svg figures/elements/quadrangle_8.pdf figures/elements/quadrangle_8.svg figures/elements/segment_2.pdf figures/elements/segment_2.svg figures/elements/segment_3.pdf figures/elements/segment_3.svg figures/elements/tetrahedron_10.pdf figures/elements/tetrahedron_10.svg figures/elements/tetrahedron_4.pdf figures/elements/tetrahedron_4.svg figures/elements/triangle_3.pdf figures/elements/triangle_3.svg figures/elements/triangle_6.pdf figures/elements/triangle_6.svg figures/elements/xtemp.pdf ) package_declare_documentation(core "This package is the core engine of \\akantu. It depends on:" "\\begin{itemize}" "\\item A C++ compiler (\\href{http://gcc.gnu.org/}{GCC} >= 4, or \\href{https://software.intel.com/en-us/intel-compilers}{Intel})." "\\item The cross-platform, open-source \\href{http://www.cmake.org/}{CMake} build system." "\\item The \\href{http://www.boost.org/}{Boost} C++ portable libraries." "\\item The \\href{http://www.zlib.net/}{zlib} compression library." "\\end{itemize}" "" "Under Ubuntu (14.04 LTS) the installation can be performed using the commands:" "\\begin{command}" " > sudo apt-get install cmake libboost-dev zlib1g-dev g++" "\\end{command}" "" "Under Mac OS X the installation requires the following steps:" "\\begin{itemize}" "\\item Install Xcode" "\\item Install the command line tools." "\\item Install the MacPorts project which allows to automatically" "download and install opensource packages." "\\end{itemize}" "Then the following commands should be typed in a terminal:" "\\begin{command}" " > sudo port install cmake gcc48 boost" "\\end{command}" ) find_program(READLINK_COMMAND readlink) find_program(ADDR2LINE_COMMAND addr2line) find_program(PATCH_COMMAND patch) mark_as_advanced(READLINK_COMMAND) mark_as_advanced(ADDR2LINE_COMMAND) package_declare_extra_files_to_package(core SOURCES common/aka_element_classes_info.hh.in common/aka_config.hh.in ) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.9)) package_set_compile_flags(core CXX "-Wno-undefined-var-template") endif() if(DEFINED AKANTU_CXX11_FLAGS) package_declare(core_cxx11 NOT_OPTIONAL DESCRIPTION "C++ 11 additions for Akantu core" COMPILE_FLAGS CXX "${AKANTU_CXX11_FLAGS}") if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.6") set(AKANTU_CORE_CXX11 OFF CACHE BOOL "C++ 11 additions for Akantu core - not supported by the selected compiler" FORCE) endif() endif() package_declare_documentation(core_cxx11 "This option activates some features of the C++11 standard. This is usable with GCC>=4.7 or Intel>=13.") else() if(CMAKE_VERSION VERSION_LESS 3.1) message(FATAL_ERROR "Since version 3.0 Akantu requires at least c++11 capable compiler") endif() endif() diff --git a/packages/implicit.cmake b/packages/implicit.cmake index 159e1476e..75cb3e20b 100644 --- a/packages/implicit.cmake +++ b/packages/implicit.cmake @@ -1,70 +1,70 @@ #=============================================================================== # @file implicit.cmake # # @author Nicolas Richart # # @date creation: Tue Oct 16 2012 # @date last modification: Fri Aug 21 2015 # # @brief package description for the implicit solver # # @section LICENSE # # Copyright (©) 2010-2012, 2014, 2015 EPFL (Ecole Polytechnique Fédérale de # Lausanne) Laboratory (LSMS - Laboratoire de Simulation en Mécanique des # Solides) # # Akantu is free software: you can redistribute it and/or modify it under the # terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # Akantu is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License # along with Akantu. If not, see . # #=============================================================================== package_declare(implicit META DESCRIPTION "Add support for implicit time scheme") package_declare_sources(implicit - model/non_linear_solver_linear.cc - model/non_linear_solver_linear.hh - model/non_linear_solver_newton_raphson.cc - model/non_linear_solver_newton_raphson.hh + model/common/non_linear_solver/non_linear_solver_linear.cc + model/common/non_linear_solver/non_linear_solver_linear.hh + model/common/non_linear_solver/non_linear_solver_newton_raphson.cc + model/common/non_linear_solver/non_linear_solver_newton_raphson.hh ) set(AKANTU_IMPLICIT_SOLVER "Mumps" CACHE STRING "Solver activated in Akantu") set_property(CACHE AKANTU_IMPLICIT_SOLVER PROPERTY STRINGS Mumps #PETSc #Mumps+PETSc ) if(AKANTU_IMPLICIT_SOLVER MATCHES "Mumps") package_add_dependencies(implicit PRIVATE Mumps) else() package_remove_dependencies(implicit Mumps) endif() if(AKANTU_IMPLICIT_SOLVER MATCHES "PETSc") package_add_dependencies(implicit PRIVATE PETSc) else() package_remove_dependency(implicit PETSc) endif() package_declare_documentation(implicit "This package activates the sparse solver necessary to solve implicitely static/dynamic" "finite element problems." "It depends on:" "\\begin{itemize}" " \\item \\href{http://mumps.enseeiht.fr/}{MUMPS}, a parallel sparse direct solver." " \\item \\href{http://www.labri.fr/perso/pelegrin/scotch/}{Scotch}, a graph partitioner." "\\end{itemize}" ) diff --git a/packages/petsc.cmake b/packages/petsc.cmake index 6224175f2..e8dd2cd3e 100644 --- a/packages/petsc.cmake +++ b/packages/petsc.cmake @@ -1,67 +1,63 @@ #=============================================================================== # @file petsc.cmake # # @author Alejandro M. Aragón # @author Aurelia Isabel Cuba Ramos # @author Nicolas Richart # # @date creation: Mon Nov 21 2011 # @date last modification: Tue Jan 19 2016 # # @brief package description for PETSc support # # @section LICENSE # # Copyright (©) 2010-2012, 2014, 2015 EPFL (Ecole Polytechnique Fédérale de # Lausanne) Laboratory (LSMS - Laboratoire de Simulation en Mécanique des # Solides) # # Akantu is free software: you can redistribute it and/or modify it under the # terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # Akantu is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License # along with Akantu. If not, see . # #=============================================================================== package_declare(PETSc EXTERNAL DESCRIPTION "Add PETSc support in akantu" EXTRA_PACKAGE_OPTIONS ARGS COMPONENTS C DEPENDS parallel) package_declare_sources(petsc - model/dof_manager_petsc.hh - model/dof_manager_petsc.cc + model/common/dof_manager/dof_manager_petsc.hh + model/common/dof_manager/dof_manager_petsc.cc solver/sparse_matrix_petsc.hh solver/sparse_matrix_petsc.cc solver/solver_petsc.hh solver/solver_petsc.cc solver/petsc_wrapper.hh ) package_declare_extra_files_to_package(PETSc - PROJECT - cmake/Modules/FindPETSc.cmake - cmake/Modules/FindPackageMultipass.cmake - cmake/Modules/ResolveCompilerPaths.cmake - cmake/Modules/CorrectWindowsPaths.cmake + PROJECT cmake/Modules/FindPETSc.cmake ) package_declare_documentation(PETSc "This package enables PETSc as a solver in Akantu" "" "Under Ubuntu (14.04 LTS) the installation can be performed using the commands:" "\\begin{command}" " > sudo apt-get install libpetsc3.4.2-dev" "\\end{command}" "" ) package_set_package_system_dependency(PETSc deb libpetsc3.4.2) package_set_package_system_dependency(PETSc deb-src libpetsc3.4.2-dev) diff --git a/packages/python_interface.cmake b/packages/python_interface.cmake index bdd6535ca..0040ac85d 100644 --- a/packages/python_interface.cmake +++ b/packages/python_interface.cmake @@ -1,62 +1,62 @@ #=============================================================================== # @file python_interface.cmake # # @author Guillaume Anciaux # @author Nicolas Richart # # @date creation: Tue Nov 29 2011 # @date last modification: Fri Jan 22 2016 # # @brief package description for the python interface # # @section LICENSE # # Copyright (©) 2010-2012, 2014, 2015 EPFL (Ecole Polytechnique Fédérale de # Lausanne) Laboratory (LSMS - Laboratoire de Simulation en Mécanique des # Solides) # # Akantu is free software: you can redistribute it and/or modify it under the # terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # Akantu is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License # along with Akantu. If not, see . # #=============================================================================== package_declare(python_interface DESCRIPTION "Akantu's python interface" DEPENDS PythonLibs) package_declare_sources(python_interface python/python_functor.cc python/python_functor.hh python/python_functor_inline_impl.cc - model/boundary_condition_python_functor.hh - model/boundary_condition_python_functor.cc + model/common/boundary_condition/boundary_condition_python_functor.hh + model/common/boundary_condition/boundary_condition_python_functor.cc model/solid_mechanics/materials/material_python/material_python.cc model/solid_mechanics/materials/material_python/material_python.hh ) package_set_package_system_dependency(python_interface deb-src swig3.0) package_declare_documentation(python_interface "This package enables the python interface of Akantu. It relies on swig3.0 to generate the code" "" "Under Ubuntu (14.04 LTS) the installation can be performed using the commands:" "\\begin{command}" " > sudo apt-get install swig3.0" "\\end{command}" "" ) package_declare_documentation_files(python_interface manual-python.tex ) diff --git a/src/model/boundary_condition.hh b/src/model/common/boundary_condition/boundary_condition.hh similarity index 100% rename from src/model/boundary_condition.hh rename to src/model/common/boundary_condition/boundary_condition.hh diff --git a/src/model/boundary_condition_functor.hh b/src/model/common/boundary_condition/boundary_condition_functor.hh similarity index 100% rename from src/model/boundary_condition_functor.hh rename to src/model/common/boundary_condition/boundary_condition_functor.hh diff --git a/src/model/boundary_condition_functor_inline_impl.cc b/src/model/common/boundary_condition/boundary_condition_functor_inline_impl.cc similarity index 100% rename from src/model/boundary_condition_functor_inline_impl.cc rename to src/model/common/boundary_condition/boundary_condition_functor_inline_impl.cc diff --git a/src/model/boundary_condition_python_functor.cc b/src/model/common/boundary_condition/boundary_condition_python_functor.cc similarity index 100% rename from src/model/boundary_condition_python_functor.cc rename to src/model/common/boundary_condition/boundary_condition_python_functor.cc diff --git a/src/model/boundary_condition_python_functor.hh b/src/model/common/boundary_condition/boundary_condition_python_functor.hh similarity index 100% rename from src/model/boundary_condition_python_functor.hh rename to src/model/common/boundary_condition/boundary_condition_python_functor.hh diff --git a/src/model/boundary_condition_tmpl.hh b/src/model/common/boundary_condition/boundary_condition_tmpl.hh similarity index 100% rename from src/model/boundary_condition_tmpl.hh rename to src/model/common/boundary_condition/boundary_condition_tmpl.hh diff --git a/src/model/dof_manager.cc b/src/model/common/dof_manager/dof_manager.cc similarity index 100% rename from src/model/dof_manager.cc rename to src/model/common/dof_manager/dof_manager.cc diff --git a/src/model/dof_manager.hh b/src/model/common/dof_manager/dof_manager.hh similarity index 100% rename from src/model/dof_manager.hh rename to src/model/common/dof_manager/dof_manager.hh diff --git a/src/model/dof_manager_default.cc b/src/model/common/dof_manager/dof_manager_default.cc similarity index 100% rename from src/model/dof_manager_default.cc rename to src/model/common/dof_manager/dof_manager_default.cc diff --git a/src/model/dof_manager_default.hh b/src/model/common/dof_manager/dof_manager_default.hh similarity index 100% rename from src/model/dof_manager_default.hh rename to src/model/common/dof_manager/dof_manager_default.hh diff --git a/src/model/dof_manager_default_inline_impl.cc b/src/model/common/dof_manager/dof_manager_default_inline_impl.cc similarity index 100% rename from src/model/dof_manager_default_inline_impl.cc rename to src/model/common/dof_manager/dof_manager_default_inline_impl.cc diff --git a/src/model/dof_manager_inline_impl.cc b/src/model/common/dof_manager/dof_manager_inline_impl.cc similarity index 100% rename from src/model/dof_manager_inline_impl.cc rename to src/model/common/dof_manager/dof_manager_inline_impl.cc diff --git a/src/model/dof_manager_petsc.cc b/src/model/common/dof_manager/dof_manager_petsc.cc similarity index 100% rename from src/model/dof_manager_petsc.cc rename to src/model/common/dof_manager/dof_manager_petsc.cc diff --git a/src/model/dof_manager_petsc.hh b/src/model/common/dof_manager/dof_manager_petsc.hh similarity index 100% rename from src/model/dof_manager_petsc.hh rename to src/model/common/dof_manager/dof_manager_petsc.hh diff --git a/src/model/integration_scheme/generalized_trapezoidal.cc b/src/model/common/integration_scheme/generalized_trapezoidal.cc similarity index 100% rename from src/model/integration_scheme/generalized_trapezoidal.cc rename to src/model/common/integration_scheme/generalized_trapezoidal.cc diff --git a/src/model/integration_scheme/generalized_trapezoidal.hh b/src/model/common/integration_scheme/generalized_trapezoidal.hh similarity index 100% rename from src/model/integration_scheme/generalized_trapezoidal.hh rename to src/model/common/integration_scheme/generalized_trapezoidal.hh diff --git a/src/model/integration_scheme/integration_scheme.cc b/src/model/common/integration_scheme/integration_scheme.cc similarity index 100% rename from src/model/integration_scheme/integration_scheme.cc rename to src/model/common/integration_scheme/integration_scheme.cc diff --git a/src/model/integration_scheme/integration_scheme.hh b/src/model/common/integration_scheme/integration_scheme.hh similarity index 100% rename from src/model/integration_scheme/integration_scheme.hh rename to src/model/common/integration_scheme/integration_scheme.hh diff --git a/src/model/integration_scheme/integration_scheme_1st_order.cc b/src/model/common/integration_scheme/integration_scheme_1st_order.cc similarity index 100% rename from src/model/integration_scheme/integration_scheme_1st_order.cc rename to src/model/common/integration_scheme/integration_scheme_1st_order.cc diff --git a/src/model/integration_scheme/integration_scheme_1st_order.hh b/src/model/common/integration_scheme/integration_scheme_1st_order.hh similarity index 100% rename from src/model/integration_scheme/integration_scheme_1st_order.hh rename to src/model/common/integration_scheme/integration_scheme_1st_order.hh diff --git a/src/model/integration_scheme/integration_scheme_2nd_order.cc b/src/model/common/integration_scheme/integration_scheme_2nd_order.cc similarity index 100% rename from src/model/integration_scheme/integration_scheme_2nd_order.cc rename to src/model/common/integration_scheme/integration_scheme_2nd_order.cc diff --git a/src/model/integration_scheme/integration_scheme_2nd_order.hh b/src/model/common/integration_scheme/integration_scheme_2nd_order.hh similarity index 100% rename from src/model/integration_scheme/integration_scheme_2nd_order.hh rename to src/model/common/integration_scheme/integration_scheme_2nd_order.hh diff --git a/src/model/integration_scheme/newmark-beta.cc b/src/model/common/integration_scheme/newmark-beta.cc similarity index 100% rename from src/model/integration_scheme/newmark-beta.cc rename to src/model/common/integration_scheme/newmark-beta.cc diff --git a/src/model/integration_scheme/newmark-beta.hh b/src/model/common/integration_scheme/newmark-beta.hh similarity index 100% rename from src/model/integration_scheme/newmark-beta.hh rename to src/model/common/integration_scheme/newmark-beta.hh diff --git a/src/model/integration_scheme/pseudo_time.cc b/src/model/common/integration_scheme/pseudo_time.cc similarity index 100% rename from src/model/integration_scheme/pseudo_time.cc rename to src/model/common/integration_scheme/pseudo_time.cc diff --git a/src/model/integration_scheme/pseudo_time.hh b/src/model/common/integration_scheme/pseudo_time.hh similarity index 100% rename from src/model/integration_scheme/pseudo_time.hh rename to src/model/common/integration_scheme/pseudo_time.hh diff --git a/src/model/model_solver.cc b/src/model/common/model_solver.cc similarity index 100% rename from src/model/model_solver.cc rename to src/model/common/model_solver.cc diff --git a/src/model/model_solver.hh b/src/model/common/model_solver.hh similarity index 100% rename from src/model/model_solver.hh rename to src/model/common/model_solver.hh diff --git a/src/model/non_linear_solver.cc b/src/model/common/non_linear_solver/non_linear_solver.cc similarity index 100% rename from src/model/non_linear_solver.cc rename to src/model/common/non_linear_solver/non_linear_solver.cc diff --git a/src/model/non_linear_solver.hh b/src/model/common/non_linear_solver/non_linear_solver.hh similarity index 100% rename from src/model/non_linear_solver.hh rename to src/model/common/non_linear_solver/non_linear_solver.hh diff --git a/src/model/non_linear_solver_default.hh b/src/model/common/non_linear_solver/non_linear_solver_default.hh similarity index 100% rename from src/model/non_linear_solver_default.hh rename to src/model/common/non_linear_solver/non_linear_solver_default.hh diff --git a/src/model/non_linear_solver_linear.cc b/src/model/common/non_linear_solver/non_linear_solver_linear.cc similarity index 100% rename from src/model/non_linear_solver_linear.cc rename to src/model/common/non_linear_solver/non_linear_solver_linear.cc diff --git a/src/model/non_linear_solver_linear.hh b/src/model/common/non_linear_solver/non_linear_solver_linear.hh similarity index 100% rename from src/model/non_linear_solver_linear.hh rename to src/model/common/non_linear_solver/non_linear_solver_linear.hh diff --git a/src/model/non_linear_solver_lumped.cc b/src/model/common/non_linear_solver/non_linear_solver_lumped.cc similarity index 100% rename from src/model/non_linear_solver_lumped.cc rename to src/model/common/non_linear_solver/non_linear_solver_lumped.cc diff --git a/src/model/non_linear_solver_lumped.hh b/src/model/common/non_linear_solver/non_linear_solver_lumped.hh similarity index 100% rename from src/model/non_linear_solver_lumped.hh rename to src/model/common/non_linear_solver/non_linear_solver_lumped.hh diff --git a/src/model/non_linear_solver_newton_raphson.cc b/src/model/common/non_linear_solver/non_linear_solver_newton_raphson.cc similarity index 100% rename from src/model/non_linear_solver_newton_raphson.cc rename to src/model/common/non_linear_solver/non_linear_solver_newton_raphson.cc diff --git a/src/model/non_linear_solver_newton_raphson.hh b/src/model/common/non_linear_solver/non_linear_solver_newton_raphson.hh similarity index 100% rename from src/model/non_linear_solver_newton_raphson.hh rename to src/model/common/non_linear_solver/non_linear_solver_newton_raphson.hh diff --git a/src/model/common/neighborhood_base.cc b/src/model/common/non_local_toolbox/neighborhood_base.cc similarity index 100% rename from src/model/common/neighborhood_base.cc rename to src/model/common/non_local_toolbox/neighborhood_base.cc diff --git a/src/model/common/neighborhood_base.hh b/src/model/common/non_local_toolbox/neighborhood_base.hh similarity index 100% rename from src/model/common/neighborhood_base.hh rename to src/model/common/non_local_toolbox/neighborhood_base.hh diff --git a/src/model/common/neighborhood_base_inline_impl.cc b/src/model/common/non_local_toolbox/neighborhood_base_inline_impl.cc similarity index 100% rename from src/model/common/neighborhood_base_inline_impl.cc rename to src/model/common/non_local_toolbox/neighborhood_base_inline_impl.cc diff --git a/src/model/common/neighborhoods_criterion_evaluation/neighborhood_max_criterion.cc b/src/model/common/non_local_toolbox/neighborhoods_criterion_evaluation/neighborhood_max_criterion.cc similarity index 100% rename from src/model/common/neighborhoods_criterion_evaluation/neighborhood_max_criterion.cc rename to src/model/common/non_local_toolbox/neighborhoods_criterion_evaluation/neighborhood_max_criterion.cc diff --git a/src/model/common/neighborhoods_criterion_evaluation/neighborhood_max_criterion.hh b/src/model/common/non_local_toolbox/neighborhoods_criterion_evaluation/neighborhood_max_criterion.hh similarity index 100% rename from src/model/common/neighborhoods_criterion_evaluation/neighborhood_max_criterion.hh rename to src/model/common/non_local_toolbox/neighborhoods_criterion_evaluation/neighborhood_max_criterion.hh diff --git a/src/model/common/neighborhoods_criterion_evaluation/neighborhood_max_criterion_inline_impl.cc b/src/model/common/non_local_toolbox/neighborhoods_criterion_evaluation/neighborhood_max_criterion_inline_impl.cc similarity index 100% rename from src/model/common/neighborhoods_criterion_evaluation/neighborhood_max_criterion_inline_impl.cc rename to src/model/common/non_local_toolbox/neighborhoods_criterion_evaluation/neighborhood_max_criterion_inline_impl.cc diff --git a/src/model/solver_callback.cc b/src/model/common/solver_callback.cc similarity index 100% rename from src/model/solver_callback.cc rename to src/model/common/solver_callback.cc diff --git a/src/model/solver_callback.hh b/src/model/common/solver_callback.hh similarity index 100% rename from src/model/solver_callback.hh rename to src/model/common/solver_callback.hh diff --git a/src/model/time_step_solvers/time_step_solver.cc b/src/model/common/time_step_solvers/time_step_solver.cc similarity index 100% rename from src/model/time_step_solvers/time_step_solver.cc rename to src/model/common/time_step_solvers/time_step_solver.cc diff --git a/src/model/time_step_solver.hh b/src/model/common/time_step_solvers/time_step_solver.hh similarity index 100% rename from src/model/time_step_solver.hh rename to src/model/common/time_step_solvers/time_step_solver.hh diff --git a/src/model/time_step_solvers/time_step_solver_default.cc b/src/model/common/time_step_solvers/time_step_solver_default.cc similarity index 100% rename from src/model/time_step_solvers/time_step_solver_default.cc rename to src/model/common/time_step_solvers/time_step_solver_default.cc diff --git a/src/model/time_step_solvers/time_step_solver_default.hh b/src/model/common/time_step_solvers/time_step_solver_default.hh similarity index 100% rename from src/model/time_step_solvers/time_step_solver_default.hh rename to src/model/common/time_step_solvers/time_step_solver_default.hh diff --git a/src/model/time_step_solvers/time_step_solver_default_explicit.hh b/src/model/common/time_step_solvers/time_step_solver_default_explicit.hh similarity index 100% rename from src/model/time_step_solvers/time_step_solver_default_explicit.hh rename to src/model/common/time_step_solvers/time_step_solver_default_explicit.hh diff --git a/src/model/non_linear_solver_callback.hh b/src/model/non_linear_solver_callback.hh deleted file mode 100644 index 45fe7cddd..000000000 --- a/src/model/non_linear_solver_callback.hh +++ /dev/null @@ -1,61 +0,0 @@ -/** - * @file non_linear_solver_callback.hh - * - * @author Nicolas Richart - * - * @date creation: Fri Jun 18 2010 - * @date last modification: Tue Feb 20 2018 - * - * @brief Interface to implement for the non linear solver to work - * - * @section LICENSE - * - * Copyright (©) 2010-2018 EPFL (Ecole Polytechnique Fédérale de Lausanne) - * Laboratory (LSMS - Laboratoire de Simulation en Mécanique des Solides) - * - * Akantu is free software: you can redistribute it and/or modify it under the - * terms of the GNU Lesser General Public License as published by the Free - * Software Foundation, either version 3 of the License, or (at your option) any - * later version. - * - * Akantu is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Akantu. If not, see . - * - */ - -/* -------------------------------------------------------------------------- */ - -#ifndef __AKANTU_NON_LINEAR_SOLVER_CALLBACK_HH__ -#define __AKANTU_NON_LINEAR_SOLVER_CALLBACK_HH__ - -namespace akantu { - -class NonLinearSolverCallback { - /* ------------------------------------------------------------------------ */ - /* Methods */ - /* ------------------------------------------------------------------------ */ -public: - /// callback to assemble the Jacobian Matrix - virtual void assembleJacobian() { AKANTU_TO_IMPLEMENT(); } - - /// callback to assemble the residual (rhs) - virtual void assembleResidual() { AKANTU_TO_IMPLEMENT(); } - - /* ------------------------------------------------------------------------ */ - /* Dynamic simulations part */ - /* ------------------------------------------------------------------------ */ - /// callback for the predictor (in case of dynamic simulation) - virtual void predictor() { AKANTU_TO_IMPLEMENT(); } - - /// callback for the corrector (in case of dynamic simulation) - virtual void corrector() { AKANTU_TO_IMPLEMENT(); } -}; - -} // akantu - -#endif /* __AKANTU_NON_LINEAR_SOLVER_CALLBACK_HH__ */ diff --git a/src/model/time_step_solvers/time_step_solver_default_solver_callback.hh b/src/model/time_step_solvers/time_step_solver_default_solver_callback.hh deleted file mode 100644 index 5d4c1d73d..000000000 --- a/src/model/time_step_solvers/time_step_solver_default_solver_callback.hh +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @file time_step_solver_default_solver_callback.hh - * - * @author Nicolas Richart - * - * @date creation: Fri Jun 18 2010 - * @date last modification: Wed Jan 31 2018 - * - * @brief Implementation of the NonLinearSolverCallback for the time step - * solver - * - * @section LICENSE - * - * Copyright (©) 2010-2018 EPFL (Ecole Polytechnique Fédérale de Lausanne) - * Laboratory (LSMS - Laboratoire de Simulation en Mécanique des Solides) - * - * Akantu is free software: you can redistribute it and/or modify it under the - * terms of the GNU Lesser General Public License as published by the Free - * Software Foundation, either version 3 of the License, or (at your option) any - * later version. - * - * Akantu is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Akantu. If not, see . - * - */ - -/* -------------------------------------------------------------------------- */ -#include "non_linear_solver_callback.hh" -/* -------------------------------------------------------------------------- */ - -#ifndef __AKANTU_TIME_STEP_SOLVER_DEFAULT_SOLVER_CALLBACK_HH__ -#define __AKANTU_TIME_STEP_SOLVER_DEFAULT_SOLVER_CALLBACK_HH__ - -namespace akantu { - -class TimeStepSolverCallback : public NonLinearSolverCallback { - /* ------------------------------------------------------------------------ */ - /* Methods */ - /* ------------------------------------------------------------------------ */ -public: - /// callback to assemble the Jacobian Matrix - virtual void assembleJacobian(); - - /// callback to assemble the residual (rhs) - virtual void assembleResidual(); - - /* ------------------------------------------------------------------------ */ - /* Dynamic simulations part */ - /* ------------------------------------------------------------------------ */ - /// callback for the predictor (in case of dynamic simulation) - virtual void predictor(); - - /// callback for the corrector (in case of dynamic simulation) - virtual void corrector(); -}; - -} // akantu - -#endif /* __AKANTU_TIME_STEP_SOLVER_DEFAULT_SOLVER_CALLBACK_HH__ */