12#include <rpg/field/FieldIo.h>
13#include <prdc/solvers/MixtureReal.tpp>
14#include <prdc/cuda/FFT.h>
15#include <prdc/cuda/RField.h>
21 using namespace Prdc::Cuda;
38 MixtureRealT::readParameters(in);
41 useBatchedFFT_ =
true;
49 void Mixture<D>::eqS(FieldT& A,
double c)
const
51 const int nx = mesh().size();
60 void Mixture<D>::addEqV(FieldT& A, FieldT
const & B)
const
62 const int nx = mesh().size();
72 void Mixture<D>::allocateBlocks()
75 for (i = 0; i < nPolymer(); ++i) {
76 for (j = 0; j < polymer(i).nBlock(); ++j) {
77 polymer(i).block(j).allocate(ds(), useBatchedFFT_);
void readParameters(std::istream &in) override
Read all parameters and initialize.
typename Prdc::MixtureReal< D, Polymer< D >, Solvent< D > > MixtureRealT
Direct (parent) base class.
ScalarParam< Type > & readOptional(std::istream &in, const char *label, Type &value)
Add and read a new optional ScalarParam < Type > object.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
void addEqV(DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
Vector addition in-place, a[i] += b[i], kernel wrapper (cudaReal).
void eqS(DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
Vector assignment, a[i] = b, kernel wrapper (cudaReal).
Periodic fields and crystallography.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.