├── .gitignore
├── CMakeLists.txt
├── addons
└── paraview_plugin
│ ├── CMakeLists.txt
│ ├── IgatoolsParaViewReader.cpp
│ ├── IgatoolsParaViewReader.h
│ ├── IgatoolsParaViewReader.xml
│ ├── Readme
│ ├── cmake
│ └── macros
│ │ ├── create_paraview_plugin_configuration_target.cmake
│ │ ├── create_paraview_plugin_install_target.cmake
│ │ ├── find_igatools.cmake
│ │ ├── find_paraview.cmake
│ │ ├── generate_plugin_instantiations.cmake
│ │ └── print_paraview_plugin_final_message.cmake
│ ├── doc
│ └── iga_paraview_plugin.dox
│ ├── include
│ └── paraview_plugin
│ │ ├── vtk_iga_control_grid.h
│ │ ├── vtk_iga_grid.h
│ │ ├── vtk_iga_grid_container.h
│ │ ├── vtk_iga_grid_information.h
│ │ ├── vtk_iga_knot_grid.h
│ │ ├── vtk_iga_solid_grid.h
│ │ └── vtk_iga_types.h
│ └── source
│ ├── vtk_iga_control_grid.cpp
│ ├── vtk_iga_control_grid.inst.py
│ ├── vtk_iga_grid.cpp
│ ├── vtk_iga_grid.inst.py
│ ├── vtk_iga_grid_container.cpp
│ ├── vtk_iga_grid_information.cpp
│ ├── vtk_iga_knot_grid.cpp
│ ├── vtk_iga_knot_grid.inst.py
│ ├── vtk_iga_solid_grid.cpp
│ └── vtk_iga_solid_grid.inst.py
├── authors.txt
├── cmake
├── config
│ ├── igatoolsConfig.cmake.in
│ └── igatoolsConfigVersion.cmake.in
├── instantiation_scripts
│ ├── create_basis_table.cmake
│ ├── generate_inst_table.py
│ ├── generate_instantiations.cmake
│ └── init_instantiation_data.py
└── macros
│ ├── MacroOutOfBuildInstall.cmake
│ ├── MacroOutOfSourceBuild.cmake
│ ├── create_doc_target.cmake
│ ├── create_install_target.cmake
│ ├── find_boost.cmake
│ ├── find_cblas.cmake
│ ├── find_cgal.cmake
│ ├── find_doxygen.cmake
│ ├── find_petsc.cmake
│ ├── find_python.cmake
│ ├── find_sed.cmake
│ ├── find_trilinos.cmake
│ ├── find_xercesc.cmake
│ ├── init_cxx_flags.cmake
│ └── print_final_message.cmake
├── doc
├── Doxyfile.in
├── bibliography.bib
├── design.dox
├── html_extra_style.html
├── iga-logo.png
├── input_output_xml.dox
├── main.dox
├── multi_array_containers.dox
└── refinement.dox
├── include
└── igatools
│ ├── base
│ ├── array_utils.h
│ ├── cache_status.h
│ ├── config.h.in
│ ├── equality_constraint.h
│ ├── exceptions.h
│ ├── flags_handler.h
│ ├── linear_constraint.h
│ ├── logstream.h
│ ├── numbers.h
│ ├── objects_container.h
│ ├── print_info_utils.h
│ ├── properties.h
│ ├── properties_id_container.h
│ ├── quadrature.h
│ ├── quadrature_lib.h
│ ├── tensor-inline.h
│ ├── tensor.h
│ ├── tuple_utils.h
│ ├── types.h
│ └── value_types.h
│ ├── basis_functions
│ ├── basis.h
│ ├── basis_element.h
│ ├── basis_handler.h
│ ├── basis_tools.h
│ ├── bernstein_basis.h
│ ├── bernstein_extraction.h
│ ├── bspline.h
│ ├── bspline_element.h
│ ├── bspline_handler.h
│ ├── dof_distribution.h
│ ├── nurbs.h
│ ├── nurbs_element.h
│ ├── nurbs_handler.h
│ ├── physical_basis.h
│ ├── physical_basis_element.h
│ ├── physical_basis_handler.h
│ ├── reference_basis.h
│ ├── reference_basis_element.h
│ ├── reference_basis_handler.h
│ ├── space_tools.h
│ ├── spline_space.h
│ ├── values1d_const_view.h
│ └── values_cache.h
│ ├── contrib
│ ├── cereal
│ │ └── include
│ │ │ └── cereal
│ │ │ ├── access.hpp
│ │ │ ├── archives
│ │ │ ├── adapters.hpp
│ │ │ ├── binary.hpp
│ │ │ ├── json.hpp
│ │ │ ├── portable_binary.hpp
│ │ │ └── xml.hpp
│ │ │ ├── cereal.hpp
│ │ │ ├── details
│ │ │ ├── helpers.hpp
│ │ │ ├── polymorphic_impl.hpp
│ │ │ ├── static_object.hpp
│ │ │ ├── traits.hpp
│ │ │ └── util.hpp
│ │ │ ├── external
│ │ │ ├── base64.hpp
│ │ │ ├── rapidjson
│ │ │ │ ├── document.h
│ │ │ │ ├── filestream.h
│ │ │ │ ├── genericstream.h
│ │ │ │ ├── internal
│ │ │ │ │ ├── pow10.h
│ │ │ │ │ ├── stack.h
│ │ │ │ │ └── strfunc.h
│ │ │ │ ├── license.txt
│ │ │ │ ├── prettywriter.h
│ │ │ │ ├── rapidjson.h
│ │ │ │ ├── reader.h
│ │ │ │ ├── stringbuffer.h
│ │ │ │ └── writer.h
│ │ │ └── rapidxml
│ │ │ │ ├── license.txt
│ │ │ │ ├── manual.html
│ │ │ │ ├── rapidxml.hpp
│ │ │ │ ├── rapidxml_iterators.hpp
│ │ │ │ ├── rapidxml_print.hpp
│ │ │ │ └── rapidxml_utils.hpp
│ │ │ ├── macros.hpp
│ │ │ └── types
│ │ │ ├── array.hpp
│ │ │ ├── base_class.hpp
│ │ │ ├── bitset.hpp
│ │ │ ├── boost_variant.hpp
│ │ │ ├── chrono.hpp
│ │ │ ├── common.hpp
│ │ │ ├── complex.hpp
│ │ │ ├── deque.hpp
│ │ │ ├── forward_list.hpp
│ │ │ ├── list.hpp
│ │ │ ├── map.hpp
│ │ │ ├── memory.hpp
│ │ │ ├── polymorphic.hpp
│ │ │ ├── queue.hpp
│ │ │ ├── set.hpp
│ │ │ ├── stack.hpp
│ │ │ ├── string.hpp
│ │ │ ├── tuple.hpp
│ │ │ ├── unordered_map.hpp
│ │ │ ├── unordered_set.hpp
│ │ │ ├── utility.hpp
│ │ │ ├── valarray.hpp
│ │ │ └── vector.hpp
│ ├── convergence_table.h
│ ├── mpl_util.h
│ ├── table.h
│ ├── table_handler.h
│ ├── table_indices.h
│ └── variant.h
│ ├── functions
│ ├── formula_function.h
│ ├── formula_function_handler.h
│ ├── formula_grid_function.h
│ ├── formula_grid_function_handler.h
│ ├── function.h
│ ├── function_element.h
│ ├── function_handler.h
│ ├── function_lib.h
│ ├── grid_function.h
│ ├── grid_function_element.h
│ ├── grid_function_handler.h
│ ├── grid_function_lib.h
│ ├── identity_function.h
│ ├── identity_function_handler.h
│ ├── ig_coefficients.h
│ ├── ig_function.h
│ ├── ig_function_handler.h
│ ├── ig_grid_function.h
│ ├── ig_grid_function_handler.h
│ ├── sub_function.h
│ ├── sub_grid_function.h
│ ├── sub_grid_function_element.h
│ └── sub_grid_function_handler.h
│ ├── geometry
│ ├── bbox.h
│ ├── domain.h
│ ├── domain_element.h
│ ├── domain_handler.h
│ ├── domain_lib.h
│ ├── grid.h
│ ├── grid_element.h
│ ├── grid_handler.h
│ ├── grid_iterator.h
│ ├── grid_tools.h
│ ├── push_forward.h
│ └── unit_element.h
│ ├── io
│ ├── objects_container_reader-XML_schema.h
│ ├── objects_container_xml_reader.h
│ ├── objects_container_xml_writer.h
│ ├── writer.h
│ ├── xml_document.h
│ └── xml_element.h
│ ├── linear_algebra
│ ├── dense_matrix.h
│ ├── dense_vector.h
│ ├── dof_tools.h
│ ├── epetra.h
│ ├── epetra_graph.h
│ ├── epetra_map.h
│ ├── epetra_matrix.h
│ ├── epetra_solver.h
│ ├── epetra_vector.h
│ └── native_vector.h
│ ├── operators
│ ├── elasticity_operators_sf_integration.h
│ ├── elliptic_operators.h
│ ├── elliptic_operators_sf_integration.h
│ ├── elliptic_operators_std_integration.h
│ ├── integrator_sum_factorization.h
│ └── interface_operator.h
│ └── utils
│ ├── cartesian_product_array.h
│ ├── cartesian_product_indexer.h
│ ├── concatenated_iterator-inline.h
│ ├── concatenated_iterator.h
│ ├── container_view-inline.h
│ ├── container_view.h
│ ├── dynamic_multi_array.h
│ ├── element_index.h
│ ├── multi_array-inline.h
│ ├── multi_array.h
│ ├── multi_array_iterator-inline.h
│ ├── multi_array_iterator.h
│ ├── multi_array_utils-inline.h
│ ├── multi_array_utils.h
│ ├── safe_stl_array.h
│ ├── safe_stl_container.h
│ ├── safe_stl_map.h
│ ├── safe_stl_set.h
│ ├── safe_stl_vector.h
│ ├── shared_ptr_constness_handler.h
│ ├── static_multi_array-inline.h
│ ├── static_multi_array.h
│ ├── tensor_index-inline.h
│ ├── tensor_index.h
│ ├── tensor_product_array-inline.h
│ ├── tensor_product_array.h
│ ├── tensor_range.h
│ ├── tensor_size.h
│ ├── tensor_sized_container-inline.h
│ ├── tensor_sized_container.h
│ ├── unique_id_generator.h
│ ├── value_container.h
│ ├── value_table.h
│ ├── value_vector.h
│ ├── vector_tools-inline.h
│ └── vector_tools.h
├── license.txt
├── readme.txt
├── source
├── base
│ ├── cache_status.cpp
│ ├── exceptions.cpp
│ ├── flags_handler.cpp
│ ├── instantiated_types.cpp
│ ├── instantiated_types.inst.py
│ ├── logstream.cpp
│ ├── objects_container.cpp
│ ├── objects_container.inst.py
│ ├── objects_container.serial.py
│ ├── properties.cpp
│ ├── properties_id_container.cpp
│ ├── properties_id_container.inst.py
│ ├── quadrature.cpp
│ ├── quadrature.inst.py
│ ├── quadrature_lib.cpp
│ ├── quadrature_lib.inst.py
│ ├── tensor.cpp
│ ├── tensor.inst.py
│ ├── value_flags_handler.cpp
│ └── value_types.cpp
├── basis_functions
│ ├── basis.cpp
│ ├── basis.inst.py
│ ├── basis_element.cpp
│ ├── basis_element.inst.py
│ ├── basis_handler.cpp
│ ├── basis_handler.inst.py
│ ├── basis_tools.cpp
│ ├── basis_tools.inst.py
│ ├── bernstein_basis.cpp
│ ├── bernstein_extraction.cpp
│ ├── bernstein_extraction.inst.py
│ ├── bernstein_extraction.serial.py
│ ├── bspline.cpp
│ ├── bspline.inst.py
│ ├── bspline.serial.py
│ ├── bspline_element.cpp
│ ├── bspline_element.inst.py
│ ├── bspline_element_scalar_evaluator.inst.py
│ ├── bspline_handler.cpp
│ ├── bspline_handler.inst.py
│ ├── dof_distribution.cpp
│ ├── dof_distribution.inst.py
│ ├── dof_distribution.serial.py
│ ├── nurbs.cpp
│ ├── nurbs.inst.py
│ ├── nurbs.serial.py
│ ├── nurbs_element.cpp
│ ├── nurbs_element.inst.py
│ ├── nurbs_handler.cpp
│ ├── nurbs_handler.inst.py
│ ├── physical_basis.cpp
│ ├── physical_basis.inst.py
│ ├── physical_basis_element.cpp
│ ├── physical_basis_element.inst.py
│ ├── physical_basis_handler.cpp
│ ├── physical_basis_handler.inst.py
│ ├── reference_basis.cpp
│ ├── reference_basis.inst.py
│ ├── reference_basis_element.cpp
│ ├── reference_basis_element.inst.py
│ ├── reference_basis_handler.cpp
│ ├── reference_basis_handler.inst.py
│ ├── spline_space.cpp
│ ├── spline_space.inst.py
│ ├── spline_space.serial.py
│ └── values1d_const_view.cpp
├── contrib
│ ├── convergence_table.cpp
│ └── table_handler.cpp
├── functions
│ ├── formula_function.cpp
│ ├── formula_function.inst.py
│ ├── formula_function_handler.cpp
│ ├── formula_function_handler.inst.py
│ ├── formula_grid_function.cpp
│ ├── formula_grid_function.inst.py
│ ├── formula_grid_function_handler.cpp
│ ├── formula_grid_function_handler.inst.py
│ ├── function.cpp
│ ├── function.inst.py
│ ├── function_element.cpp
│ ├── function_element.inst.py
│ ├── function_handler.cpp
│ ├── function_handler.inst.py
│ ├── function_lib.cpp
│ ├── function_lib.inst.py
│ ├── grid_function.cpp
│ ├── grid_function.inst.py
│ ├── grid_function_element.cpp
│ ├── grid_function_element.inst.py
│ ├── grid_function_handler.cpp
│ ├── grid_function_handler.inst.py
│ ├── grid_function_lib.cpp
│ ├── grid_function_lib.inst.py
│ ├── identity_function.cpp
│ ├── identity_function_handler.cpp
│ ├── ig_coefficients.cpp
│ ├── ig_function.cpp
│ ├── ig_function.inst.py
│ ├── ig_function.serial.py
│ ├── ig_function_handler.cpp
│ ├── ig_function_handler.inst.py
│ ├── ig_grid_function.cpp
│ ├── ig_grid_function.inst.py
│ ├── ig_grid_function.serial.py
│ ├── ig_grid_function_handler.cpp
│ ├── ig_grid_function_handler.inst.py
│ ├── sub_grid_function.cpp
│ ├── sub_grid_function.inst.py
│ ├── sub_grid_function_element.cpp
│ ├── sub_grid_function_element.inst.py
│ ├── sub_grid_function_handler.cpp
│ └── sub_grid_function_handler.inst.py
├── geometry
│ ├── bbox.cpp
│ ├── bbox.inst.py
│ ├── domain.cpp
│ ├── domain.inst.py
│ ├── domain_element.cpp
│ ├── domain_element.inst.py
│ ├── domain_handler.cpp
│ ├── domain_handler.inst.py
│ ├── domain_lib.cpp
│ ├── domain_lib.inst.py
│ ├── grid.cpp
│ ├── grid.inst.py
│ ├── grid.serial.py
│ ├── grid_element.cpp
│ ├── grid_element.inst.py
│ ├── grid_handler.cpp
│ ├── grid_handler.inst.py
│ ├── grid_iterator.cpp
│ ├── grid_tools.cpp
│ ├── grid_tools.inst.py
│ ├── push_forward.cpp
│ ├── push_forward.inst.py
│ ├── unit_element.cpp
│ └── unit_element.inst.py
├── io
│ ├── objects_container_xml_reader.cpp
│ ├── objects_container_xml_writer.cpp
│ ├── writer.cpp
│ ├── writer.inst.py
│ ├── xml_document.cpp
│ └── xml_element.cpp
├── linear_algebra
│ ├── dense_matrix.cpp
│ ├── dense_vector.cpp
│ ├── dof_tools.cpp
│ ├── dof_tools.inst.py
│ ├── epetra_graph.cpp
│ ├── epetra_map.cpp
│ ├── epetra_matrix.cpp
│ ├── epetra_solver.cpp
│ └── epetra_vector.cpp
├── operators
│ ├── integrator_sum_factorization.cpp
│ ├── interface_operator.cpp
│ └── interface_operator.inst.py.old
└── utils
│ ├── cartesian_product_array.cpp
│ ├── cartesian_product_array.inst.py
│ ├── cartesian_product_indexer.cpp
│ ├── cartesian_product_indexer.inst.py
│ ├── dynamic_multi_array.cpp
│ ├── dynamic_multi_array.inst.py
│ ├── element_index.cpp
│ ├── element_index.inst.py
│ ├── element_index.serial.py
│ ├── safe_stl_array.cpp
│ ├── safe_stl_array.inst.py
│ ├── safe_stl_array.serial.py
│ ├── safe_stl_container.cpp
│ ├── safe_stl_container.inst.py
│ ├── safe_stl_map.cpp
│ ├── safe_stl_map.inst.py
│ ├── safe_stl_set.cpp
│ ├── safe_stl_set.inst.py
│ ├── safe_stl_vector.cpp
│ ├── safe_stl_vector.inst.py
│ ├── tensor_index.cpp
│ ├── tensor_index.inst.py
│ ├── tensor_index.serial.py
│ ├── tensor_product_array.cpp
│ ├── tensor_product_array.inst.py
│ ├── tensor_range.cpp
│ ├── tensor_size.cpp
│ ├── tensor_size.inst.py
│ ├── tensor_size.serial.py
│ ├── tensor_sized_container.cpp
│ ├── tensor_sized_container.inst.py
│ ├── unique_id_generator.cpp
│ ├── value_table.cpp
│ ├── value_table.inst.py
│ ├── value_vector.cpp
│ └── value_vector.inst.py
├── tests
├── CMakeLists.txt
├── CTestConfig.cmake
├── assemble
│ ├── local_mass_matrix_01.cpp
│ ├── local_mass_matrix_01
│ │ └── expected.txt
│ ├── local_mass_matrix_02.cpp
│ ├── local_mass_matrix_02
│ │ └── expected.txt
│ ├── local_stiffness_matrix_01.cpp
│ └── local_stiffness_matrix_01
│ │ └── expected.txt
├── base
│ ├── assert_macro_01.cpp
│ ├── assert_macro_01
│ │ └── expected.txt
│ ├── objects_container-serialize_01.cpp
│ ├── objects_container-serialize_01
│ │ └── expected.txt
│ ├── objects_container_01.cpp
│ ├── objects_container_01
│ │ └── expected.txt
│ ├── points_01.cpp
│ ├── points_01
│ │ └── expected.txt
│ ├── print_info_utils_01.cpp
│ ├── print_info_utils_01
│ │ └── expected.txt
│ ├── quadrature-collapse_01.cpp
│ ├── quadrature-collapse_01
│ │ └── expected.txt
│ ├── quadrature-extension_01.cpp
│ ├── quadrature-extension_01
│ │ └── expected.txt
│ ├── quadrature-gauss_01.cpp
│ ├── quadrature-gauss_01
│ │ └── expected.txt
│ ├── quadrature-gauss_lobatto_01.cpp
│ ├── quadrature-gauss_lobatto_01
│ │ └── expected.txt
│ ├── quadrature-uniform_01.cpp
│ ├── quadrature-uniform_01
│ │ └── expected.txt
│ ├── tensor-action_01.cpp
│ ├── tensor-action_01
│ │ └── expected.txt
│ ├── tensor-action_02.cpp
│ ├── tensor-action_02
│ │ └── expected.txt
│ ├── tensor-arithmetic_01.cpp
│ ├── tensor-arithmetic_01
│ │ └── expected.txt
│ ├── tensor-co_action_01.cpp
│ ├── tensor-co_action_01
│ │ └── expected.txt
│ ├── tensor-contract_1_01.cpp
│ ├── tensor-contract_1_01
│ │ └── expected.txt
│ ├── tensor-cross_product_01.cpp
│ ├── tensor-cross_product_01
│ │ └── expected.txt
│ ├── tensor-det_01.cpp
│ ├── tensor-det_01
│ │ └── expected.txt
│ ├── tensor-det_02.cpp
│ ├── tensor-det_02
│ │ └── expected.txt
│ ├── tensor-index_01.cpp
│ ├── tensor-index_01
│ │ └── expected.txt
│ ├── tensor-inverse_01.cpp
│ ├── tensor-inverse_01
│ │ └── expected.txt
│ ├── tensor-inverse_02.cpp
│ ├── tensor-inverse_02
│ │ └── expected.txt
│ ├── tensor-number_entries_01.cpp
│ ├── tensor-number_entries_01
│ │ └── expected.txt
│ ├── tensor-scalar_product_01.cpp
│ ├── tensor-scalar_product_01
│ │ └── expected.txt
│ ├── tensor-tensor_product_01.cpp
│ ├── tensor-tensor_product_01
│ │ └── expected.txt
│ ├── tensor-transpose_01.cpp
│ ├── tensor-transpose_01
│ │ └── expected.txt
│ ├── tensor_01.cpp
│ ├── tensor_01
│ │ └── expected.txt
│ ├── tensor_02.cpp
│ ├── tensor_02
│ │ └── expected.txt
│ ├── tensor_03.cpp
│ ├── tensor_03
│ │ └── expected.txt
│ ├── tensor_04.cpp
│ └── tensor_04
│ │ └── expected.txt
├── basis_functions
│ ├── bernstein_01.cpp
│ ├── bernstein_01
│ │ └── expected.txt
│ ├── bernstein_extraction_01.cpp
│ ├── bernstein_extraction_01
│ │ └── expected.txt
│ ├── bernstein_extraction_03.cpp
│ ├── bernstein_extraction_03
│ │ └── expected.txt
│ ├── bernstein_extraction_04.cpp
│ ├── bernstein_extraction_04
│ │ └── expected.txt
│ ├── bernstein_extraction_tests_common.h
│ ├── boundary_values_01.cpp
│ ├── boundary_values_01
│ │ └── expected.txt
│ ├── boundary_values_02.cpp
│ ├── boundary_values_02
│ │ └── expected.txt
│ ├── boundary_values_03.cpp
│ ├── boundary_values_03
│ │ └── expected.txt
│ ├── bspline-face_basis_01.cpp
│ ├── bspline-face_basis_01
│ │ └── expected.txt
│ ├── bspline-face_basis_02.cpp
│ ├── bspline-face_basis_02
│ │ └── expected.txt
│ ├── bspline_basis-serialize_01.cpp
│ ├── bspline_basis-serialize_01
│ │ └── expected.txt
│ ├── bspline_basis_01.cpp
│ ├── bspline_basis_01
│ │ └── expected.txt
│ ├── bspline_basis_02.cpp
│ ├── bspline_basis_02
│ │ └── expected.txt
│ ├── bspline_basis_03.cpp
│ ├── bspline_basis_03
│ │ └── expected.txt
│ ├── bspline_element_iterator-no_cache_01.cpp
│ ├── bspline_element_iterator-no_cache_01
│ │ └── expected.txt
│ ├── bspline_element_iterator-no_cache_02.cpp
│ ├── bspline_element_iterator-no_cache_02
│ │ └── expected.txt
│ ├── bspline_iterator_01.cpp
│ ├── bspline_iterator_01
│ │ └── expected.txt
│ ├── bspline_iterator_02.cpp
│ ├── bspline_iterator_02
│ │ └── expected.txt
│ ├── bspline_iterator_03.cpp
│ ├── bspline_iterator_03
│ │ └── expected.txt
│ ├── bspline_iterator_04.cpp
│ ├── bspline_iterator_04
│ │ └── expected.txt
│ ├── bspline_iterator_05.cpp
│ ├── bspline_iterator_05
│ │ └── expected.txt
│ ├── bspline_iterator_06.cpp
│ ├── bspline_iterator_06
│ │ └── expected.txt
│ ├── bspline_iterator_07.cpp
│ ├── bspline_iterator_07
│ │ └── expected.txt
│ ├── bspline_iterator_08.cpp
│ ├── bspline_iterator_08
│ │ └── expected.txt
│ ├── bspline_iterator_09.cpp
│ ├── bspline_iterator_09
│ │ └── expected.txt
│ ├── bspline_periodic_01.cpp
│ ├── bspline_periodic_01
│ │ └── expected.txt
│ ├── bspline_periodic_02.cpp
│ ├── bspline_periodic_02
│ │ └── expected.txt
│ ├── bspline_periodic_03.cpp
│ ├── bspline_periodic_03
│ │ └── expected.txt
│ ├── bspline_periodic_04-bug.cpp
│ ├── bspline_periodic_04-bug
│ │ └── expected.txt
│ ├── common_functions.h
│ ├── derivative_symmetric_manager_01.cpp
│ ├── derivative_symmetric_manager_01
│ │ └── expected.txt
│ ├── dof_distribution-serialize_01.cpp
│ ├── dof_distribution-serialize_01
│ │ └── expected.txt
│ ├── dof_distribution_01.cpp
│ ├── dof_distribution_01
│ │ └── expected.txt
│ ├── filtered_basis_01.cpp
│ ├── filtered_basis_01
│ │ └── expected.txt
│ ├── filtered_basis_02.cpp
│ ├── filtered_basis_02
│ │ └── expected.txt
│ ├── filtered_basis_03.cpp
│ ├── filtered_basis_03
│ │ └── expected.txt
│ ├── get_boundary_dofs_01.cpp
│ ├── get_boundary_dofs_01
│ │ └── expected.txt
│ ├── get_interior_dofs_01.cpp
│ ├── get_interior_dofs_01
│ │ └── expected.txt
│ ├── integrate_difference_01.cpp
│ ├── integrate_difference_01
│ │ └── expected.txt
│ ├── integrate_difference_02.cpp
│ ├── integrate_difference_02
│ │ └── expected.txt
│ ├── norm_difference_01.cpp
│ ├── norm_difference_01
│ │ └── expected.txt
│ ├── nurbs_basis-serialize_01.cpp
│ ├── nurbs_basis-serialize_01
│ │ └── expected.txt
│ ├── nurbs_basis_01.cpp
│ ├── nurbs_basis_01
│ │ └── expected.txt
│ ├── nurbs_element_iterator-no_cache_01.cpp
│ ├── nurbs_element_iterator-no_cache_01
│ │ └── expected.txt
│ ├── nurbs_element_iterator-no_cache_02.cpp
│ ├── nurbs_element_iterator-no_cache_02
│ │ └── expected.txt
│ ├── nurbs_element_iterator_01.cpp
│ ├── nurbs_element_iterator_01
│ │ └── expected.txt
│ ├── nurbs_element_iterator_02.cpp
│ ├── nurbs_element_iterator_02
│ │ └── expected.txt
│ ├── nurbs_face_basis_01.cpp
│ ├── nurbs_face_basis_01
│ │ └── expected.txt
│ ├── phys_basis_01.cpp
│ ├── phys_basis_01
│ │ └── expected.txt
│ ├── phys_basis_02.cpp
│ ├── phys_basis_02
│ │ └── expected.txt
│ ├── phys_basis_03.cpp
│ ├── phys_basis_03
│ │ └── expected.txt
│ ├── phys_basis_04.cpp
│ ├── phys_basis_04
│ │ └── expected.txt
│ ├── phys_basis_iterator-serialize_01.cpp
│ ├── phys_basis_iterator-serialize_01
│ │ └── expected.txt
│ ├── phys_basis_iterator.h
│ ├── phys_basis_iterator_01.cpp
│ ├── phys_basis_iterator_01
│ │ └── expected.txt
│ ├── phys_basis_iterator_02.cpp
│ ├── phys_basis_iterator_02
│ │ └── expected.txt
│ ├── phys_basis_iterator_03.cpp
│ ├── phys_basis_iterator_03
│ │ └── expected.txt
│ ├── phys_basis_iterator_04.cpp
│ ├── phys_basis_iterator_04
│ │ └── expected.txt
│ ├── projection_l2_01.cpp
│ ├── projection_l2_01
│ │ └── expected.txt
│ ├── projection_l2_02.cpp
│ ├── projection_l2_02
│ │ └── expected.txt
│ ├── projection_l2_03.cpp
│ ├── projection_l2_03
│ │ └── expected.txt
│ ├── projection_l2_04.cpp
│ ├── projection_l2_04
│ │ └── expected.txt
│ ├── spline_space-serialize_01.cpp
│ ├── spline_space-serialize_01
│ │ └── expected.txt
│ ├── spline_space-sub_space_01.cpp
│ ├── spline_space-sub_space_01
│ │ └── expected.txt
│ ├── spline_space_01.cpp
│ ├── spline_space_01
│ │ └── expected.txt
│ ├── spline_space_02.cpp
│ ├── spline_space_02
│ │ └── expected.txt
│ ├── spline_space_03.cpp
│ ├── spline_space_03
│ │ └── expected.txt
│ ├── spline_space_04.cpp
│ ├── spline_space_04
│ │ └── expected.txt
│ └── spline_space_tests_common.h
├── functions
│ ├── constant_function_01.cpp
│ ├── constant_function_01
│ │ └── expected.txt
│ ├── function_test.h
│ ├── ig_function_01.cpp
│ ├── ig_function_01
│ │ └── expected.txt
│ ├── ig_grid_function_01.cpp
│ ├── ig_grid_function_01
│ │ └── expected.txt
│ ├── ig_grid_function_bspline-serialize_01.cpp
│ ├── ig_grid_function_bspline-serialize_01
│ │ └── expected.txt
│ ├── ig_grid_function_bspline_01.cpp
│ ├── ig_grid_function_bspline_01
│ │ └── expected.txt
│ ├── ig_grid_function_bspline_02.cpp
│ ├── ig_grid_function_bspline_02
│ │ └── expected.txt
│ ├── ig_grid_function_bspline_03.cpp
│ ├── ig_grid_function_bspline_03
│ │ └── expected.txt
│ ├── linear_function_01.cpp
│ ├── linear_function_01
│ │ └── expected.txt
│ ├── linear_function_02.cpp
│ ├── linear_function_02
│ │ └── expected.txt
│ ├── linear_function_03.cpp
│ ├── linear_function_03
│ │ └── expected.txt
│ ├── sub_domain_01.cpp
│ ├── sub_domain_01
│ │ └── expected.txt
│ ├── sub_domain_02.cpp
│ ├── sub_domain_02
│ │ └── expected.txt
│ ├── sub_domain_03.cpp
│ └── sub_domain_03
│ │ └── expected.txt
├── geometry
│ ├── domain-ball_01.cpp
│ ├── domain-ball_01
│ │ └── expected.txt
│ ├── domain-ball_02.cpp
│ ├── domain-ball_02
│ │ └── expected.txt
│ ├── domain-curvatures_01.cpp
│ ├── domain-curvatures_01
│ │ └── expected.txt
│ ├── domain-curvatures_02.cpp
│ ├── domain-curvatures_02
│ │ └── expected.txt
│ ├── domain-cylindrical_annulus_01.cpp
│ ├── domain-cylindrical_annulus_01
│ │ └── expected.txt
│ ├── domain-cylindrical_annulus_02.cpp
│ ├── domain-cylindrical_annulus_02
│ │ └── expected.txt
│ ├── domain-external_normals_01.cpp
│ ├── domain-external_normals_01
│ │ └── expected.txt
│ ├── domain-linear_01.cpp
│ ├── domain-linear_01
│ │ └── expected.txt
│ ├── domain-sphere_01.cpp
│ ├── domain-sphere_01
│ │ └── expected.txt
│ ├── domain-sphere_02.cpp
│ ├── domain-sphere_02
│ │ └── expected.txt
│ ├── domain-triangle_01.cpp
│ ├── domain-triangle_01
│ │ └── expected.txt
│ ├── domain_01.cpp
│ ├── domain_01
│ │ └── expected.txt
│ ├── domain_02.cpp
│ ├── domain_02
│ │ └── expected.txt
│ ├── domain_03.cpp
│ ├── domain_03
│ │ └── expected.txt
│ ├── domain_04.cpp
│ ├── domain_04
│ │ └── expected.txt
│ ├── domain_face_measure_01.cpp
│ ├── domain_face_measure_01
│ │ └── expected.txt
│ ├── domain_integration_01.cpp
│ ├── domain_integration_01
│ │ └── expected.txt
│ ├── domain_no_cache_01.cpp
│ ├── domain_no_cache_01
│ │ └── expected.txt
│ ├── domain_no_cache_02.cpp
│ ├── domain_no_cache_02
│ │ └── expected.txt
│ ├── domain_values.h
│ ├── grid-boundary_id_01.cpp
│ ├── grid-boundary_id_01
│ │ └── expected.txt
│ ├── grid-boundary_normals_01.cpp
│ ├── grid-boundary_normals_01
│ │ └── expected.txt
│ ├── grid-constructor_01.cpp
│ ├── grid-constructor_01
│ │ └── expected.txt
│ ├── grid-points_in_elems_01.cpp
│ ├── grid-points_in_elems_01
│ │ └── expected.txt
│ ├── grid-serialize_01.cpp
│ ├── grid-serialize_01
│ │ └── expected.txt
│ ├── grid-subgrid_01.cpp
│ ├── grid-subgrid_01
│ │ └── expected.txt
│ ├── grid-union_01.cpp
│ ├── grid-union_01
│ │ └── expected.txt
│ ├── grid_iterator-add_property_01.cpp
│ ├── grid_iterator-add_property_01
│ │ └── expected.txt
│ ├── grid_iterator-is_boundary_01.cpp
│ ├── grid_iterator-is_boundary_01
│ │ └── expected.txt
│ ├── grid_iterator-measure_01.cpp
│ ├── grid_iterator-measure_01
│ │ └── expected.txt
│ ├── grid_iterator-points_01.cpp
│ ├── grid_iterator-points_01
│ │ └── expected.txt
│ ├── grid_iterator-weights_01.cpp
│ ├── grid_iterator-weights_01
│ │ └── expected.txt
│ ├── grid_iterator_01.cpp
│ ├── grid_iterator_01
│ │ └── expected.txt
│ ├── grid_iterator_02.cpp
│ ├── grid_iterator_02
│ │ └── expected.txt
│ ├── grid_iterator_03.cpp
│ ├── grid_iterator_03
│ │ └── expected.txt
│ ├── unit_element_01.cpp
│ ├── unit_element_01
│ │ └── expected.txt
│ └── vtkUnstructuredGridOverlay_3.h
├── io
│ ├── objects_container_xml_io_01.cpp
│ ├── objects_container_xml_io_01
│ │ └── expected.txt
│ ├── writer_01.cpp
│ ├── writer_01
│ │ └── expected.txt
│ ├── writer_02.cpp
│ ├── writer_02
│ │ └── expected.txt
│ ├── writer_03.cpp
│ ├── writer_03
│ │ └── expected.txt
│ ├── writer_04.cpp
│ ├── writer_04
│ │ └── expected.txt
│ ├── writer_05.cpp
│ ├── writer_05
│ │ └── expected.txt
│ ├── writer_06.cpp
│ ├── writer_06
│ │ └── expected.txt
│ ├── writer_07.cpp
│ └── writer_07
│ │ └── expected.txt
├── linear_algebra
│ ├── dense_matrix-determinant_01.cpp
│ ├── dense_matrix-determinant_01
│ │ └── expected.txt
│ ├── dense_matrix-eigen_values_01.cpp
│ ├── dense_matrix-eigen_values_01
│ │ └── expected.txt
│ ├── dense_matrix-eigen_values_02.cpp
│ ├── dense_matrix-eigen_values_02
│ │ └── expected.txt
│ ├── distributed_matrix_01.cpp
│ ├── distributed_matrix_01
│ │ └── expected.txt
│ ├── distributed_vector_01.cpp
│ ├── distributed_vector_01
│ │ └── expected.txt
│ ├── distributed_vector_02.cpp
│ ├── distributed_vector_02
│ │ └── expected.txt
│ ├── epetra_01.cpp
│ ├── epetra_01
│ │ └── expected.txt
│ ├── epetra_02.cpp
│ └── epetra_02
│ │ └── expected.txt
├── refinement
│ ├── grid-refinement_01.cpp
│ ├── grid-refinement_01
│ │ └── expected.txt
│ ├── phys_basis-refinement_01.cpp
│ ├── phys_basis-refinement_01
│ │ └── expected.txt
│ ├── phys_basis-refinement_02.cpp
│ ├── phys_basis-refinement_02
│ │ └── expected.txt
│ ├── phys_basis-refinement_03.cpp
│ └── phys_basis-refinement_03
│ │ └── expected.txt
├── runtest.cmake
├── tests.h
├── tests_utils.h
├── tutorial
│ ├── example_01.cpp
│ ├── example_01
│ │ └── expected.txt
│ ├── example_02-bug.cpp
│ ├── example_02-bug
│ │ └── expected.txt
│ ├── example_03-bug.cpp
│ ├── example_03-bug
│ │ └── expected.txt
│ ├── example_04-bug.cpp
│ ├── example_04-bug
│ │ └── expected.txt
│ ├── example_05-bug.cpp
│ ├── example_05-bug
│ │ └── expected.txt
│ ├── example_06-bug.cpp
│ ├── example_06-bug
│ │ └── expected.txt
│ ├── example_07-bug.cpp
│ ├── example_07-bug
│ │ ├── expected.txt
│ │ ├── nurb_geometry-2d.xml
│ │ ├── nurb_geometry-2d_v2.xml
│ │ ├── nurb_geometry-3d.xml
│ │ └── nurb_geometry-3d_v2.xml
│ ├── example_08-bug.cpp
│ ├── example_08-bug
│ │ └── expected.txt
│ ├── example_09-bug.cpp
│ └── example_09-bug
│ │ └── expected.txt
└── utils
│ ├── array-serialize_01.cpp
│ ├── array-serialize_01
│ └── expected.txt
│ ├── array_01.cpp
│ ├── array_01
│ └── expected.txt
│ ├── cartesian_product_array_01.cpp
│ ├── cartesian_product_array_01
│ └── expected.txt
│ ├── cartesian_product_indexer_01.cpp
│ ├── cartesian_product_indexer_01
│ └── expected.txt
│ ├── concatenated_forward_iterator_01.cpp
│ ├── concatenated_forward_iterator_01
│ └── expected.txt
│ ├── concatenated_forward_iterator_02.cpp
│ ├── concatenated_forward_iterator_02
│ └── expected.txt
│ ├── dynamic_multi_array-serialize_01.cpp
│ ├── dynamic_multi_array-serialize_01
│ └── expected.txt
│ ├── dynamic_multi_array_01.cpp
│ ├── dynamic_multi_array_01
│ └── expected.txt
│ ├── dynamic_multi_array_iterator_01.cpp
│ ├── dynamic_multi_array_iterator_01
│ └── expected.txt
│ ├── shared_ptr_constness_handler_01.cpp
│ ├── shared_ptr_constness_handler_01
│ └── expected.txt
│ ├── static_multi_array-serialize_01.cpp
│ ├── static_multi_array-serialize_01
│ └── expected.txt
│ ├── static_multi_array_01.cpp
│ ├── static_multi_array_01
│ └── expected.txt
│ ├── static_multi_array_02.cpp
│ ├── static_multi_array_02
│ └── expected.txt
│ ├── static_multi_array_03.cpp
│ ├── static_multi_array_03
│ └── expected.txt
│ ├── static_multi_array_04.cpp
│ ├── static_multi_array_04
│ └── expected.txt
│ ├── tensor_index-serialize_01.cpp
│ ├── tensor_index-serialize_01
│ └── expected.txt
│ ├── tensor_index_01.cpp
│ ├── tensor_index_01
│ └── expected.txt
│ ├── tensor_product_array_01.cpp
│ ├── tensor_product_array_01
│ └── expected.txt
│ ├── tensor_size-serialize_01.cpp
│ ├── tensor_size-serialize_01
│ └── expected.txt
│ ├── tensor_sized_container-serialize_01.cpp
│ ├── tensor_sized_container-serialize_01
│ └── expected.txt
│ ├── value_table_01.cpp
│ ├── value_table_01
│ └── expected.txt
│ ├── value_vector_01.cpp
│ ├── value_vector_01
│ └── expected.txt
│ ├── vector-serialize_01.cpp
│ ├── vector-serialize_01
│ └── expected.txt
│ ├── vector_01.cpp
│ └── vector_01
│ └── expected.txt
├── tutorial
├── CMakeLists.txt
├── cmake_template.txt
├── example_01
│ ├── doc
│ │ ├── example_01-01.png
│ │ ├── example_01-02.png
│ │ ├── example_01-03.png
│ │ ├── example_01-04.png
│ │ └── example_01.dox
│ └── example_01.cpp
├── example_02
│ ├── doc
│ │ └── example_02.dox
│ └── example_02.cpp
├── example_03
│ ├── doc
│ │ ├── example_03-01.png
│ │ ├── example_03-02.png
│ │ └── example_03.dox
│ └── example_03.cpp
├── example_04
│ ├── doc
│ │ └── example_04.dox
│ └── example_04.cpp
├── example_05
│ ├── doc
│ │ └── example_05.dox
│ └── example_05.cpp
├── example_06
│ ├── doc
│ │ └── example_06.dox
│ └── example_06.cpp
├── example_07
│ ├── doc
│ │ └── example_07.dox
│ ├── example_07.cpp
│ ├── nurb_geometry-2d.xml
│ ├── nurb_geometry-2d_v2.xml
│ ├── nurb_geometry-3d.xml
│ └── nurb_geometry-3d_v2.xml
├── example_08
│ ├── doc
│ │ └── example_08.dox
│ └── example_08.cpp
├── example_09
│ ├── doc
│ │ └── example_09.dox
│ └── example_09.cpp
└── tutorial.dox
└── utils
├── apply_copyright.sh
├── astyle_git.sh
├── astylerc
├── copyright_header.txt
├── dealii_copyright_header.txt
├── logo
└── logo_generation.tex
└── pre-commit.astyle
/.gitignore:
--------------------------------------------------------------------------------
1 | *~
2 | .DS_Store
3 | ._.DS_Store
4 | *kdev4*
5 |
--------------------------------------------------------------------------------
/addons/paraview_plugin/Readme:
--------------------------------------------------------------------------------
1 | This is the igatools plugin for paraview.
2 |
--------------------------------------------------------------------------------
/addons/paraview_plugin/cmake/macros/create_paraview_plugin_install_target.cmake:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
22 | # Create the install target
23 | #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
24 |
25 | macro(create_paraview_plugin_install_target)
26 | install(TARGETS ${igatools_paraview_lib_name}
27 | ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/paraview_plugin
28 | LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/paraview_plugin)
29 | endmacro(create_paraview_plugin_install_target)
30 |
--------------------------------------------------------------------------------
/addons/paraview_plugin/source/vtk_iga_control_grid.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 |
25 | data = Instantiation(include_files)
26 | (f, inst) = (data.file_output, data.inst)
27 |
28 |
29 | domains = set()
30 |
31 | for x in inst.sub_mapping_dims:
32 | if x.dim > 0 and x.dim < 4 and (x.dim + x.codim) > 0 and (x.dim + x.codim) < 4:
33 | domain = 'Domain<%d,%d>' %(x.dim, x.codim)
34 | domains.add(domain)
35 |
36 | for x in inst.mapping_dims:
37 | if x.dim > 0 and x.dim < 4 and (x.dim + x.codim) > 0 and (x.dim + x.codim) < 4:
38 | domain = 'Domain<%d,%d>' %(x.dim, x.codim)
39 | domains.add(domain)
40 |
41 | f.write("namespace paraview_plugin {\n")
42 |
43 | for domain in domains:
44 | f.write('template class VtkIgaControlGrid<%s>;\n' %(domain))
45 |
46 | f.write("};")
--------------------------------------------------------------------------------
/addons/paraview_plugin/source/vtk_iga_grid.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 |
25 | data = Instantiation(include_files)
26 | (f, inst) = (data.file_output, data.inst)
27 |
28 |
29 | domains = set()
30 |
31 | for x in inst.sub_mapping_dims:
32 | if x.dim > 0 and x.dim < 4 and (x.dim + x.codim) > 0 and (x.dim + x.codim) < 4:
33 | domain = 'Domain<%d,%d>' %(x.dim, x.codim)
34 | domains.add(domain)
35 |
36 | for x in inst.mapping_dims:
37 | if x.dim > 0 and x.dim < 4 and (x.dim + x.codim) > 0 and (x.dim + x.codim) < 4:
38 | domain = 'Domain<%d,%d>' %(x.dim, x.codim)
39 | domains.add(domain)
40 |
41 | f.write("namespace paraview_plugin {\n")
42 |
43 | for domain in domains:
44 | f.write('template class VtkIgaGrid<%s>;\n' %(domain))
45 |
46 | f.write("};")
--------------------------------------------------------------------------------
/addons/paraview_plugin/source/vtk_iga_knot_grid.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 |
25 | data = Instantiation(include_files)
26 | (f, inst) = (data.file_output, data.inst)
27 |
28 |
29 | domains = set()
30 |
31 | for x in inst.sub_mapping_dims:
32 | if x.dim > 0 and x.dim < 4 and (x.dim + x.codim) > 0 and (x.dim + x.codim) < 4:
33 | domain = 'Domain<%d,%d>' %(x.dim, x.codim)
34 | domains.add(domain)
35 |
36 | for x in inst.mapping_dims:
37 | if x.dim > 0 and x.dim < 4 and (x.dim + x.codim) > 0 and (x.dim + x.codim) < 4:
38 | domain = 'Domain<%d,%d>' %(x.dim, x.codim)
39 | domains.add(domain)
40 |
41 | f.write("namespace paraview_plugin {\n")
42 |
43 | for domain in domains:
44 | f.write('template class VtkIgaKnotGrid<%s>;\n' %(domain))
45 |
46 | f.write("};")
--------------------------------------------------------------------------------
/addons/paraview_plugin/source/vtk_iga_solid_grid.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 |
25 | data = Instantiation(include_files)
26 | (f, inst) = (data.file_output, data.inst)
27 |
28 |
29 | domains = set()
30 |
31 | for x in inst.sub_mapping_dims:
32 | if x.dim > 0 and x.dim < 4 and (x.dim + x.codim) > 0 and (x.dim + x.codim) < 4:
33 | domain = 'Domain<%d,%d>' %(x.dim, x.codim)
34 | domains.add(domain)
35 |
36 | for x in inst.mapping_dims:
37 | if x.dim > 0 and x.dim < 4 and (x.dim + x.codim) > 0 and (x.dim + x.codim) < 4:
38 | domain = 'Domain<%d,%d>' %(x.dim, x.codim)
39 | domains.add(domain)
40 |
41 | f.write("namespace paraview_plugin {\n")
42 |
43 | for domain in domains:
44 | f.write('template class VtkIgaSolidGrid<%s>;\n' %(domain))
45 |
46 | f.write("};")
--------------------------------------------------------------------------------
/authors.txt:
--------------------------------------------------------------------------------
1 | igatools authors
2 |
3 | igatools is administered by a group of developers.
4 | The leading developers are in charge of being the guardian
5 | of the overall design principles decided for the project in
6 | the developers strategic meetings. All developers have
7 | provided substantial and continuous contribution to the library and
8 | hold a global overview of the library. Contributors have provided
9 | important patches over the years.
10 |
11 | Leading developers
12 |
13 | Massimiliano Martinelli
14 | Sebastian Pauletti
15 |
16 | Developers
17 |
18 | Pablo Antolin
19 |
20 | Contributors
21 |
22 | Rafael Vazques
23 | Nicola Cavallini
24 |
25 |
26 |
--------------------------------------------------------------------------------
/cmake/config/igatoolsConfigVersion.cmake.in:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | # This file allows client projects to determine the version of igatools
22 | # and automatically determine whether the detected version is suitable
23 | # if the client-project requested a minimum (or even exact) version.
24 |
25 | set(PACKAGE_VERSION "@IGATOOLS_VERSION@")
26 |
27 | # Check whether the requested PACKAGE_FIND_VERSION is compatible
28 | if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
29 | set(PACKAGE_VERSION_COMPATIBLE FALSE)
30 | else()
31 | set(PACKAGE_VERSION_COMPATIBLE TRUE)
32 | if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
33 | set(PACKAGE_VERSION_EXACT TRUE)
34 | endif()
35 | endif()
36 |
--------------------------------------------------------------------------------
/cmake/instantiation_scripts/create_basis_table.cmake:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 | #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21 | # Creates a file with a table of the spaces that the library
22 | # is suppossed to be compiled for.
23 | #
24 | macro(create_basis_table)
25 | message(STATUS "Generating physical basis table.")
26 | execute_process(COMMAND
27 | ${PYTHON_EXECUTABLE}
28 | -B ${PROJECT_SOURCE_DIR}/cmake/instantiation_scripts/generate_inst_table.py
29 | dim_ref=${dim}
30 | range_ref=${range}
31 | rank_ref=${rank}
32 | WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
33 | RESULT_VARIABLE res)
34 | endmacro(create_basis_table)
35 |
--------------------------------------------------------------------------------
/cmake/macros/MacroOutOfBuildInstall.cmake:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | # Ensures that we do an out of build install
22 |
23 | macro( MACRO_ENSURE_OUT_OF_BUILD_INSTALL )
24 | string( COMPARE EQUAL "${CMAKE_BINARY_DIR}" "${CMAKE_INSTALL_PREFIX}" inbuild )
25 | if( inbuild )
26 | MESSAGE(FATAL_ERROR "The install has to be different from the build directory" )
27 | endif( inbuild )
28 | endmacro(MACRO_ENSURE_OUT_OF_BUILD_INSTALL)
29 |
30 |
--------------------------------------------------------------------------------
/cmake/macros/MacroOutOfSourceBuild.cmake:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | # Ensures that we do an out of source build
22 | macro( MACRO_ENSURE_OUT_OF_SOURCE_BUILD )
23 | string( COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource )
24 | get_filename_component( PARENTDIR ${CMAKE_SOURCE_DIR} PATH )
25 | string( COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${PARENTDIR}" insourcesubdir )
26 | if( insource OR insourcesubdir )
27 | MESSAGE("The build has to be different from the source directory" )
28 | message(FATAL_ERROR "you will have to run something like:"
29 | "\n rm -rf CMakeFiles and rm CMakeCache.txt")
30 | endif( insource OR insourcesubdir )
31 | endmacro(MACRO_ENSURE_OUT_OF_SOURCE_BUILD)
32 |
33 |
--------------------------------------------------------------------------------
/cmake/macros/find_boost.cmake:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
22 | # Find Boost library (Required)
23 | #-------------------------------------------------------------------------------
24 | macro(find_boost)
25 |
26 | if (USE_CGAL)
27 |
28 | find_package(Boost 1.54.0 REQUIRED COMPONENTS system thread)
29 |
30 | include_directories(${Boost_INCLUDE_DIRS})
31 |
32 | set(Boost_LIBRARIES "${Boost_SYSTEM_LIBRARIES};${Boost_THREAD_LIBRARIES}")
33 | message("-- Boost_LIBRARIES = ${Boost_LIBRARIES}")
34 |
35 | else (USE_CGAL)
36 |
37 | find_package(Boost 1.54.0 REQUIRED)
38 |
39 | include_directories(${Boost_INCLUDE_DIRS})
40 | # set(Boost_LIBRARIES "${Boost_SERIALIZATION_LIBRARIES}")
41 |
42 | endif (USE_CGAL)
43 |
44 | endmacro(find_boost)
45 |
--------------------------------------------------------------------------------
/cmake/macros/find_cblas.cmake:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 | #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21 | # Find CBLAS library (Required)
22 | #-------------------------------------------------------------------------------
23 | macro(find_cblas)
24 | set(CBLAS_SEARCH_PATHS /usr/lib)
25 | find_library(CBLAS_LIBRARY NAMES cblas PATHS ${CBLAS_SEARCH_PATHS})
26 |
27 | if (CBLAS_LIBRARY)
28 | set(CBLAS_FOUND ON)
29 | set(CBLAS_LIBRARY_DIR ${CBLAS_SEARCH_PATHS})
30 | endif (CBLAS_LIBRARY)
31 |
32 | if (CBLAS_FOUND)
33 | message(STATUS "Found CBLAS in ${CBLAS_LIBRARY}")
34 | else (CBLAS_FOUND)
35 | message(FATAL_ERROR "Could not find CBLAS libraries.")
36 | endif (CBLAS_FOUND)
37 |
38 | # mark_as_advanced(CBLAS_LIBRARY)
39 | endmacro(find_cblas)
40 |
--------------------------------------------------------------------------------
/cmake/macros/find_cgal.cmake:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 | #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21 | # Find CGAL library (Optional)
22 | #-------------------------------------------------------------------------------
23 | macro(find_cgal)
24 | set(CGAL_PREFIX $ENV{CGAL_DIR} CACHE LOCATION "Location where CGAL library is installed")
25 |
26 | # find_package(CGAL REQUIRED PATHS ${CGAL_PREFIX})
27 | find_package(CGAL REQUIRED COMPENENTS Core)
28 |
29 | message(STATUS "Found CGAL: version ${CGAL_VERSION}.")
30 |
31 | set(CGAL_LIBRARIES "${CGAL_LIBRARY};${CGAL_Core_LIBRARY};${GMP_LIBRARIES};${MPFR_LIBRARIES}")
32 |
33 | message("-- CGAL_LIBRARIES = ${CGAL_LIBRARIES}")
34 |
35 | # add the location of CGAL headers to the include directories
36 | include_directories(${CGAL_INCLUDE_DIRS})
37 |
38 | endmacro(find_cgal)
39 |
--------------------------------------------------------------------------------
/cmake/macros/find_doxygen.cmake:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 | macro(find_doxygen)
21 | find_package(Doxygen 1.8.1 REQUIRED)
22 | endmacro(find_doxygen)
23 |
--------------------------------------------------------------------------------
/cmake/macros/find_petsc.cmake:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 | #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21 | # Find PETSc library (Optional)
22 | #-------------------------------------------------------------------------------
23 | macro(find_petsc)
24 | set(Petsc_INCLUDE_DIRS $ENV{PETSC_INCLUDE_DIRS} CACHE LOCATION
25 | "Location where PETSc headers are installed")
26 |
27 | set(Petsc_LIBRARY_DIRS $ENV{PETSC_LIBRARY_DIRS} CACHE LOCATION
28 | "Location where PETSc libraries are installed")
29 |
30 | include_directories(${Petsc_INCLUDE_DIRS} ${Petsc_INCLUDE_DIRS}/$ENV{PETSC_ARCH}/include $ENV{PETSC_DIR}/$ENV{PETSC_ARCH}/include)
31 | link_directories(${Petsc_LIBRARY_DIRS})
32 |
33 | set(Petsc_LIBRARIES libpetsc.so)
34 |
35 | message("-- Found PETSc library in ${Petsc_LIBRARY_DIRS}")
36 | endmacro(find_petsc)
37 |
--------------------------------------------------------------------------------
/cmake/macros/find_python.cmake:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 | #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21 | # Find Phython library (Required)
22 | #-------------------------------------------------------------------------------
23 | macro(find_python)
24 | include(FindPythonInterp)
25 | find_package(PythonInterp REQUIRED)
26 | endmacro(find_python)
27 |
--------------------------------------------------------------------------------
/cmake/macros/find_sed.cmake:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 | #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21 | # Find sed (Required)
22 | #-------------------------------------------------------------------------------
23 | macro(find_sed)
24 | find_program(SED_EXECUTABLE sed)
25 | message(STATUS "Found sed: ${SED_EXECUTABLE}.")
26 | endmacro(find_sed)
27 |
--------------------------------------------------------------------------------
/doc/bibliography.bib:
--------------------------------------------------------------------------------
1 | @Article{ PMCA2014,
2 | author = {Pauletti, M. S. and Martinelli, M.
3 | and Cavallini, N. and Antolin, P.},
4 | title = {igatools: An isogeometric analisys library},
5 | journal = {IMATI Preprint series},
6 | year = {2014}
7 | }
--------------------------------------------------------------------------------
/doc/html_extra_style.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
13 |
--------------------------------------------------------------------------------
/doc/iga-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/igatoolsProject/igatools/e1e76ab6d13cb5023e9fb71d639d36675c58675b/doc/iga-logo.png
--------------------------------------------------------------------------------
/include/igatools/base/array_utils.h:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 | #ifndef __IGA_ARRAY_UTILS_H_
22 | #define __IGA_ARRAY_UTILS_H_
23 |
24 | #include
25 | #include
26 |
27 | #include
28 | #include
29 | #include
30 | #include
31 |
32 | IGA_NAMESPACE_OPEN
33 |
34 |
35 |
36 | /**
37 | * Returns an array filled with the sequence of N integers numbers
38 | * from init to init+N-1.
39 | */
40 | template
41 | constexpr
42 | auto
43 | sequence(const int init = 0)
44 | -> SafeSTLArray
45 | {
46 | SafeSTLArray seq;
47 | std::iota(seq.begin(),seq.end(),init);
48 | return seq;
49 | }
50 |
51 |
52 | IGA_NAMESPACE_CLOSE
53 |
54 | #endif
55 |
--------------------------------------------------------------------------------
/include/igatools/base/print_info_utils.h:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 | #ifndef __PRINT_INFO_UTILS_H_
22 | #define __PRINT_INFO_UTILS_H_
23 |
24 | #include
25 | #include
26 | #include
27 |
28 | IGA_NAMESPACE_OPEN
29 | #if 0
30 | /**
31 | * Type traits to determine if a class provides
32 | * a print_info function
33 | */
34 | template
35 | using print_info_type =
36 | decltype(std::declval().print_info(std::declval()));
37 |
38 |
39 | template
40 | constexpr
41 | EnableIf>::value, bool >
42 | has_print_info(int)
43 | {
44 | return true;
45 | }
46 |
47 | template
48 | constexpr bool
49 | has_print_info(long)
50 | {
51 | return false;
52 | }
53 | #endif
54 |
55 |
56 |
57 |
58 | IGA_NAMESPACE_CLOSE
59 |
60 | #endif
61 |
--------------------------------------------------------------------------------
/include/igatools/base/properties.h:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 | #ifndef __PROPERTIES_H_
22 | #define __PROPERTIES_H_
23 |
24 | #include
25 | #include
26 |
27 | IGA_NAMESPACE_OPEN
28 |
29 | using PropId = std::string;
30 |
31 | struct ElementProperties
32 | {
33 | static const PropId active;
34 | };
35 |
36 |
37 | struct DofProperties
38 | {
39 | static const PropId active;
40 | };
41 |
42 | IGA_NAMESPACE_CLOSE
43 |
44 | #endif // #ifndef PROPERTIES_H_
45 |
--------------------------------------------------------------------------------
/include/igatools/contrib/cereal/include/cereal/external/rapidjson/internal/strfunc.h:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 | #ifndef RAPIDJSON_INTERNAL_STRFUNC_H_
21 | #define RAPIDJSON_INTERNAL_STRFUNC_H_
22 |
23 | namespace rapidjson
24 | {
25 | namespace internal
26 | {
27 |
28 | //! Custom strlen() which works on different character types.
29 | /*! \tparam Ch Character type (e.g. char, wchar_t, short)
30 | \param s Null-terminated input string.
31 | \return Number of characters in the string.
32 | \note This has the same semantics as strlen(), the return value is not number of Unicode codepoints.
33 | */
34 | template
35 | inline SizeType StrLen(const Ch *s)
36 | {
37 | const Ch *p = s;
38 | while (*p != '\0')
39 | ++p;
40 | return SizeType(p - s);
41 | }
42 |
43 | } // namespace internal
44 | } // namespace rapidjson
45 |
46 | #endif // RAPIDJSON_INTERNAL_STRFUNC_H_
47 |
--------------------------------------------------------------------------------
/include/igatools/contrib/cereal/include/cereal/external/rapidjson/license.txt:
--------------------------------------------------------------------------------
1 | Copyright (C) 2011 Milo Yip
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
--------------------------------------------------------------------------------
/include/igatools/utils/tensor_product_array-inline.h:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 |
22 | #ifndef TENSOR_PRODUCT_ARRAY_INLINE_H_
23 | #define TENSOR_PRODUCT_ARRAY_INLINE_H_
24 |
25 |
26 | #include
27 |
28 | IGA_NAMESPACE_OPEN
29 |
30 |
31 |
32 |
33 |
34 | IGA_NAMESPACE_CLOSE
35 | #endif /* TENSOR_PRODUCT_ARRAY_INLINE_H_ */
36 |
--------------------------------------------------------------------------------
/readme.txt:
--------------------------------------------------------------------------------
1 | For installing and getting started with igatools go to:
2 |
3 | https://github.com/igatoolsProject/igatools/wiki
--------------------------------------------------------------------------------
/source/base/instantiated_types.cpp:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 | #include
22 |
--------------------------------------------------------------------------------
/source/base/properties.cpp:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 | #include
22 |
23 | IGA_NAMESPACE_OPEN
24 |
25 | const PropId ElementProperties::active = "active";
26 | const PropId DofProperties::active = "active";
27 |
28 | IGA_NAMESPACE_CLOSE
29 |
--------------------------------------------------------------------------------
/source/base/quadrature_lib.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 | ###############################################################################
21 |
22 | # QA (pauletti, Mar 19, 2014):
23 | from init_instantiation_data import *
24 | data = Instantiation()
25 | f = data.file_output
26 | inst = data.inst
27 |
28 |
29 | quad_types = ['QGauss','QGaussLobatto','QUniform','QTrapez']
30 |
31 | quad_classes = []
32 |
33 | for dim in inst.all_domain_dims:
34 | for quad_type in quad_types:
35 | quad = '%s<%d>' % (quad_type,dim)
36 | quad_classes.append(quad)
37 |
38 | for quad in unique(quad_classes):
39 | f.write('template class %s;\n' % (quad))
40 |
41 |
42 | #f.write('IGA_NAMESPACE_CLOSE\n')
43 | #
44 | #for quad in unique(quad_classes):
45 | # f.write('extern template class std::shared_ptr;\n' % (quad))
46 | #
47 | #f.write('IGA_NAMESPACE_OPEN\n')
48 |
49 |
--------------------------------------------------------------------------------
/source/base/tensor.cpp:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 | #include
22 | #include
23 |
24 | #ifndef NDEBUG
25 | #include
26 | #endif
27 |
--------------------------------------------------------------------------------
/source/base/tensor.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | # todo: this class is inline for completeness many things would need to be inst
22 | from init_instantiation_data import *
23 | data = Instantiation()
24 | (f, inst) = (data.file_output, data.inst)
25 |
26 | for row in inst.derivatives + inst.values:
27 | f.write('template class %s ;\n' %row)
28 | f.write('template EnableIf<%s::is_tensor,%s> operator+ < %s > (const %s &A, const %s &B) noexcept ;\n'
29 | % (row, row, row, row, row))
30 | f.write('template EnableIf<%s::is_tensor,%s> operator- < %s > (const %s &A, const %s &B) noexcept ;\n'
31 | % (row, row, row, row, row))
32 |
--------------------------------------------------------------------------------
/source/basis_functions/basis_tools.cpp:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 |
--------------------------------------------------------------------------------
/source/basis_functions/basis_tools.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 |
22 | from init_instantiation_data import *
23 |
24 | data = Instantiation()
25 | (f, inst) = (data.file_output, data.inst)
26 |
--------------------------------------------------------------------------------
/source/basis_functions/bspline_element_scalar_evaluator.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | # QA (martinelli, Mar 29, 2014):
22 | from init_instantiation_data import *
23 | data = Instantiation()
24 | (f, inst) = (data.file_output, data.inst)
25 |
26 | # list=['BSplineElementScalarEvaluator<%d>' %dim for dim in inst.domain_dims]
27 | # for row in list:
28 | # f.write('template class %s; \n' %row)
29 |
--------------------------------------------------------------------------------
/source/basis_functions/nurbs_element.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 | data = Instantiation(include_files)
25 | (f, inst) = (data.file_output, data.inst)
26 |
27 |
28 |
29 |
30 | elements = ['NURBSElement<0,0,1>']
31 |
32 | for x in inst.sub_ref_sp_dims + inst.ref_sp_dims:
33 | elem = 'NURBSElement<%d,%d,%d>' %(x.dim, x.range, x.rank)
34 | elements.append(elem)
35 |
36 |
37 |
38 | for elem in unique(elements):
39 | f.write('template class %s; \n' %elem)
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/source/basis_functions/reference_basis_handler.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 |
25 | data = Instantiation(include_files)
26 | (f, inst) = (data.file_output, data.inst)
27 |
28 |
29 | handlers = ['ReferenceBasisHandler<0,0,1>']
30 | handler_funcs = set()
31 |
32 |
33 | for x in inst.sub_ref_sp_dims + inst.ref_sp_dims:
34 | handler = 'ReferenceBasisHandler<%d,%d,%d>' %(x.dim, x.range, x.rank)
35 | handlers.append(handler)
36 | # for k in range(0,x.dim+1):
37 | # func = 'int %s::get_num_points<%d>() const;' % (handler,k)
38 | # handler_funcs.add(func)
39 |
40 |
41 |
42 |
43 | for handler in unique(handlers):
44 | f.write('template class %s;\n' %handler)
45 |
46 | for func in handler_funcs:
47 | f.write('template %s;\n' %func)
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/source/functions/formula_function.cpp:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 |
22 | #include
23 | #include
24 |
25 | IGA_NAMESPACE_OPEN
26 |
27 | template
28 | FormulaFunction::
29 | FormulaFunction(const SharedPtrConstnessHandler &domain)
30 | :
31 | parent_t(domain)
32 | {}
33 |
34 |
35 |
36 | template
37 | auto
38 | FormulaFunction::
39 | create_cache_handler() const
40 | -> std::unique_ptr
41 | {
42 | return std::unique_ptr(new Handler(
43 | std::dynamic_pointer_cast(this->shared_from_this())));
44 | }
45 |
46 | IGA_NAMESPACE_CLOSE
47 |
48 | #include
49 |
50 |
--------------------------------------------------------------------------------
/source/functions/formula_function.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 |
25 | data = Instantiation(include_files)
26 |
27 | (f, inst) = (data.file_output, data.inst)
28 |
29 | for row in inst.all_function_dims:
30 | func = 'FormulaFunction<%d,%d,%d,%d>' %(row.dim, row.codim, row.range, row.rank)
31 | f.write('template class %s ;\n' %(func))
32 |
33 |
--------------------------------------------------------------------------------
/source/functions/formula_function_handler.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 |
25 | data = Instantiation(include_files)
26 |
27 | (f, inst) = (data.file_output, data.inst)
28 |
29 | functions = []
30 |
31 | for row in inst.all_function_dims:
32 | dims = '<%d, %d, %d, %d>' %(row.dim, row.codim, row.range, row.rank)
33 | func = 'FormulaFunctionHandler%s' %(dims)
34 | functions.append(func)
35 | f.write('template class %s ;\n' %(func))
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/source/functions/formula_grid_function.cpp:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 | #include
22 | #include
23 |
24 | IGA_NAMESPACE_OPEN
25 |
26 | template
27 | FormulaGridFunction::
28 | FormulaGridFunction(const SharedPtrConstnessHandler &grid)
29 | :
30 | parent_t::GridFunction(grid)
31 | {}
32 |
33 |
34 |
35 | template
36 | auto
37 | FormulaGridFunction::
38 | create_cache_handler() const
39 | -> std::unique_ptr
40 | {
41 | return std::unique_ptr(new Handler(
42 | std::dynamic_pointer_cast(this->shared_from_this())));
43 | }
44 |
45 |
46 |
47 |
48 |
49 | IGA_NAMESPACE_CLOSE
50 |
51 | #include
52 |
53 |
--------------------------------------------------------------------------------
/source/functions/formula_grid_function.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 |
25 | data = Instantiation(include_files)
26 | (f, inst) = (data.file_output, data.inst)
27 |
28 | mappings = []
29 |
30 | for x in inst.sub_mapping_dims + inst.mapping_dims:
31 | mapping = 'FormulaGridFunction<%d,%d>' %(x.dim,x.space_dim)
32 | mappings.append(mapping)
33 | mapping = 'FormulaGridFunction<%d,1>' %(x.dim)
34 | mappings.append(mapping)
35 |
36 |
37 |
38 |
39 | for map in unique(mappings):
40 | f.write('template class %s ;\n' %(map))
41 |
42 |
--------------------------------------------------------------------------------
/source/functions/function.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 |
25 | data = Instantiation(include_files)
26 |
27 | (f, inst) = (data.file_output, data.inst)
28 |
29 | funcs = set()
30 |
31 | for row in inst.all_function_dims:
32 | dims = '<%d,%d,%d,%d>' %(row.dim, row.codim, row.range, row.rank)
33 | func = 'Function%s' %(dims)
34 | funcs.add(func)
35 | f.write('template class %s ;\n' %(func))
36 |
37 |
38 |
39 | #---------------------------------------------------
40 | f.write('#ifdef IGATOOLS_WITH_SERIALIZATION\n')
41 | archives = ['OArchive','IArchive']
42 |
43 | for func in funcs:
44 | for ar in archives:
45 | f.write('template void %s::serialize(%s&);\n' %(func,ar))
46 | f.write('#endif // IGATOOLS_WITH_SERIALIZATION\n')
47 | #---------------------------------------------------
--------------------------------------------------------------------------------
/source/functions/function_handler.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 |
25 | data = Instantiation(include_files)
26 |
27 | (f, inst) = (data.file_output, data.inst)
28 |
29 | functions = []
30 |
31 | for row in inst.all_function_dims:
32 | dims = '<%d, %d, %d, %d>' %(row.dim, row.codim, row.range, row.rank)
33 | func = 'FunctionHandler%s' %(dims)
34 | functions.append(func)
35 | f.write('template class %s ;\n' %(func))
36 |
37 |
38 |
39 | #---------------------------------------------------
40 | #f.write('IGA_NAMESPACE_CLOSE\n')
41 |
42 |
43 | #f.write('IGA_NAMESPACE_OPEN\n')
44 | #---------------------------------------------------
45 |
--------------------------------------------------------------------------------
/source/functions/sub_grid_function.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 |
25 | data = Instantiation(include_files)
26 | (f, inst) = (data.file_output, data.inst)
27 |
28 |
29 | classes = set()
30 |
31 |
32 | for x in inst.sub_mapping_dims + inst.mapping_dims:
33 | for sdim in range(0,x.dim):
34 | cl = 'SubGridFunction<%d,%d,%d>' %(sdim,x.dim,x.space_dim)
35 | classes.add(cl)
36 |
37 | #for x in inst.mapping_dims:
38 | # for sdim in range(0,x.dim):
39 | # cl = 'SubGridFunction<%d,%d,%d>' %(sdim,x.dim,x.space_dim)
40 | # classes.append(cl)
41 |
42 | #the next classes are needed by NURBS
43 | cl = 'SubGridFunction<%d,%d,1>' %(sdim,x.dim)
44 | classes.add(cl)
45 |
46 |
47 |
48 |
49 | for cl in classes:
50 | f.write('template class %s;\n' %(cl))
51 |
52 |
--------------------------------------------------------------------------------
/source/geometry/bbox.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | # QA (pauletti, Mar 19, 2014):
22 | from init_instantiation_data import *
23 | data = Instantiation()
24 | f = data.file_output
25 | inst = data.inst
26 |
27 | for dim in inst.all_domain_dims:
28 | f.write('template class BBox<%d> ;\n' % (dim))
29 |
30 |
--------------------------------------------------------------------------------
/source/geometry/domain_lib.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 | data = Instantiation()
23 | (f, inst) = (data.file_output, data.inst)
24 |
25 | output = set ()
26 |
27 | for dim in inst.domain_dims:
28 | output.add ('template class domains::BallDomain<%d>;\n' % (dim) )
29 |
30 | for s in output:
31 | f.write(s)
32 |
33 |
34 | #s = ('template class functions::SphereFunction<%d>;\n' %1 )
35 | #f.write(s)
36 | #s = ('template class functions::SphereFunction<%d>;\n' %2 )
37 | #f.write(s)
38 |
39 | #s = ('template class functions::CylindricalAnnulus<%d>;\n' %3)
40 | #f.write(s)
41 |
42 |
--------------------------------------------------------------------------------
/source/geometry/push_forward.cpp:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 | #if 0
22 | #include
23 | #include
24 | #endif
25 |
--------------------------------------------------------------------------------
/source/geometry/push_forward.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 |
23 | include_files = []
24 | data = Instantiation(include_files)
25 | (f, inst) = (data.file_output, data.inst)
26 |
27 |
28 | push_forwards = []
29 |
30 | for x in inst.sub_mapping_dims:
31 | dims = '' %(x.dim, x.codim)
32 | pf = 'PushForward%s' % (dims)
33 | push_forwards.append(pf)
34 |
35 | for x in inst.mapping_dims:
36 | dims = '' %(x.dim, x.codim)
37 | pf = 'PushForward%s' % (dims)
38 | push_forwards.append(pf)
39 |
40 |
41 | for pf in unique(push_forwards):
42 | f.write('template class %s ;\n' %(pf))
43 |
--------------------------------------------------------------------------------
/source/geometry/unit_element.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | # QA (pauletti, Mar 19, 2014):
22 | from init_instantiation_data import *
23 | data = Instantiation()
24 | f = data.file_output
25 | inst = data.inst
26 |
27 | for dim in inst.all_domain_dims:
28 | f.write('template struct UnitElement<%d> ;\n' % (dim))
29 |
30 |
--------------------------------------------------------------------------------
/source/io/writer.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 | include_files = []
23 |
24 | data = Instantiation(include_files)
25 | (f, inst) = (data.file_output, data.inst)
26 |
27 | strings = []
28 |
29 | writer_real_types = ['double']
30 |
31 | for x in inst.mapping_dims:
32 | for writer_real_t in writer_real_types:
33 | writer = 'Writer<%d, %d, %s>' %(x.dim, x.codim, writer_real_t)
34 | strings.append('template class %s ;\n' % (writer))
35 |
36 | for s in unique(strings): # Removing repeated entries.
37 | f.write(s)
38 |
39 |
--------------------------------------------------------------------------------
/source/linear_algebra/dense_vector.cpp:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 | #include
22 | #include
23 |
24 | IGA_NAMESPACE_OPEN
25 |
26 |
27 | DenseVector &
28 | DenseVector::
29 | operator=(const Real value)
30 | {
31 | using zero_vector = boost::numeric::ublas::zero_vector;
32 | Assert(value==0, ExcNonZero(value));
33 | *this = zero_vector(this->size());
34 | return *this;
35 | }
36 |
37 | int
38 | DenseVector::
39 | size() const
40 | {
41 | return int(boost::numeric::ublas::vector::size());
42 | }
43 |
44 | IGA_NAMESPACE_CLOSE
45 |
46 |
--------------------------------------------------------------------------------
/source/linear_algebra/dof_tools.inst.py:
--------------------------------------------------------------------------------
1 | #-+--------------------------------------------------------------------
2 | # Igatools a general purpose Isogeometric analysis library.
3 | # Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | #
5 | # This file is part of the igatools library.
6 | #
7 | # The igatools library is free software: you can use it, redistribute
8 | # it and/or modify it under the terms of the GNU General Public
9 | # License as published by the Free Software Foundation, either
10 | # version 3 of the License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 | #-+--------------------------------------------------------------------
20 |
21 | from init_instantiation_data import *
22 | data = Instantiation()
23 | (f, inst) = (data.file_output, data.inst)
24 | # delete this file
25 |
--------------------------------------------------------------------------------
/source/linear_algebra/epetra_map.cpp:
--------------------------------------------------------------------------------
1 | //-+--------------------------------------------------------------------
2 | // Igatools a general purpose Isogeometric analysis library.
3 | // Copyright (C) 2012-2016 by the igatools authors (see authors.txt).
4 | //
5 | // This file is part of the igatools library.
6 | //
7 | // The igatools library is free software: you can use it, redistribute
8 | // it and/or modify it under the terms of the GNU General Public
9 | // License as published by the Free Software Foundation, either
10 | // version 3 of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 | //-+--------------------------------------------------------------------
20 |
21 | #include
22 |
23 | IGA_NAMESPACE_OPEN
24 |
25 | #ifdef IGATOOLS_USES_TRILINOS
26 |
27 | namespace EpetraTools
28 | {
29 |
30 | MapPtr
31 | create_map(const std::set &dofs,
32 | const Comm &comm)
33 | {
34 | SafeSTLVector dofs_vec(dofs.begin(), dofs.end());
35 | return std::make_shared