Line data Source code
1 : /**********************************************************************/ 2 : /* DO NOT MODIFY THIS HEADER */ 3 : /* MAGPIE - Mesoscale Atomistic Glue Program for Integrated Execution */ 4 : /* */ 5 : /* Copyright 2017 Battelle Energy Alliance, LLC */ 6 : /* ALL RIGHTS RESERVED */ 7 : /**********************************************************************/ 8 : #ifdef GSL_ENABLED 9 : 10 : #pragma once 11 : 12 : #include "PolyatomicDisplacementFunctionBase.h" 13 : 14 : /** 15 : * Implements the computation of polyatomic displacement functions using Parkin & Coulter's 16 : * method, compare JNM 101, 1981. 17 : */ 18 : class PolyatomicDamageEnergyFunction : public PolyatomicDisplacementFunctionBase 19 : { 20 : public: 21 : /// default constructor 22 : PolyatomicDamageEnergyFunction(std::vector<MyTRIM_NS::Element> polyatomic_material, 23 : nrt_type damage_function_type, 24 : std::vector<std::vector<Real>> Ecap = {{}}); 25 : 26 : virtual std::vector<Real> getRHS(Real energy) override; 27 : 28 : /// a getter needed for accessing this pointer in odeRHS 29 69888 : Real taylorSeriesThreshold() const { return _taylor_series_threshold; } 30 : 31 : Real integralTypeI(Real energy, unsigned int i, unsigned int j); 32 : 33 : Real integralTypeII(Real energy, unsigned int i, unsigned int j); 34 : 35 : /** 36 : * energy threshold below which the contribution from nu_i(E-T) - nu_i(E) is approximated 37 : * by nu_i(E-T) - nu_i(E) \approx -T d(nu_i) / dE. 38 : */ 39 : Real _taylor_series_threshold = 1e2; 40 : }; 41 : 42 : #endif // GSL_ENABLED