Esempio n. 1
0
    public ImproperTorsion GetImproperTorsionParameter(DihedralConnection dihedralConnection)
    {
        List <string> types = new List <string>();

        types.Add(dihedralConnection.atom0.amberName);
        types.Add(dihedralConnection.atom1.amberName);
        types.Add(dihedralConnection.atom2.amberName);
        types.Add(dihedralConnection.atom3.amberName);

        return(parameters.improperTorsions.Where(p => (types.SequenceEqual(p.types, new WildCardEqualityComparer()) || types.SequenceEqual(p.reverseTypes, new WildCardEqualityComparer()))).OrderBy(p => p.wildcardCount).FirstOrDefault());
    }
Esempio n. 2
0
    public void DihedralConnect(int a0, int a1, int a2, int a3)
    {
        _busy++;

        long key = GetDihedralConnectionKey(a0, a1, a2, a3);

        if (!dihedralsDict.ContainsKey(key))
        {
            DihedralConnection dihedralConnection = new DihedralConnection(atoms, a0, a1, a2, a3);
            dihedralsDict[key] = dihedralConnection;
        }

        _busy--;
    }