@@ -59,7 +59,7 @@ def _getConstraintLocation():
5959 elif location == "vertex" :
6060 if vertexID is None :
6161 raise ValueError ("vertexID must be specified when location is 'vertex'." )
62- constraintLocation = particle .getVertexCoordinates (vertexID )
62+ constraintLocation = particle .getVertexCoordinates ()[ vertexID ]
6363 return constraintLocation
6464
6565 self ._getConstraintLocation = _getConstraintLocation
@@ -176,14 +176,28 @@ def ParticleLagrangianWeakDirichletOnParticleSetFactory(
176176 model : MPMModel ,
177177 location : str = "center" ,
178178 faceID : int = None ,
179- vertexID : int = None ,
179+ vertexID : int | list [ int ] = None ,
180180):
181181 constraints = dict ()
182182 for i , p in enumerate (particleSet ):
183- name = f"{ baseName } _{ i } "
184- constraint = ParticleLagrangianWeakDirichlet (
185- name , p , field , prescribedStepDelta , model , location , faceID , vertexID
186- )
187- constraints [name ] = constraint
188-
183+ if location == "vertex" :
184+ if isinstance (vertexID , list ):
185+ for vertIdx in vertexID :
186+ name = f"{ baseName } _{ i } _v{ vertIdx } "
187+ constraint = ParticleLagrangianWeakDirichlet (
188+ name , p , field , prescribedStepDelta , model , location , faceID , vertIdx
189+ )
190+ constraints [name ] = constraint
191+ else :
192+ name = f"{ baseName } _{ i } _v{ vertexID } "
193+ constraint = ParticleLagrangianWeakDirichlet (
194+ name , p , field , prescribedStepDelta , model , location , faceID , vertexID
195+ )
196+ constraints [name ] = constraint
197+ else :
198+ name = f"{ baseName } _{ i } "
199+ constraint = ParticleLagrangianWeakDirichlet (
200+ name , p , field , prescribedStepDelta , model , location , faceID , vertexID
201+ )
202+ constraints [name ] = constraint
189203 return constraints
0 commit comments