Let D be a set of vectors in R-d. A function f: R-d --> R is called D-
convex if its restriction to each line parallel to a nonzero vector of
D is a convex function. For a set A subset of or equal to R-d, the fu
nctional D-convex hull of A, denoted by co(D)(A), is the intersection
of the zero sets of all nonnegative D-convex functions that are 0 on A
. We prove some results concerning the structure of functional D-conve
x hulls, e.g., a Krein-Milman-type theorem and a result on separation
of connected components. We give a polynomial-time algorithm for compu
ting co(D)(A) for a finite point set A (in any fixed dimension) in the
case of D being a basis of R-d (the case of separate convexity). This
research is primarily motivated by questions concerning the so-called
rank-one convexity, which is a particular case of D-convexity and is
important in the theory of systems of nonlinear partial differential e
quations and in mathematical modeling of microstructures in solids. As
a direct contribution to the study of rank-one convexity, we construc
t a configuration of 20 symmetric 2 x 2 matrices in a general (stable)
position with a nontrivial functionally rank-one convex hull (answeri
ng a question of K. Zhang on the existence of higher-dimensional nontr
ivial configurations of points and matrices).