diff --git a/extra_packages/traction-at-split-node-contact/src/ntn_contact/friction_laws/ntn_friclaw_linear_cohesive.hh b/extra_packages/traction-at-split-node-contact/src/ntn_contact/friction_laws/ntn_friclaw_linear_cohesive.hh index 4c29e36d4..7fa178a28 100644 --- a/extra_packages/traction-at-split-node-contact/src/ntn_contact/friction_laws/ntn_friclaw_linear_cohesive.hh +++ b/extra_packages/traction-at-split-node-contact/src/ntn_contact/friction_laws/ntn_friclaw_linear_cohesive.hh @@ -1,116 +1,115 @@ /** * @file ntn_friclaw_linear_cohesive.hh * * @author David Simon Kammer * * @date creation: Fri Jun 18 2010 * @date last modification: Tue Sep 29 2020 * * @brief linear cohesive law * * * @section LICENSE * * Copyright (©) 2015-2021 EPFL (Ecole Polytechnique Fédérale de Lausanne) * Laboratory (LSMS - Laboratoire de Simulation en Mécanique des Solides) * * Akantu is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) any * later version. * * Akantu is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License * along with Akantu. If not, see . * */ /* -------------------------------------------------------------------------- */ #ifndef AST_NTN_FRICLAW_LINEAR_COHESIVE_HH_ #define AST_NTN_FRICLAW_LINEAR_COHESIVE_HH_ /* -------------------------------------------------------------------------- */ // simtools #include "ntn_fricreg_no_regularisation.hh" namespace akantu { /* -------------------------------------------------------------------------- */ template class NTNFricLawLinearCohesive : public Regularisation { /* ------------------------------------------------------------------------ */ /* Constructors/Destructors */ /* ------------------------------------------------------------------------ */ public: NTNFricLawLinearCohesive(NTNBaseContact & contact, const ID & id = "linear_cohesive"); ~NTNFricLawLinearCohesive() override = default; - ; /* ------------------------------------------------------------------------ */ /* Methods */ /* ------------------------------------------------------------------------ */ public: /// register synchronizedarrays for sync void registerSynchronizedArray(SynchronizedArrayBase & array) override; /// dump restart file void dumpRestart(const std::string & file_name) const override; /// read restart file void readRestart(const std::string & file_name) override; /// function to print the contain of the class void printself(std::ostream & stream, int indent = 0) const override; protected: /// compute frictional strength according to friction law void computeFrictionalStrength() override; /* ------------------------------------------------------------------------ */ /* Dumpable */ /* ------------------------------------------------------------------------ */ public: void addDumpFieldToDumper(const std::string & dumper_name, const std::string & field_id) override; /* ------------------------------------------------------------------------ */ /* Accessors */ /* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */ /* Class Members */ /* ------------------------------------------------------------------------ */ protected: // fracture energy SynchronizedArray G_c; // peak value of cohesive law SynchronizedArray tau_c; // residual value of cohesive law (for slip > d_c) SynchronizedArray tau_r; }; /* -------------------------------------------------------------------------- */ /* inline functions */ /* -------------------------------------------------------------------------- */ /// standard output stream operator template inline std::ostream & operator<<(std::ostream & stream, const NTNFricLawLinearCohesive & _this) { _this.printself(stream); return stream; } } // namespace akantu #include "ntn_friclaw_linear_cohesive_tmpl.hh" #endif /* AST_NTN_FRICLAW_LINEAR_COHESIVE_HH_ */ diff --git a/extra_packages/traction-at-split-node-contact/src/ntn_contact/friction_regularisations/ntn_fricreg_rubin_ampuero.hh b/extra_packages/traction-at-split-node-contact/src/ntn_contact/friction_regularisations/ntn_fricreg_rubin_ampuero.hh index 9e90e2945..f23eec34d 100644 --- a/extra_packages/traction-at-split-node-contact/src/ntn_contact/friction_regularisations/ntn_fricreg_rubin_ampuero.hh +++ b/extra_packages/traction-at-split-node-contact/src/ntn_contact/friction_regularisations/ntn_fricreg_rubin_ampuero.hh @@ -1,103 +1,102 @@ /** * @file ntn_fricreg_rubin_ampuero.hh * * @author David Simon Kammer * * @date creation: Fri Jun 18 2010 * @date last modification: Tue Sep 29 2020 * * @brief regularisation that regularizes the contact pressure * * * @section LICENSE * * Copyright (©) 2015-2021 EPFL (Ecole Polytechnique Fédérale de Lausanne) * Laboratory (LSMS - Laboratoire de Simulation en Mécanique des Solides) * * Akantu is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) any * later version. * * Akantu is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License * along with Akantu. If not, see . * */ /* -------------------------------------------------------------------------- */ #ifndef AST_NTN_FRICREG_RUBIN_AMPUERO_HH_ #define AST_NTN_FRICREG_RUBIN_AMPUERO_HH_ /* -------------------------------------------------------------------------- */ // simtools #include "ntn_fricreg_no_regularisation.hh" namespace akantu { /* -------------------------------------------------------------------------- */ class NTNFricRegRubinAmpuero : public NTNFricRegNoRegularisation { /* ------------------------------------------------------------------------ */ /* Constructors/Destructors */ /* ------------------------------------------------------------------------ */ public: NTNFricRegRubinAmpuero(NTNBaseContact & contact, const ID & id = "rubin_ampuero"); ~NTNFricRegRubinAmpuero() override = default; - ; /* ------------------------------------------------------------------------ */ /* Methods */ /* ------------------------------------------------------------------------ */ public: void registerSynchronizedArray(SynchronizedArrayBase & array) override; void dumpRestart(const std::string & file_name) const override; void readRestart(const std::string & file_name) override; void setToSteadyState() override; /// function to print the contain of the class void printself(std::ostream & stream, int indent = 0) const override; /* ------------------------------------------------------------------------ */ /* Dumpable */ /* ------------------------------------------------------------------------ */ public: void addDumpFieldToDumper(const std::string & dumper_name, const std::string & field_id) override; /* ------------------------------------------------------------------------ */ /* Accessors */ /* ------------------------------------------------------------------------ */ public: protected: /// get the contact pressure (the norm: scalar value) const SynchronizedArray & internalGetContactPressure() override; /* ------------------------------------------------------------------------ */ /* Class Members */ /* ------------------------------------------------------------------------ */ private: SynchronizedArray t_star; }; /* -------------------------------------------------------------------------- */ /* inline functions */ /* -------------------------------------------------------------------------- */ //#include "ntn_fricreg_rubin_ampuero_inline_impl.hh" /// standard output stream operator inline std::ostream & operator<<(std::ostream & stream, const NTNFricRegRubinAmpuero & _this) { _this.printself(stream); return stream; } } // namespace akantu #endif /* AST_NTN_FRICREG_RUBIN_AMPUERO_HH_ */ diff --git a/extra_packages/traction-at-split-node-contact/src/ntn_contact/ntn_friction.hh b/extra_packages/traction-at-split-node-contact/src/ntn_contact/ntn_friction.hh index aae2501f0..82cf47e17 100644 --- a/extra_packages/traction-at-split-node-contact/src/ntn_contact/ntn_friction.hh +++ b/extra_packages/traction-at-split-node-contact/src/ntn_contact/ntn_friction.hh @@ -1,101 +1,100 @@ /** * @file ntn_friction.hh * * @author David Simon Kammer * * @date creation: Fri Jun 18 2010 * @date last modification: Tue Sep 29 2020 * * @brief implementation of friction for node to node contact * * * @section LICENSE * * Copyright (©) 2015-2021 EPFL (Ecole Polytechnique Fédérale de Lausanne) * Laboratory (LSMS - Laboratoire de Simulation en Mécanique des Solides) * * Akantu is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) any * later version. * * Akantu is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License * along with Akantu. If not, see . * */ /* -------------------------------------------------------------------------- */ #ifndef AST_NTN_FRICTION_HH_ #define AST_NTN_FRICTION_HH_ /* -------------------------------------------------------------------------- */ // simtools #include "ntn_base_friction.hh" #include "ntn_friclaw_coulomb.hh" namespace akantu { /* -------------------------------------------------------------------------- */ template