12#ifndef BELFEM_CL_SOURCEFUNCTION_HPP
13#define BELFEM_CL_SOURCEFUNCTION_HPP
16#pragma clang diagnostic push
17#pragma clang diagnostic ignored "-Wformat-security"
18#pragma clang diagnostic ignored "-Wformat"
19#pragma clang diagnostic ignored "-Wunused-variable"
20#pragma clang diagnostic ignored "-Wunused-parameter"
22#elif defined(__GNUC__) || defined(__GNUG__)
23#pragma GCC diagnostic push
24#pragma GCC diagnostic ignored "-Wformat"
25#pragma GCC diagnostic ignored "-Wunused-variable"
26#pragma GCC diagnostic ignored "-Wunused-parameter"
28#elif defined(BELFEM_INTEL)
32#pragma warning(disable: 1011)
34#pragma warning(disable: 177)
36#pragma warning(disable: 1595)
46#define BELFEM_BCVAL_AMPLITUDE 0
47#define BELFEM_BCVAL_PERIOD 1
48#define BELFEM_BCVAL_FREQUENCY 2
49#define BELFEM_BCVAL_OMEGA 3
50#define BELFEM_BCVAL_PHASE 4
51#define BELFEM_BCVAL_TIMEOFFSET 5
52#define BELFEM_BCVAL_FUZZYNESS 6
96 void *mHandle = nullptr ;
135 const real aAmplitude,
137 const real aTimeOffset=0.0 );
143 const real aAmplitude,
145 const real aTimeOffset,
146 const real aFuzzyness=0.01 );
153 const real aAmplitude,
166 const string & aLabel ) ;
211 set_amplitude(
const real aValue ) ;
214 set_period(
const real aValue ) ;
217 set_frequency(
const real aValue ) ;
220 set_omega(
const real aValue ) ;
223 set_phase(
const real aValue ) ;
226 set_time_offset(
const real aValue ) ;
229 set_fuzziness(
const real aValue ) ;
234 function_constant(
const real aTime )
const ;
237 function_ramp(
const real aTime )
const ;
240 function_sigmoid(
const real aTime )
const ;
243 function_sine(
const real aTime )
const ;
256 wrap_tau(
const real aTime )
const ;
259 function_square(
const real aTime )
const ;
262 function_triangle(
const real aTime )
const ;
265 function_sawtooth(
const real aTime )
const ;
268 function_userdefined(
const real aTime )
const ;
285 return ( this->*mFun )( aTime ) ;
348 SourceFunction::function_constant(
const real aTime )
const
356 SourceFunction::function_ramp(
const real aTime )
const
375 SourceFunction::function_sine(
const real aTime )
const
383 SourceFunction::function_sigmoid(
const real aTime )
const
389 real f = 1./(1+std::exp(beta * (d - aTime)));
397 SourceFunction::wrap_tau(
const real aTime )
const
403 return tTau < 0.0 ? tTau + 1.0 : tTau ;
409 SourceFunction::function_square(
const real aTime )
const
427 SourceFunction::function_triangle(
const real aTime )
const
441 SourceFunction::function_sawtooth(
const real aTime )
const
450 SourceFunction::function_userdefined(
const real aTime )
const
452 return mUserFunction(aTime) ;
459#pragma clang diagnostic pop
461#pragma GCC diagnostic pop
#define BELFEM_BCVAL_PHASE
Definition cl_SourceFunction.hpp:50
#define BELFEM_BCVAL_TIMEOFFSET
Definition cl_SourceFunction.hpp:51
#define BELFEM_BCVAL_OMEGA
Definition cl_SourceFunction.hpp:49
#define BELFEM_BCVAL_AMPLITUDE
Definition cl_SourceFunction.hpp:46
#define BELFEM_BCVAL_FUZZYNESS
Definition cl_SourceFunction.hpp:52
#define BELFEM_BCVAL_FREQUENCY
Definition cl_SourceFunction.hpp:48
#define BELFEM_BCVAL_PERIOD
Definition cl_SourceFunction.hpp:47
SourceFunction(const SourceFunction &)=delete
SourceFunction(SourceFunction &&)=delete
real frequency() const
Definition cl_SourceFunction.hpp:307
SourceFunction()
Definition cl_SourceFunction.cpp:72
SourceFunction & operator=(const SourceFunction &)=delete
real fuzziness() const
Definition cl_SourceFunction.hpp:340
void set_ramp(const real aAmplitude, const real aPeriod, const real aTimeOffset=0.0)
Definition cl_SourceFunction.cpp:124
SourceFunction & operator=(SourceFunction &&)=delete
void set_sigmoid(const real aAmplitude, const real aPeriod, const real aTimeOffset, const real aFuzzyness=0.01)
Definition cl_SourceFunction.cpp:142
void set_constant(const real aAmplitude)
Definition cl_SourceFunction.cpp:111
real amplitude() const
Definition cl_SourceFunction.hpp:291
SourceFunctionType type() const
Definition cl_SourceFunction.hpp:275
real omega() const
Definition cl_SourceFunction.hpp:315
real period() const
Definition cl_SourceFunction.hpp:299
real compute(const real aTime) const
Definition cl_SourceFunction.hpp:283
void set_user_defined(UserFunc *Function)
Definition cl_SourceFunction.cpp:209
void read_user_defined(const string &aLibraryPath, const string &aLabel)
Definition cl_SourceFunction.cpp:219
real phase() const
Definition cl_SourceFunction.hpp:323
real time_offset() const
Definition cl_SourceFunction.hpp:332
void set_periodic(const SourceFunctionType aType, const real aAmplitude, const real aPeriod, const real aPhase)
Definition cl_SourceFunction.cpp:161
@ beta
Definition cl_FEM_Calculator.hpp:114
USER GUIDES:
Definition cl_Capacitor.cpp:16
SourceFunctionType
Definition cl_SourceFunction.hpp:58
@ UNDEFINED
Definition cl_SourceFunction.hpp:67
@ Sigmoid
Definition cl_SourceFunction.hpp:61
@ Triangle
Definition cl_SourceFunction.hpp:64
@ Sine
Definition cl_SourceFunction.hpp:62
@ Ramp
Definition cl_SourceFunction.hpp:60
@ UserDefined
Definition cl_SourceFunction.hpp:66
@ Sawtooth
Definition cl_SourceFunction.hpp:65
@ Constant
Definition cl_SourceFunction.hpp:59
@ Square
Definition cl_SourceFunction.hpp:63
real UserFunc(const real)
Definition cl_SourceFunction.hpp:77
int proc_t
Definition commtypes.hpp:29
SourceFunctionType boundary_condition_function_type(const string &aString)
Definition cl_SourceFunction.cpp:27
double real
Definition typedefs.hpp:36
f
Definition test_curve_frame.py:26
d
Definition test_twist_crosscheck.py:91