diff --git a/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.cpp b/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.cpp index a35ab72aefc3f165ba576efe76ab51a61b786a32..e785b49dc3df2f49110c943e701804d65cccd015 100644 --- a/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.cpp +++ b/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.cpp @@ -23,12 +23,6 @@ namespace ProcessLib { namespace ThermoMechanics { -template <int DisplacementDim> -class ThermoMechanicsProcess; - -extern template class ThermoMechanicsProcess<2>; -extern template class ThermoMechanicsProcess<3>; - template <int DisplacementDim> std::unique_ptr<Process> createThermoMechanicsProcess( MeshLib::Mesh& mesh, @@ -182,11 +176,10 @@ std::unique_ptr<Process> createThermoMechanicsProcess( ProcessLib::parseSecondaryVariables(config, secondary_variables, named_function_caller); - return std::unique_ptr<ThermoMechanicsProcess<DisplacementDim>>{ - new ThermoMechanicsProcess<DisplacementDim>{ - mesh, std::move(jacobian_assembler), parameters, integration_order, - std::move(process_variables), std::move(process_data), - std::move(secondary_variables), std::move(named_function_caller)}}; + return std::make_unique<ThermoMechanicsProcess<DisplacementDim>>( + mesh, std::move(jacobian_assembler), parameters, integration_order, + std::move(process_variables), std::move(process_data), + std::move(secondary_variables), std::move(named_function_caller)); } template std::unique_ptr<Process> createThermoMechanicsProcess<2>( diff --git a/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h b/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h index 5b2849eedd96e7b430cca2782e5b59092be2c4ab..161c0847ee931872bb37fe0059efda6fb0d14273 100644 --- a/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h +++ b/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h @@ -9,7 +9,24 @@ #pragma once -#include "ProcessLib/Process.h" +#include <memory> +#include <vector> + +namespace BaseLib +{ +class ConfigTree; +} +namespace MeshLib +{ +class Mesh; +} +namespace ProcessLib +{ +class AbstractJacobianAssembler; +struct ParameterBase; +class Process; +class ProcessVariable; +} namespace ProcessLib { @@ -24,5 +41,21 @@ std::unique_ptr<Process> createThermoMechanicsProcess( unsigned const integration_order, BaseLib::ConfigTree const& config); +extern template std::unique_ptr<Process> createThermoMechanicsProcess<2>( + MeshLib::Mesh& mesh, + std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, + std::vector<ProcessVariable> const& variables, + std::vector<std::unique_ptr<ParameterBase>> const& parameters, + unsigned const integration_order, + BaseLib::ConfigTree const& config); + +extern template std::unique_ptr<Process> createThermoMechanicsProcess<3>( + MeshLib::Mesh& mesh, + std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, + std::vector<ProcessVariable> const& variables, + std::vector<std::unique_ptr<ParameterBase>> const& parameters, + unsigned const integration_order, + BaseLib::ConfigTree const& config); + } // namespace ThermoMechanics } // namespace ProcessLib