Nektar++
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
solvers
CardiacEPSolver
Stimuli
StimulusPoint.cpp
Go to the documentation of this file.
1
///////////////////////////////////////////////////////////////////////////////
2
//
3
// File StimulusPoint.cpp
4
//
5
// For more information, please see: http://www.nektar.info
6
//
7
// The MIT License
8
//
9
// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
10
// Department of Aeronautics, Imperial College London (UK), and Scientific
11
// Computing and Imaging Institute, University of Utah (USA).
12
//
13
// License for the specific language governing rights and limitations under
14
// Permission is hereby granted, free of charge, to any person obtaining a
15
// copy of this software and associated documentation files (the "Software"),
16
// to deal in the Software without restriction, including without limitation
17
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
18
// and/or sell copies of the Software, and to permit persons to whom the
19
// Software is furnished to do so, subject to the following conditions:
20
//
21
// The above copyright notice and this permission notice shall be included
22
// in all copies or substantial portions of the Software.
23
//
24
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
27
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
30
// DEALINGS IN THE SOFTWARE.
31
//
32
// Description: Rectangular stimulus class
33
//
34
///////////////////////////////////////////////////////////////////////////////
35
#include <iostream>
36
#include <tinyxml.h>
37
#include <
LibUtilities/BasicUtils/VmathArray.hpp
>
38
39
#include <
CardiacEPSolver/Stimuli/StimulusPoint.h
>
40
41
namespace
Nektar
42
{
43
std::string
StimulusPoint::className
44
=
GetStimulusFactory
().
RegisterCreatorFunction
(
45
"StimulusPoint"
,
46
StimulusPoint::create
,
47
"Point stimulus."
);
48
49
/**
50
* @class StimulusPoint
51
*
52
* The Stimulus class and derived classes implement a range of stimuli.
53
* The stimulus contains input stimuli that can be applied throughout the
54
* domain, on specified regions determined by the derived classes of
55
* Stimulus, at specified frequencies determined by the derived classes of
56
* Protocol.
57
*/
58
59
/**
60
* Stimulus base class constructor.
61
*/
62
StimulusPoint::StimulusPoint
(
63
const
LibUtilities::SessionReaderSharedPtr
& pSession,
64
const
MultiRegions::ExpListSharedPtr
& pField,
65
const
TiXmlElement* pXml)
66
:
Stimulus
(pSession, pField, pXml)
67
{
68
m_session
= pSession;
69
m_field
= pField;
70
m_nq
= pField->GetTotPoints();
71
72
if
(!pXml)
73
{
74
return
;
75
}
76
77
78
const
TiXmlElement *pXmlparameter;
79
80
pXmlparameter = pXml->FirstChildElement(
"p_strength"
);
81
m_strength
= atof(pXmlparameter->GetText());
82
}
83
84
85
/**
86
* Initialise the stimulus. Allocate workspace and variable storage.
87
*/
88
void
StimulusPoint::Initialise
()
89
{
90
91
92
}
93
94
/**
95
*
96
*/
97
void
StimulusPoint::v_Update
(
98
Array<
OneD
, Array<OneD, NekDouble> >&outarray,
99
const
NekDouble
time)
100
{
101
// Get the protocol amplitude
102
NekDouble
v_amp =
m_Protocol
->GetAmplitude(time) *
m_strength
;
103
104
outarray[0][0] += v_amp;
105
}
106
107
108
/**
109
*
110
*/
111
void
StimulusPoint::v_GenerateSummary
(
SolverUtils::SummaryList
& s)
112
{
113
114
115
}
116
}
Generated on Wed Mar 4 2015 16:33:18 for Nektar++ by
1.8.1.2