Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
beef239f
"platforms/vscode:/vscode.git/clone" did not exist on "da106c00a8e9eab5dfe57487105f75c21e03383a"
Commit
beef239f
authored
Aug 16, 2008
by
Mark Friedrichs
Browse files
Start Langevin
parent
e7c41fb6
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
247 additions
and
6 deletions
+247
-6
platforms/brook/src/BrookCalcGBSAOBCForceFieldKernel.cpp
platforms/brook/src/BrookCalcGBSAOBCForceFieldKernel.cpp
+1
-1
platforms/brook/src/BrookIntegrateLangevinStepKernel.cpp
platforms/brook/src/BrookIntegrateLangevinStepKernel.cpp
+139
-0
platforms/brook/src/BrookIntegrateLangevinStepKernel.h
platforms/brook/src/BrookIntegrateLangevinStepKernel.h
+105
-0
platforms/brook/src/BrookIntegrateVerletStepKernel.cpp
platforms/brook/src/BrookIntegrateVerletStepKernel.cpp
+0
-0
platforms/brook/src/BrookIntegrateVerletStepKernel.h
platforms/brook/src/BrookIntegrateVerletStepKernel.h
+1
-4
platforms/brook/src/BrookStreamImpl.cpp
platforms/brook/src/BrookStreamImpl.cpp
+1
-1
No files found.
platforms/brook/src/BrookCalcGBSAOBCForceFieldKernel.cpp
View file @
beef239f
...
...
@@ -145,7 +145,7 @@ void BrookCalcGBSAOBCForceFieldKernel::initialize( const std::vector<std::vector
_brookGbsa
=
new
BrookGbsa
();
_brookGbsa
->
setLog
(
log
);
_brookGbsa
->
setup
(
atomParameters
,
solventDielectric
,
soluteDielectric
);
_brookGbsa
->
setup
(
atomParameters
,
solventDielectric
,
soluteDielectric
,
getPlatform
()
);
if
(
log
){
std
::
string
contents
=
_brookGbsa
->
getContentsString
(
);
...
...
platforms/brook/src/BrookIntegrateLangevinStepKernel.cpp
0 → 100644
View file @
beef239f
/* -------------------------------------------------------------------------- *
* OpenMM *
* -------------------------------------------------------------------------- *
* This is part of the OpenMM molecular simulation toolkit originating from *
* Simbios, the NIH National Center for Physics-Based Simulation of *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* Portions copyright (c) 2008 Stanford University and the Authors. *
* Authors: Peter Eastman *
* Contributors: *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the "Software"), *
* to deal in the Software without restriction, including without limitation *
* the rights to use, copy, modify, merge, publish, distribute, sublicense, *
* and/or sell copies of the Software, and to permit persons to whom the *
* Software is furnished to do so, subject to the following conditions: *
* *
* The above copyright notice and this permission notice shall be included in *
* all copies or substantial portions of the Software. *
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
* THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
* USE OR OTHER DEALINGS IN THE SOFTWARE. *
* -------------------------------------------------------------------------- */
#include "BrookIntegrateKernals.h"
#include "BrookStreamInternal.h"
using
namespace
OpenMM
;
using
namespace
std
;
BrookIntegrateLangevinStepKernel
::
BrookIntegrateLangevinStepKernel
(
std
::
string
name
,
const
Platform
&
platform
)
:
IntegrateLangevinStepKernel
(
name
,
platform
){
// ---------------------------------------------------------------------------------------
// static const std::string methodName = "BrookIntegrateLangevinStepKernel::BrookIntegrateLangevinStepKernel";
// ---------------------------------------------------------------------------------------
_numberOfConstraints
=
-
1
;
_brookStochasticDynamics
=
NULL
;
_brookShakeAlgorithm
=
NULL
;
_atomMasses
=
NULL
;
_shakeParameters
=
NULL
;
_constraintIndices
=
NULL
;
_shakeParameters
=
NULL
;
}
BrookIntegrateLangevinStepKernel
::~
BrookIntegrateLangevinStepKernel
(
){
// ---------------------------------------------------------------------------------------
// static const std::string methodName = "BrookIntegrateLangevinStepKernel::~BrookIntegrateLangevinStepKernel";
// ---------------------------------------------------------------------------------------
delete
_brookkStochasticDynamics
;
delete
_brookShakeAlgorithm
;
delete
_atomMasses
;
delete
_shakeParameters
;
delete
_constraintIndices
;
delete
_shakeParameters
;
}
void
BrookIntegrateLangevinStepKernel
::
initialize
(
const
vector
<
double
>&
masses
,
const
vector
<
vector
<
int
>
>&
constraintIndices
,
const
vector
<
double
>&
constraintLengths
){
// ---------------------------------------------------------------------------------------
// static const std::string methodName = "BrookIntegrateLangevinStepKernel::initialize";
// ---------------------------------------------------------------------------------------
/*
this->masses = new RealOpenMM[masses.size()];
for (size_t i = 0; i < masses.size(); ++i)
this->masses[i] = static_cast<RealOpenMM>( masses[i] );
numConstraints = constraintIndices.size();
this->constraintIndices = allocateIntArray(numConstraints, 2);
for (int i = 0; i < numConstraints; ++i) {
this->constraintIndices[i][0] = constraintIndices[i][0];
this->constraintIndices[i][1] = constraintIndices[i][1];
}
shakeParameters = allocateRealArray(constraintLengths.size(), 1);
for (size_t i = 0; i < constraintLengths.size(); ++i)
shakeParameters[i][0] = static_cast<RealOpenMM>( constraintLengths[i] );
*/
}
/**
* Execute kernel
*
* @param positions atom coordinates
* @param velocities atom velocities
* @param forces atom forces
* @param temperature heat bath temperature
* @param friction friction coefficient coupling the system to the heat bath
* @param stepSize integration step size
*
*/
void
BrookIntegrateLangevinStepKernel
::
execute
(
Stream
&
positions
,
Stream
&
velocities
,
const
Stream
&
forces
,
double
temperature
,
double
friction
,
double
stepSize
){
// ---------------------------------------------------------------------------------------
//static const std::string methodName = "BrookIntegrateLangevinStepKernel::execute";
// ---------------------------------------------------------------------------------------
// first time through initialize _brookStochasticDynamics
// for each subsequent call, check if parameters need to be updated due to a change
// in T, gamma, or the step size
// take step
if
(
_brookStochasticDynamics
==
NULL
){
_brookStochasticDynamics
=
new
BrookStochasticDynamics
(
getNumberOfAtoms
(),
static_cast
<
RealOpenMM
>
(
stepSize
),
static_cast
<
RealOpenMM
>
(
tau
),
static_cast
<
RealOpenMM
>
(
temperature
)
);
}
else
{
_brookStochasticDynamics
->
updateParameters
(
temperature
,
friction
,
stepSize
);
}
_brookStochasticDynamics
->
update
(
positions
,
velocities
,
forces
);
}
platforms/brook/src/BrookIntegrateLangevinStepKernel.h
0 → 100644
View file @
beef239f
#ifndef OPENMM_BROOK_INTEGRATE_LANGEVIN_STEP_KERNEL_H_
#define OPENMM_BROOK_INTEGRATE_LANGEVIN_STEP_KERNEL_H_
/* -------------------------------------------------------------------------- *
* OpenMM *
* -------------------------------------------------------------------------- *
* This is part of the OpenMM molecular simulation toolkit originating from *
* Simbios, the NIH National Center for Physics-Based Simulation of *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* Portions copyright ( c ) 2008 Stanford University and the Authors. *
* Authors: Peter Eastman, Mark Friedrichs *
* Contributors: *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files ( the "Software" ), *
* to deal in the Software without restriction, including without limitation *
* the rights to use, copy, modify, merge, publish, distribute, sublicense, *
* and/or sell copies of the Software, and to permit persons to whom the *
* Software is furnished to do so, subject to the following conditions: *
* *
* The above copyright notice and this permission notice shall be included in *
* all copies or substantial portions of the Software. *
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
* THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
* USE OR OTHER DEALINGS IN THE SOFTWARE. *
* -------------------------------------------------------------------------- */
#include "kernels.h"
#include "BrookStochasticDynamics.h"
#include "BrookShakeAlgorithm.h"
namespace
OpenMM
{
/**
* This is the base class of Float and Double streams in the Brook Platform.
*/
class
BrookIntegrateLangevinStepKernel
:
public
IntegrateLangevinStepKernel
{
public:
/**
* BrookIntegrateLangevinStepKernel constructor
*
* @param name name of the stream to create
* @param platform platform
*
*/
BrookIntegrateLangevinStepKernel
(
std
::
string
name
,
const
Platform
&
platform
);
/**
* BrookIntegrateLangevinStepKernel destructor
*
*/
~
BrookIntegrateLangevinStepKernel
();
/**
* Initialize the kernel, setting up all parameters related to integrator.
*
* @param masses atom masses
* @param constraintIndices each element contains the indices of two atoms whose distance should be constrained
* @param constraintLengths required distance between each pair of constrained atoms
*/
void
initialize
(
const
std
::
vector
<
double
>&
masses
,
const
std
::
vector
<
std
::
vector
<
int
>
>&
constraintIndices
,
const
std
::
vector
<
double
>&
constraintLengths
);
/**
* Execute kernel
*
* @param positions coordinates
* @param velocities velocities
* @param forces forces
* @param temperature heat bath temperature
* @param friction friction coefficient coupling the system to the heat bath
* @param stepSize step size
*
*/
void
execute
(
Stream
&
positions
,
Stream
&
velocities
,
const
Stream
&
forces
,
double
temperature
,
double
friction
,
double
stepSize
);
protected:
BrookStochasticDynamics
*
_brookStochasticDynamics
;
BrookShakeAlgorithm
*
_brookShakeAlgorithm
;
RealOpenMM
*
_atomMasses
;
RealOpenMM
**
_shakeParameters
;
int
**
_constraintIndices
;
int
_numberOfConstraints
;
double
prevTemp
,
prevFriction
,
prevStepSize
;
};
}
// namespace OpenMM
#endif
/* OPENMM_BROOK_INTEGRATE_LANGEVIN_STEP_KERNEL_H_ */
platforms/brook/src/BrookIntegrateKern
als
.cpp
→
platforms/brook/src/BrookIntegrate
VerletStep
Kern
el
.cpp
View file @
beef239f
File moved
platforms/brook/src/BrookIntegrateKern
als
.h
→
platforms/brook/src/BrookIntegrate
VerletStep
Kern
el
.h
View file @
beef239f
...
...
@@ -85,10 +85,7 @@ class BrookIntegrateVerletStepKernel : public IntegrateVerletStepKernel {
protected:
int
_width
;
int
_streamWidth
;
int
_streamHeight
;
int
_streamSize
;
};
...
...
platforms/brook/src/BrookStreamImpl.cpp
View file @
beef239f
...
...
@@ -267,7 +267,7 @@ void BrookStreamImpl::fillWithValue( void* value ){
*
* @return data array
*/
void
*
BrookStreamImpl
::
getData
(
void
*
value
){
void
*
BrookStreamImpl
::
getData
(
void
){
return
_brookStreamInternal
->
getData
(
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment