コード例 #1
0
    def test_dihedral_harmonic(self):
        ftl_lambda = espressopp.FixedQuadrupleListLambda(self.system.storage)
        ftl_lambda.addQuadruples([(1, 2, 3, 4)])
        ftl = espressopp.FixedQuadrupleList(self.system.storage)
        ftl.addQuadruples([(1, 2, 3, 4)])

        interactionLambda = espressopp.interaction.FixedQuadrupleListLambdaDihedralRB(
            self.system, ftl_lambda, self.potential)
        interaction = espressopp.interaction.FixedQuadrupleListDihedralRB(
            self.system, ftl, self.potential)
        self.assertAlmostEqual(interaction.computeEnergy(),
                               interactionLambda.computeEnergy())
コード例 #2
0
    def test_dihedral_harmonic_lambda(self):
        ftl_lambda = espressopp.FixedQuadrupleListLambda(self.system.storage)
        ftl_lambda.addQuadruples([(1, 2, 3, 4), (2, 1, 3, 4)])
        ftl = espressopp.FixedQuadrupleList(self.system.storage)
        ftl.addQuadruples([(1, 2, 3, 4), (2, 1, 3, 4)])
        interactionLambda = espressopp.interaction.FixedQuadrupleListLambdaDihedralRB(
            self.system, ftl_lambda, self.potential)
        interaction = espressopp.interaction.FixedQuadrupleListDihedralRB(
            self.system, ftl, self.potential)

        self.fixed_dynamic_resolution.register_quadruple_list(ftl_lambda, -0.5)
        self.integrator.run(1)
        self.assertAlmostEqual(0.5 * interaction.computeEnergy(),
                               interactionLambda.computeEnergy())
コード例 #3
0
    def test_dihedral_harmonic_types_lambda(self):
        ftl_lambda = espressopp.FixedQuadrupleListLambda(self.system.storage)
        ftl_lambda.addQuadruples([(1, 2, 3, 4)])
        ftl = espressopp.FixedQuadrupleList(self.system.storage)
        ftl.addQuadruples([(1, 2, 3, 4)])
        interactionLambda = espressopp.interaction.FixedQuadrupleListTypesLambdaDihedralRB(
            self.system, ftl_lambda)
        interactionLambda.setPotential(0, 0, 1, 1, self.potential)
        interaction = espressopp.interaction.FixedQuadrupleListTypesDihedralRB(
            self.system, ftl)
        interaction.setPotential(0, 0, 1, 1, self.potential)

        ftl_lambda.setAllLambda(0.5)
        self.assertEqual(ftl_lambda.getLambda(1, 2, 3, 4), [0.5])

        self.assertAlmostEqual(0.5 * interaction.computeEnergy(),
                               interactionLambda.computeEnergy())
コード例 #4
0
    def test_dihedral_harmonic_lambda_selective(self):
        ftl_lambda = espressopp.FixedQuadrupleListLambda(self.system.storage)
        ftl_lambda.addQuadruples([(1, 2, 3, 4), (2, 1, 3, 4)])
        ftl = espressopp.FixedQuadrupleList(self.system.storage)
        ftl.addQuadruples([(1, 2, 3, 4)])
        interactionLambda = espressopp.interaction.FixedQuadrupleListLambdaDihedralRB(
            self.system, ftl_lambda, self.potential)
        interaction = espressopp.interaction.FixedQuadrupleListDihedralRB(
            self.system, ftl, self.potential)

        self.assertEqual(ftl_lambda.getLambda(1, 2, 3, 4), [1.0])
        self.assertEqual(ftl_lambda.getLambda(2, 1, 3, 4), [1.0])

        ftl_lambda.setLambda(1, 2, 3, 4, 1.0)
        ftl_lambda.setLambda(
            2, 1, 3, 4,
            0.0)  # Switch completely this tuple by setting lambda=0.0

        self.assertAlmostEqual(interaction.computeEnergy(),
                               interactionLambda.computeEnergy())
        self.assertEqual(ftl_lambda.getLambda(1, 2, 3, 4), [1.0])
        self.assertEqual(ftl_lambda.getLambda(2, 1, 3, 4), [0.0])
コード例 #5
0
 def test_set_lambda_single(self):
     ftl_lambda = espressopp.FixedQuadrupleListLambda(self.system.storage)
     ftl_lambda.addQuadruples([(1, 2, 3, 4)])
     self.assertEqual(ftl_lambda.getLambda(1, 2, 3, 4), [1.0])
     ftl_lambda.setLambda(1, 2, 3, 4, 0.0)
     self.assertEqual(ftl_lambda.getLambda(1, 2, 3, 4), [0.0])