SYSTEMS AND METHODS FOR DESIGNING SELF-ASSEMBLED NANOSTRUCTURES
20230081282 · 2023-03-16
Inventors
- Petr Sulc (Scottsdale, AR, US)
- Flavio Romano (Venezia, IT)
- John Russo (Rome, IT)
- Lukas Kroc (Praha, CZ)
Cpc classification
B82Y40/00
PERFORMING OPERATIONS; TRANSPORTING
B82Y35/00
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
A general framework which transforms the inverse problem of self-assembly of colloidal crystals into a Boolean satisfiability problem for which solutions can be found numerically is described herein. Given a reference structure and the desired number of components, our approach produces designs for which the target structure is an energy minimum, and also allows to exclude solutions that correspond to competing structures.
Claims
1. A method for determining a patch type scheme for at least one particle species of patchy particles such that the patchy particles assemble into a target structure, the method comprising: receiving a patchy particle model descriptive of a respective patch scheme for at least one particle species of patchy particles, the patchy particle model including a plurality of variables representative of: a plurality of patch slots defined for each particle species; a plurality of patch types defined for each particle species; wherein each patch type of the plurality of patch types is compatible with one other patch type of the plurality of patch types; wherein each patch slot of the plurality of patch slots is associated with a respective patch type of the plurality of patch types; and a patch type interaction matrix representative of compatibility between each patch type of the plurality of patch types; receiving a target lattice structure, the target lattice structure including a plurality of possible lattice positions of a unit cell of the target lattice structure, wherein the unit cell includes one or more patchy particles; determining a plurality of conditional clauses representative of a plurality of constraints that the one or more variables of the patchy particle model of each of the at least one particle species of patchy particles must satisfy such that the one or more particle species of patchy particles are operable to self-assemble into the target lattice structure based on their respective patch scheme; and applying the plurality of conditional clauses to the plurality of variables representative of the respective patch scheme to identify one or more solutions to the plurality of variables such that each conditional clause of the plurality of conditional clauses is satisfied.
2. The method of claim 1, further comprising: simulating the patchy particle model with each solution for each respective particle species to obtain a resultant crystal formation.
3. The method of claim 2, further comprising: excluding one or more solutions that form a competing structure.
4. The method of claim 1, wherein the plurality of conditional clauses include a first clause, the first clause enforcing a restriction that each patch type of the patchy particle model is compatible with exactly one patch type of the plurality of patch types.
5. The method of claim 1, wherein the plurality of conditional clauses includes a second clause, the second clause enforcing a restriction that each patch slot of the plurality of patch slots is assigned exactly one patch type.
6. The method of claim 1, wherein the plurality of conditional clauses includes a third clause, the third clause enforcing a restriction that each lattice position of the plurality of possible lattice positions is occupied by a single patchy particle species with one assigned orientation.
7. The method of claim 1, wherein the plurality of conditional clauses includes a fourth clause, the fourth clause enforcing a restriction that patch types of patches of the patchy particles that interact within the target lattice structure are operable for binding to one another according to one or more compatibility rules determined by the patch type interaction matrix.
8. The method of claim 1, wherein the plurality of conditional clauses includes a fifth clause, the fifth clause enforcing that each of the plurality of patch slots associated with each lattice position of the unit cell are set to have a patch type of the patch occupying each respective patch slot.
9. The method of claim 1, wherein the plurality of conditional clauses include: a sixth clause, the sixth clause enforcing that all particle species of the plurality of particle species are included in the target lattice structure; and a seventh clause, the seventh clause enforcing that all patch types of the plurality of patch types are used in the one or more solutions.
10. The method of claim 1, wherein the one or more solutions is a null solution, the null solution being indicative of an inability of the one or more patchy particle species to self-assemble to a target configuration.
11. A system, comprising: one or more processors, the one or more processors implementing a module including a plurality of sub-modules, the plurality of sub-modules including: a first module configured to receive a patchy particle model descriptive of a respective patch scheme for at least one particle species of patchy particles, the patchy particle model including a plurality of variables representative of: a plurality of patch slots defined for each particle species; a plurality of patch types defined for each particle species; wherein each patch type of the plurality of patch types is compatible with one other patch type of the plurality of patch types; wherein each patch slot of the plurality of patch slots is associated with a respective patch type of the plurality of patch types; and a patch type interaction matrix representative of compatibility between each patch type of the plurality of patch types; a second module configured to receive a target lattice structure, the target lattice structure including a plurality of possible lattice positions of a unit cell of the target lattice structure, wherein the unit cell includes one or more patchy particles; a third module configured to determine a plurality of conditional clauses representative of a plurality of constraints that the one or more variables of the patchy particle model of each of the at least one particle species must satisfy such that the one or more patchy particle species are operable to self-assemble into the target lattice structure based on their respective patch scheme; and a satisfiability module configured to apply the plurality of conditional clauses to the plurality of variables representative of the patch scheme to identify one or more solutions to the plurality of variables such that each conditional clause of the plurality of conditional clauses is satisfied.
13. The system of claim 11, further comprising a model simulator module, the model simulator module configured to simulate the patchy particle model with each solution for each respective particle species to obtain a resultant crystal formation.
14. The system of claim 13, wherein one or more simulated solutions that form a competing structure are excluded.
15. The system of claim 11, wherein the plurality of conditional clauses include a first clause, the first clause enforcing a restriction that each patch type of the patchy particle model is compatible with exactly one other patch type of the plurality of patch types.
16. The system of claim 11, wherein the plurality of conditional clauses includes a second clause, the second clause enforcing a restriction that each patch slot of the plurality of patch slots is assigned exactly one patch type of the plurality of patch types.
17. The system of claim 11, wherein the plurality of conditional clauses includes a third clause, the third clause enforcing a restriction that each lattice position of the plurality of possible lattice positions is occupied by a single patchy particle species with one assigned orientation.
18. The system of claim 11, wherein the plurality of conditional clauses includes a fourth clause, the fourth clause enforcing a restriction that patch types of patches of the patchy particles that interact within the target lattice structure are operable for binding to one another according to one or more compatibility rules determined by the patch type interaction matrix.
19. The system of claim 11, wherein the plurality of conditional clauses includes a fifth clause, the fifth clause enforcing that each of the plurality of patch slots associated with each lattice position of the unit cell are set to have a patch type of the patch occupying each respective patch slot.
20. The system of claim 11, wherein the plurality of conditional clauses include: a sixth clause, the sixth clause enforcing that all particle species of the plurality of particle species are included in the target lattice structure; and a seventh clause, the seventh clause enforcing that all patch types of the plurality of patch types are used in the one or more solutions.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022] Corresponding reference characters indicate corresponding elements among the view of the drawings. The headings used in the figures do not limit the scope of the claims.
DETAILED DESCRIPTION
[0023] A general framework for designing self-assembling systems of patchy particles (PP) into any arbitrary structure is disclosed herein, with the option to exclude the formation of competing structures that are identified in simulations. The framework described herein focuses on PP systems that have geometric properties, such as the number and placement of patches on a particle that reflect the local environment of the target lattice. To introduce selectivity in the framework, each patch is assigned a patch type, or “type”, that encodes its binding properties and N.sub.c is defined as a number of different patch types on a given particle. Binding is allowed only between patches that have compatible types as specified by an interaction matrix. In some embodiments, the framework does not impose any torsional restrictions and all bonds have the same strength. While all particles have the same placement of the patches, the framework allows for the possibility of having N.sub.s different PP “species”, which are defined by an arrangement of the typing of their patches. Relative concentrations of each type of PP species are also free parameters. This system can be realized experimentally with patches based on single-stranded DNA thanks to the selective binding of DNA sequences. To simplify sequence design, the framework imposes that each patch is assigned a type that can only bind with one other type (which can be the same in the case of self-complementarity). The goal is to determine the patch typing for each PP species and type interaction matrix so that the PPs assemble into a desired structure. Referring to the drawings, embodiments of a system and associated method for designing patchy interactions to self-assemble arbitrary structures are illustrated and generally indicated as 100 in
[0024] The target structure is described by a unit cell, shown in
[0025] A brute-force search of all possible combinations of (i) patch type arrangements for all particle species
(ii) rotations and symmetry operations of each particle, up to N.sub.p.sup.L! and (iii) interaction matrix between patch types,
becomes intractable with increasing N.sub.c, N.sub.s, N.sub.p, and L even if they are relatively small. Instead, and this is a crucial contribution of this disclosure, the problem is mapped to a Boolean satisfiability problem (SAT) where recent algorithmic developments have dramatically advanced the present ability to solve problems involving tens of thousands of variables and millions of constraints. In some embodiments, the framework uses a publicly available SAT solver that can find solutions to the design problems considered here in time ranging from few seconds up to one hour.
[0026] Mapping the particle design onto a SAT problem requires the definition of (i) binary variables x.sub.i that describe the PPs' patch typing for each particle species and the type interaction matrix and (ii) binary clauses C.sub.j that represent the constraints that the variables need to satisfy, such as the ability to form all the bonds in the target lattice. Each binary clause contains a subset of the variables x.sub.i (or their negation ¬x.sub.i) connected by an OR statement, and a solution is found whenever a combination of values of the x.sub.i satisfies all clauses at the same time. Formally, this corresponds to finding a set of variables xi such that C.sub.1ΛC.sub.2ΛC.sub.3Λ . . . is true. The SAT mapping can also be used to prove the impossibility of achieving some (desired or unwanted) binding pattern with a given combination of input parameters N.sub.s and N.sub.c by proving the absence of solutions to the associated SAT problem. This is crucial since it allows filtering of undesired binding patterns, which may represent competing global arrangements (i.e., another crystal form) or local arrangements (kinetic traps).
[0027] A design problem thus translates into a set of binary variables and clauses, as defined in Table I. In order, the clauses enforce that (i) C.sup.int: each type is compatible with exactly one type, (ii) C.sup.pcol: each patch is assigned exactly one type, (iii) C.sup.L: each lattice position is occupied by a single PP species with one assigned orientation, (iv) C.sup.lint: types of patches that interact in the target lattice can bind to each other according to the interaction matrix, (v) C.sup.LS: the slots in each lattice position are set to have the type of the patch occupying them, C.sub.s.sup.alls.: all N.sub.s particle species are used for the lattice assembly, (vii) C.sup.all c.: all N.sub.c patch types are used in the solution. The final SAT problem is a conjunction of all clauses (i)-(vii). The conditions (vi) and (vii) are used to avoid getting trivial solutions such as having a single PP species with all patches typed by the same self-complementary type. It allows formulation of the SAT problems for different combinations of N.sub.s and N.sub.c to see for which the solutions exist.
TABLE-US-00001 TABLE 1 SAT Clauses and Variables Id Clauses Boolean expression (i) C.sub.c.sub.
[0028] For the lattice design problems considered in the present disclosure, the number of binary variables ranges from about 10.sup.3 to 10.sup.5, and the number of clauses ranges from approx. 10.sup.4 to 10.sup.7, which were found to be within reach of a commonly used SAT solver. If a solution is found in terms of the binary variables x, it can be straightforwardly converted into human-readable form by listing the variables x.sub.s,p,c.sup.pcol and x.sub.c.sub.
[0029] To demonstrate the versatility of the SAT mapping approach for particle design, three of the most challenging and sought after lattice geometries were selected. After using the SAT solver to obtain PP species design and type interaction matrix, molecular simulations were ran and the success and quality of crystals obtained from homogenous nucleation were studied. The SAT solver guarantees that the target structure is an energy minimum, but cannot say whether kinetic traps or other energy minima, both often associated with competing crystalline structures, are present along the self-assembly pathway. If a competing structure is found in the molecular simulations, it can be explicitly excluded by redesigning the SAT problem by adding additional clauses or by discarding all generated solutions that can form the identified undesired structures. Thus, the framework iteratively arrives at a design which self-assembles into the desired crystal formation through homogeneous nucleation. In contrast to previous solutions to this problem, it is stressed that these crystalline structures are being nucleated without introducing torsional interactions or hierarchical assembly. Moreover, the crystals are nucleated homogeneously, without the need for seeding or templating, and grow without stacking defects.
[0030] The first target structure is the cubic tetrastack (TS) lattice (also known as pyrochlore, shown in
[0031] Next, consider the tetravalent PP assembly. One of the most popular models for the study of tetravalent systems is the Kern-Frenkel (KF) potential, which is a square-well potential with angular dependence (see “Patchy Particle Models and SAT Solver Logic” section) The thermodynamic and crystallizability of the model have been well characterized, and have highlighted the difficulty of obtaining nucleations of a pure crystal due to the many kinetic traps represented by competing structures. Due to the discontinuous nature of the potential, the Monte Carlo (MC) method is commonly employed to study its assembly. Previous studies have shown the nucleation process to be very similar between MD and MC simulations, because the dynamics in the melt is not significantly different between MD and MC integrators (as long as the MC trial displacements are small).
[0032] The assembly of the cubic diamond (DC, shown in
[0033] As the last example, the present approach was used to find a system able to nucleate into the Si34 clathrate (CSi34, shown in
[0034] The patch typing and interaction matrices for all PP solutions are given in the Supp. Mat. While the framework has focused so far only on designing systems for the assembly of difficult 3D lattices, the approach can be generalized to other systems, such as finite-size clusters. The framework is not limited to spherical PPs and can be used for any model where simulations or other stochastic methods can identify undesired assemblies as a list of interactions between PP species and their patches. It can be also combined with other techniques, such as using different strengths of interactions to disfavor undesired assemblies identified in the simulations. The approach proposed here is extensible and the systems designed in the present system should be amenable of experimental realization.
Patchy Particle Models and SAT Solver Logic
[0035] The patchy particle (PP) models that were used to carry out the simulations of the lattice assemblies are further discussed herein. Both 6-valent PP model for TS assembly and tetrahedral PP model for DC and CSi34 lattice assembly were implemented in the oxDNA simulation tool package and are freely available with its source code. The energy scale is in simulation unit energy ∈*, and the simulation temperature reported in
Patchy Particle Model for Tetrastack Assembly
[0036] In simulations of tetrastack (TS) lattice assembly of
p.sub.1=α(0,1,ξ)
p.sub.2=α(0,−1,ξ)
p.sub.3=α(ξ,0,1)
p.sub.4=α(0,−1,−ξ)
p.sub.5=α(0,1,−ξ)
p.sub.6=α(−ξ(0,−1),
[0037] where ξ=(1+√{square root over (5)})/2 and α=d.sub.p/√{square root over (1+ξ2)}. The position of patch i in the simulation box coordinate system is given by
r.sub.p.sub.
[0038] where r.sub.cm is the center of mass of the patchy particle, and e.sub.1,2,3 are the x, y, and z orthonormal base vectors associated with the patchy particle's orientation
[0039] The interaction potential between a pair of patches on two distinct particles is
[0040] where δ.sub.ij is 1 if patch types i and j can bind and 0 otherwise, r.sub.p is the distances between a pair of patches, and α=0.12 d.u. sets the patch width. The constant C is set so that for V.sub.patch(r.sub.pmax)=0, r.sub.pmax=0.18 d.u. The patchy particles further interact through excluded volume interactions ensuring that two particles do not overlap
[0041] where r is the distance between the centers of the patchy particles, and σ is set to 2R=0.8, twice the desired radius of the patchy particle. The choice of a radius smaller than d.sub.p has been done to mimic very soft particles, where the assembly has to be driven purely by bonds without being affected by excluded volume. The repulsive potential is a piecewise function, consisting of Lennard-Jones potential function
[0042] that is truncated using a quadratic smoothening function
V.sub.smooth(x,b,x.sup.c)=b(x.sub.c−x).sup.2, (S5)
[0043] with b and x.sub.c are set so that the potential is a differentiable function that is equal to 0 after a specified cutoff distance r.sup.c=0.8.
[0044] The patchy particle system was simulated using rigid-body Molecular Dynamics with an Andersen-like thermostat as well as using Monte Carlo (MC) simulations. During the simulation, each patch was only able to be bound to one other patch at the time, and if the binding energy between a pair of patches, as given by Eq. (S2), is smaller than 0, none of the patches can bind to any other patch until their pair interaction potential is again 0.
Patchy Particle Model for Diamond and Clathrate Lattice Assembly
[0045] For the diamond cubic (DC) and clathrate Si34 (CSi34) lattice assembly of
p.sub.1=R(√{square root over ( 8/9)},0,−⅓)
p.sub.2=R(−√{square root over ( 2/9)},√{square root over (⅔)},−⅓)
p.sub.3=R(−√{square root over ( 2/9)},−√{square root over (⅔)},−⅓)
p.sub.4=R(0,0,1),
where R=0.5 d.u. is the radius of the patchy particle represented by a sphere. MC simulations of the DC and CSi34 lattice assembly is performed. Each patchy particle is modeled as a hard sphere, with excluded volume interaction between two particles at distance r defined as
[0046] The interaction between a pair of patches p.sub.i and q.sub.j on distinct particles i and j is modeled through the Kern-Frenkel interaction potential:
[0047] where δ is set to 0.12 d.u. in our simulations and θ.sub.max is set to 0.98. Furthermore, we use r=r.sub.cm.sub.
[0048] where p.sub.i is the vector from center of mass of particle p towards patch p.sub.i, and analogously for patch q.sub.j.
Simulations of DC and CSi34 Lattice Assembly at 0.1 Number Density
[0049] Additionally to simulations shown in
Patchy Particle Solutions for Crystal Lattices
[0050] Listed here are the patch typing and type interaction rules that were found by the SAT solver and verified by simulations to assemble into the TS, DC, and CSi34 lattices respectively. For each PP species, the patch typings are specified as a list (p, c), where p is a number that identifies the patch on a particle (1 to 6 for patchy particles that assemble in TS lattice, and 1 to 4 for patchy particles that assemble in DC or CSi34 lattice), and c identifies the patch type (from 1 to N.sub.c, where N.sub.c is the total number of types used). The interacting types are then listed as pairs (c.sub.i, c.sub.j), where type c.sub.i can only bind to type c.sub.j and vice versa. For self-complementary types, list (c.sub.i, c.sub.j). The designs of patchy particles for assembly of TS, DC, and CSi34 lattices respectively are given below:
[0051] TS crystal lattice design with N.sub.s=2 and N.sub.c=12:
TABLE-US-00002 PP species Patch Coloring 1: (1, 1) (2, 2) (3, 3) (4, 4) (5, 5) (6, 6) 2: (1, 7) (2, 8) (3, 9) (4, 10) (5, 11) (6, 12) Color interactions (1, 5), (2, 12), (3, 8), (4, 7), (6, 11), (9, 10)
[0052] DC crystal design with N.sub.s=9 and N.sub.c=31:
TABLE-US-00003 PP species Patch Coloring 1: (1, 16) (2, 9) (3, 18) (4, 4) 2: (1, 26) (2, 13) (3, 23) (4, 1) 3: (1, 5) (2, 8) (3, 24) (4, 31) 4: (1, 12) (2, 21) (3, 27) (4, 19) 5: (1, 12) (2, 29) (3, 14) (4, 17) 6: (1, 28) (2, 15) (3, 7) (4, 6) 7: (1, 3) (2, 22) (3, 11) (4, 2) 8: (1, 21) (2, 30) (3, 12) (4, 19) 9: (1, 20) (2, 25) (3, 8) (4, 10) Color interactions (1, 4), (2, 25), (11, 17), (12, 12), (13, 13), (6, 18) (16, 31), (19, 22), (20, 23), (3, 9), (5, 26), (7, 14) (21, 28), (24, 24), (27, 30), (29, 29), (8, 8), (10, 15)
[0053] CSi34 crystal design with N.sub.s=4 and N.sub.c=12:
TABLE-US-00004 PP species Patch Coloring 1: (1, 3) (2, 11) (3, 8) (4, 5) 2: (1, 12) (2, 9) (3, 4) (4, 12) 3: (1, 7) (2, 7) (3, 4) (4, 7) 4: (1, 6) (2, 10) (3, 1) (4, 2) Color interactions (1, 1) (2, 2) (3, 12) (4, 4) (5, 6) (7, 8) (9, 9) (10, 11)
Boolean Clause Formulation for SAT
[0054] The PP design problem is formulated as a SAT problem by specifying it as a set of binary clauses in a format acceptable by SAT solver software. A detailed formulation is provided of the binary clauses in a format required as an input into the commonly used SAT solvers
[0055] The set of binary clauses as defined in Table 1 fully specify the PP design problem. For a target lattice structure with unit cell consisting of L positions, where each position has N.sub.p neighbors (and hence N.sub.p slots), we are looking for a solution that has N.sub.s PP species and uses in total N.sub.p different types. The particle geometry (i.e. patch positions on the PP) is hard-coded by the lattice geometry, and we need to provide all possible rotations No that a PP can make in a given lattice position so that its patches overlap with the slots of the given position (illustrated in
[0056] Binary variables x.sub.c.sub.
[0057] The clauses (i)-(iii) in Table 1 ensure feasibility of the solution: as binary variables x.sup.pcol, x.sup.L, x.sup.int correspond to all possible combinations of type interactions, patch typing and PP assignment to positions on the lattice, the first three sets of clauses ensure that in the obtained solution, the variables that are mutually exclusive (e.g. a patch having at the same time two different types) cannot be both true at the same time. The clauses (iv)-(v) enforce that for the correct solution, the PPs have to be arranged in the target lattice in such a way that patches in contact have compatible types. Finally, clauses (vi)-(vii) impose that for the solution found by the SAT solver, all N.sub.s PP species have to be included in the lattice formation, and all N.sub.c types have to be used. This requirement is added to avoid the solvers coming up with trivial solutions, such as designing one PP species with all patches typed to a self-complementary type, which would then trivially satisfy the target lattice.
[0058] As an input for the SAT solver, the problem has to be formulated in terms of clauses C.sub.j, each of them containing variables x.sub.i connected by OR clauses. The final SAT problem corresponds to all respective clauses C.sub.j connected by AND clauses. To conform with this input format, the Boolean clauses introduced in Table 1 in the main text can be all reformulated as detailed below. The final SAT problem is a conjunction of all individual clauses from sets (i)-(vii) described below. The definitions use the following logic symbols: ¬: negation; ∧: conjunction (AND); ∨: disjunction (OR); .Math.: implies; ⇐ .Math.: if and only if.
[0059] (i) Each type ci can only bind to one other type C.sub.f (including possible self-complementarity).
∀c.sub.i≤c.sub.j<c.sub.k∈[1,N.sub.c]:C.sub.c.sub.
[0060] To illustrate how the above clauses achieve unique binding int between types, consider variable x.sub.c.sub.
[0061] (ii) Each patch p of each PP species s is assigned exactly one type:
∀s∈[1,N.sub.s],p∈[1,N.sub.p],c.sub.l<c.sub.k∈[1,N.sub.c]:C.sub.s,p,c.sub.
[0062] In a manner analogous to Eqs. S10, the clauses C.sup.pcol ensure that if for example x.sub.s,p,c.sub.
[0063] (iii) Each lattice position l is only assigned exactly one PP species with exactly one assigned orientation:
∀l∈[1,L],s.sub.i<s.sub.j∈[1,N.sub.s],o.sub.i<o.sub.j∈[1,N.sub.o]:C.sub.l,s,o.sub.
[0064] Analogously to clauses (i) and (ii), the set of clauses defined in Eqs. S12 ensure that there can be only one PP species with only one assigned orientation occupying given slot I in the target lattice.
[0065] (iv) For all pairs of slots k.sub.i and k.sub.j that are in contact in neighboring lattice positions l.sub.i, l.sub.j (e.g. as shown in
∀c.sub.i≤c.sub.j∈[1,N.sub.c]:C.sub.l.sub.
[0066] which can be equivalently rewritten as
C.sub.l.sub.
[0067] These clauses assure that PPs placed in neighboring positions in the lattice interact through the correctly typed slots. The Eqs. (S13) hence encode the geometry of the target lattice.
[0068] (v) The slot of lattice position I is typed with the same type as the patch of the PP species occupying it:
∀l∈[1,L],k∈[1,N.sub.p],o∈[1,N.sub.o],s∈[1,N.sub.s],c∈[1,N.sub.c]:C.sub.l,s,o,c,k.sup.LS=x.sub.l,s,o.sup.L.Math.(x.sub.l,k,c.sup.A⇔x.sub.s,ϕ.sub.
[0069] which can be equivalently rewritten as
C.sub.l,x,o,c,k.sup.LS=(¬x.sub.l,s,l.sup.L∨¬x.sub.l,k,c.sup.A∨x.sub.s,ϕ.sub.
[0070] These clauses are required to correctly set variables x.sup.A, which are used in clauses (iv). A PP of type s can be placed in N.sub.o different orientations o into a specific position l on the lattice. For a particular choice of o, the mapping function φ.sub.o maps φ.sub.o(k)-th patch to k-th slot, assuring that variable x.sub.l,k,c.sup.A is 1 if the φ.sub.o(k)-th patch of particle on lattice position l has type c.
[0071] (vi) All N.sub.s PP species have to be used at least once in the assembled lattice:
[0072] For each s, the variables in the clause C.sub.s.sup.alls are connected by OR (disjunction). Each clause contains al combinations of variables for all lattice positions l and orientations o. These clauses ensure that in the solution, each PP species appears at least once in the lattice. For examples, consider that there is a solution that does not contain PP species number sa in the lattice. In that case, variables x.sub.l,s.sub.
[0073] (vii) Each type c of N.sub.c total number of types is assigned to at least one patch of one of the PP species
[0074] These clauses ensure that all types are used in the solution in a similar way that clauses (vi) ensure that all PP species are used.
[0075] For the design of the TS lattice, we introduced an additional set of clauses that ensure that any pair of particles (of the same or different species) cannot bind by more than one bond at a time:
∀s.sub.i,s.sub.j∈[1,N.sub.s],c.sub.i.sup.1,c.sub.i.sup.2,c.sub.j.sup.1,c.sub.j.sup.2∈[1,N.sub.c]C.sub.s,s.sub.
[0076] where p.sub.1.sup.i, p.sub.2.sup.i, p.sub.1.sup.j, p.sub.2.sup.j are all possible pairs of patches on PP of type s.sub.i and s.sub.j respectively for which there is a possible orientation so that they can both bind if they have compatible types.
[0077] To find solutions for SAT problems considered in the present disclosure, MiniSat, MapleSAT, or Walksat solvers were used. These are popular standard tools used by researchers in constraint satisfaction problems community and we used them as ‘black box’. Walksat was found to be the fastest in finding the solutions to most of the PP design problems (typically in several seconds). However, if the solution does not exist, Walksat algorithm is unable to prove the impossibility, as it just continues its search for a solution even if it does not exist. MapleSAT had performance similar to MiniSat in terms of time it took them to find a solution (between few seconds to tens of minutes), but MapleSAT is more memory efficient (less than 2 GB RAM for SAT problems that we encountered in this work), allowing multiple MapleSAT solvers to run in parallel without running out of available memory on a typical workstation. As opposed to Walksat, MiniSat and MapleSAT can also be used to prove that no solution (null solution) exists for a given SAT problem. However, for certain combinations of Ns and Nc for DC and CSi34 lattices, the algorithms were not able to find solution nor prove impossibility within the maximum 2 hours running time that was imposed for the solvers. It is possible the solutions could be found (or impossibility proved) if algorithms were run for longer.
[0078] For each successful solution that was found for a given lattice and N.sub.s and N.sub.c, the solution was tested for its ability to assemble into undesired structures using MiniSat. In this case, true values were explicitly set to the combination of patch typing and type interactions (x.sup.int and .sup.xpcol) variables that encodes the solution that were found, and use clauses (i)-(v) to formulate the SAT problem. For this task, it takes MiniSat (or MapleSat) only few seconds to find out if the PP species (or their subset) can or cannot assemble into a given undesired lattice. Hence, one can test the solution very quickly against a list of known undesired structures.
[0079] Referring to
[0080] In particular,
[0081] Framework 100 of
[0082] SAT solver module 108 of framework 100 of
[0083] Once SAT solver module 108 identifies one or more solutions including one or more patch type schemes, interaction matrices, and orientations of each PP within the target lattice structure, a model simulator module 110 of
Computer-Implemented System
[0084]
[0085] Certain embodiments are described herein as including one or more modules. Such modules are hardware-implemented, and thus include at least one tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. For example, a hardware-implemented module may comprise dedicated circuitry that is permanently configured (e.g., as a special-purpose processor, such as a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware-implemented module may also comprise programmable circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software or firmware to perform certain operations. In some example embodiments, one or more computer systems (e.g., a standalone system, a client and/or server computer system, or a peer-to-peer computer system) or one or more processors may be configured by software (e.g., an application or application portion) as a hardware-implemented module that operates to perform certain operations as described herein.
[0086] Accordingly, the term “hardware-implemented module” encompasses a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein. Considering embodiments in which hardware-implemented modules are temporarily configured (e.g., programmed), each of the hardware-implemented modules need not be configured or instantiated at any one instance in time. For example, where the hardware-implemented modules comprise a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware-implemented modules at different times. Software, in the form of the system application 200 or otherwise, may include a hardware-implemented module and may accordingly configure a processor 302, for example, to constitute a particular hardware-implemented module at one instance of time and to constitute a different hardware-implemented module at a different instance of time.
[0087] Hardware-implemented modules may provide information to, and/or receive information from, other hardware-implemented modules. Accordingly, the described hardware-implemented modules may be regarded as being communicatively coupled. Where multiple of such hardware-implemented modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware-implemented modules. In embodiments in which multiple hardware-implemented modules are configured or instantiated at different times, communications between such hardware-implemented modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware-implemented modules have access. For example, one hardware-implemented module may perform an operation, and may store the output of that operation in a memory device to which it is communicatively coupled. A further hardware-implemented module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware-implemented modules may also initiate communications with input or output devices.
[0088] As illustrated, the computing and networking environment 300 may be a general purpose computing device 300, although it is contemplated that the networking environment 300 may include other computing systems, such as personal computers, server computers, hand-held or laptop devices, tablet devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronic devices, network PCs, minicomputers, mainframe computers, digital signal processors, state machines, logic circuitries, distributed computing environments that include any of the above computing systems or devices, and the like.
[0089] Components of the general purpose computing device 300 may include various hardware components, such as a processing unit 302, a main memory 304 (e.g., a memory or a system memory), and a system bus 301 that couples various system components of the general purpose computing device 300 to the processing unit 302. The system bus 301 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. For example, such architectures may include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
[0090] The general purpose computing device 300 may further include a variety of computer-readable media 307 that includes removable/non-removable media and volatile/nonvolatile media, but excludes transitory propagated signals. Computer-readable media 307 may also include computer storage media and communication media. Computer storage media includes removable/non-removable media and volatile/nonvolatile media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules or other data, such as RAM, ROM, EPSOM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store the desired information/data and which may be accessed by the general purpose computing device 300. Communication media includes computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. For example, communication media may include wired media such as a wired network or direct-wired connection and wireless media such as acoustic, RF, infrared, and/or other wireless media, or some combination thereof. Computer-readable media may be embodied as a computer program product, such as software stored on computer storage media.
[0091] The main memory 304 includes computer storage media in the form of volatile/nonvolatile memory such as read only memory (ROM) and random access memory (RAM). A basic input/output system (BIOS), containing the basic routines that help to transfer information between elements within the general purpose computing device 300 (e.g., during start-up) is typically stored in ROM. RAM typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 302. For example, in one embodiment, data storage 306 holds an operating system, application programs, and other program modules and program data.
[0092] Data storage 306 may also include other removable/non-removable, volatile/nonvolatile computer storage media. For example, data storage 306 may be: a hard disk drive that reads from or writes to non-removable, nonvolatile magnetic media; a magnetic disk drive that reads from or writes to a removable, nonvolatile magnetic disk; and/or an optical disk drive that reads from or writes to a removable, nonvolatile optical disk such as a CD-ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media may include magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The drives and their associated computer storage media provide storage of computer-readable instructions, data structures, program modules and other data for the general purpose computing device 300.
[0093] A user may enter commands and information through a user interface 340 or other input devices 345 such as a tablet, electronic digitizer, a microphone, keyboard, and/or pointing device, commonly referred to as mouse, trackball, or touch pad. Other input devices 345 may include a joystick, game pad, satellite dish, scanner, or the like. Additionally, voice inputs, gesture inputs (e.g., via hands or fingers), or other natural user interfaces may also be used with the appropriate input devices, such as a microphone, camera, tablet, touch pad, glove, or other sensor. These and other input devices 345 are often connected to the processing unit 302 through a user interface 340 that is coupled to the system bus 301, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 360 or other type of display device is also connected to the system bus 301 via user interface 340, such as a video interface. The monitor 360 may also be integrated with a touch-screen panel or the like.
[0094] The general purpose computing device 300 may operate in a networked or cloud-computing environment using logical connections of a network Interface 303 to one or more remote devices, such as a remote computer. The remote computer may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the general purpose computing device 300. The logical connection may include one or more local area networks (LAN) and one or more wide area networks (WAN), but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
[0095] When used in a networked or cloud-computing environment, the general purpose computing device 300 may be connected to a public and/or private network through the network interface 303. In such embodiments, a modem or other means for establishing communications over the network is connected to the system bus 301 via the network interface 303 or other appropriate mechanism. A wireless networking component including an interface and antenna may be coupled through a suitable device such as an access point or peer computer to a network. In a networked environment, program modules depicted relative to the general purpose computing device 300, or portions thereof, may be stored in the remote memory storage device.
[0096] It should be understood from the foregoing that, while particular embodiments have been illustrated and described, various modifications can be made thereto without departing from the spirit and scope of the invention as will be apparent to those skilled in the art. Such changes and modifications are within the scope and teachings of this invention as defined in the claims appended hereto.