亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ptfsf.c

?? The code assumes a two-dimensional computational domain with TMz polarization (i.e., non-zero field
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * ptfsf: Routines for implementation of a "perfect" *   total-field/scattered-field boundary for the Yee FDTD scheme. * * Copyright (C) 2004  John B. Schneider *  ********************************************************************* * This program is free software; you can redistribute it and/or     * * modify it under the terms of the GNU General Public License       * * as published by the Free Software Foundation (FSF) version 2      * * of the License.                                                   * *                                                                   * * This program is distributed in the hope that it will be useful,   * * but WITHOUT ANY WARRANTY; without even the implied warranty of    * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the     * * GNU General Public License for more details.                      * *                                                                   * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software       * * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA         * * 02111-1307, USA.  You may also visit the FSF web site at          * * www.fsf.org.  The license under which this software is publish    * * is available from www.fsf.org/copyleft/gpl.html or                * * www.fsf.org/copyleft/gpl.txt.                                     * ********************************************************************* */#include <math.h>#include <stdio.h>#include <stdlib.h>#include <fftw3.h>#include "ptfsf.h"#include "fdtdgen.h"/* local functions not visible to outside world */void wave_numbers(int ntot, double cdtds, double phi,		  double *kx_del, double *ky_del);double find_root(int m, int ntot, double cdtds, double cos_p, double sin_p);double dispersion_relation(double x);double dispersion_relation_prime(double x);int argument_check(   char *label,  // name of function using this check (for reporting purposes)   int the_x_ll, int the_y_ll,    // lower-left corner   int the_x_ur, int the_y_ur,    // upper-right corner   int x_ref, int y_ref,          // reference point   int the_lim_x, int the_lim_y,  // size of computational domain   double the_phi,                // incident angle (degrees)   double the_cdtds,              // Courant number   double the_eta,                // impedance    double *the_ez, double *the_hx, double *the_hy // field arrays   );/* Macros for accessing arrays */#define Ez(I,J) ez[(I)*(lim_y)+(J)]#define Hx(I,J) hx[(I)*(lim_y-1)+(J)]#define Hy(I,J) hy[(I)*(lim_y)+(J)]/* First argument indicates position, second argument indicates time-step. */#define Time_series_ez_x0(I,N) time_series_ez_x0[(I)*time_end+(N)]#define Time_series_ez_x1(I,N) time_series_ez_x1[(I)*time_end+(N)]#define Time_series_ez_y0(J,N) time_series_ez_y0[(J)*time_end+(N)]#define Time_series_ez_y1(J,N) time_series_ez_y1[(J)*time_end+(N)]#define Time_series_hx_x0(I,N) time_series_hx_x0[(I)*time_end+(N)]#define Time_series_hx_x1(I,N) time_series_hx_x1[(I)*time_end+(N)]#define Time_series_hy_y0(J,N) time_series_hy_y0[(J)*time_end+(N)]#define Time_series_hy_y1(J,N) time_series_hy_y1[(J)*time_end+(N)]/* Global variables. *//* length = number of samples in FFT space with a default value of     128.  This value will be increased to a suitable multiple of 2 to     ensure it is longer than the length of the time series. */int length=128,  time_end,     // number of time steps incident field non-zero  x_ll, y_ll,   // indices of lower-left TFSF boundary corner  x_ur, y_ur,   // indices of upper-right TFSF boundary corner  x_ref, y_ref, // reference point  lim_x, lim_y, // size of computational domain  flags;        // flags to control some peripheral behavior (see header file)double   eta,                 // impedance  phi,                 // incident angle [radians!!]  cdtds,               // Courant number  cdtds_over_eta,      // Courant number divided by impedance  cdtds_times_eta;     // Courant number times impedancedouble *ez, *hx, *hy;  // electric and magnetic fields/* Arrays which hold the times series at each node adjacent to TFSF boundary */double *time_series_ez_x0=NULL, *time_series_ez_x1=NULL,  *time_series_ez_y0=NULL, *time_series_ez_y1=NULL,  *time_series_hx_x0=NULL, *time_series_hx_x1=NULL,  *time_series_hy_y0=NULL, *time_series_hy_y1=NULL;FILE *in_file; // input file if fields stored in an array/* ===p========================= ptfsf_init() ============================ *//* ptfsf_init: initialization routine -- calculates incident fields */ptfsf_parameters *ptfsf_init(      int the_time_end,           // time steps inc field non-zero      int the_x_ll, int the_y_ll, // indices of lower-left corner of TF region      int the_x_ur, int the_y_ur, // indices of upper-right corner of TF region      int x_ref, int y_ref,       // indices of "reference" point      int the_lim_x, int the_lim_y, // size of computational domain      double the_phi,             // incident angle [degrees]		            double the_cdtds,           // Courant number      double the_eta,             // characteristic impedance      double *the_ez, double *the_hx, double *the_hy, // field arrays      double (*time_func)(double), // time-stepping function       int the_flags                // collection of flags      ){  int fft_flag=0;  int error=0;  int i, j, idum, delay, x_off, y_off, tf_width, tf_height;  double *kx_del, *ky_del, *pi_m_over_nt, *impedance;  ptfsf_parameters *params;  /* FFT and transfer function stuff. */  double *source_temporal, *source_xy_temporal;  fftw_complex *source_spectral, *source_xy_spectral;  fftw_plan planf, planb;  flags = the_flags;  /* Perform error checking and initialize global variables. */  /* Check the arguments that are common to both the case where the     incident field is written to a file or not. */  error = argument_check("ptfsf_init",			 the_x_ll, the_y_ll, 			 the_x_ur, the_y_ur,			 x_ref, y_ref,			 the_lim_x, the_lim_y,			 the_phi,			 the_cdtds, the_eta,			 the_ez, the_hx, the_hy);  /* The following four constants are used various places. */  x_off = x_ref-x_ll;  // offset from bottom to reference point  y_off = y_ref-y_ll;  // offset from left side to reference point  tf_width  = x_ur - x_ll + 1; // width of TF region  tf_height = y_ur - y_ll + 1; // height of TF region  time_end = the_time_end;  if (time_end < 0) {    fprintf(stderr,"ptfsf_init: "	   "illegal number of time steps (must be positive).\n");    error++;  }  /* increase the FFT length by factors of 2 if necessary */  while (time_end > length)    length *= 2;  if (flags & PTFSF_INFO)    printf("ptfsf_init: FFT's will use a length of %d.\n",length);  /* Not much we can check with Courant number or impedance. */  cdtds = the_cdtds;  if (cdtds <= 0.0) {    fprintf(stderr,"ptfsf_init: illegal Courant number\n");    error++;  }    eta = the_eta;  if (eta <= 0.0) {    fprintf(stderr,"ptfsf_init: illegal impedance\n");    error++;  }  cdtds_over_eta = cdtds/eta;  cdtds_times_eta = cdtds*eta;  if (time_func==NULL) {    fprintf(stderr,"ptfsf_init: illegal time-stepping function\n");    error++;  }  if (error != 0) {    fprintf(stderr,"ptfsf_init: terminating...\n");    exit(-1);  }  /* Allocate and initialize miscellaneous arrays. */  ALLOC_1D_STRING(ptfsf_init:,kx_del,length/2+1,double);  ALLOC_1D_STRING(ptfsf_init:,ky_del,length/2+1,double);  ALLOC_1D_STRING(ptfsf_init:,pi_m_over_nt,length/2+1,double);  ALLOC_1D_STRING(ptfsf_init:,impedance,length/2+1,double);  for (idum=0; idum<length/2+1; idum++)    pi_m_over_nt[idum] = M_PI*idum/(double)length;  /* Allocate FFT-related arrays. */  ALLOC_1D_STRING(ptfsf_init:,source_temporal,length,double);  ALLOC_1D_STRING(ptfsf_init:,source_xy_temporal,length,double);  ALLOC_1D_STRING(ptfsf_init:,source_spectral,length/2+1,fftw_complex);  ALLOC_1D_STRING(ptfsf_init:,source_xy_spectral,length/2+1,fftw_complex);  /* Allocate space for source functions */  ALLOC_1D_STRING(ptfsf_init:,time_series_ez_x0,time_end*tf_width,double);  ALLOC_1D_STRING(ptfsf_init:,time_series_ez_x1,time_end*tf_width,double);  ALLOC_1D_STRING(ptfsf_init:,time_series_hx_x0,time_end*tf_width,double);  ALLOC_1D_STRING(ptfsf_init:,time_series_hx_x1,time_end*tf_width,double);  ALLOC_1D_STRING(ptfsf_init:,time_series_ez_y0,time_end*tf_height,double);  ALLOC_1D_STRING(ptfsf_init:,time_series_ez_y1,time_end*tf_height,double);  ALLOC_1D_STRING(ptfsf_init:,time_series_hy_y0,time_end*tf_height,double);  ALLOC_1D_STRING(ptfsf_init:,time_series_hy_y1,time_end*tf_height,double);    /* Find all the wavenumbers */  if (flags & PTFSF_PROGRESS)    printf("ptfsf_init: Generating wavenumbers...\n");  wave_numbers(length, cdtds, phi, kx_del, ky_del);  if (flags & PTFSF_INFO)    printf("ptfsf_init: \n"	   "  Can estimate optimial FFT using flag PTFSF_ESTIMATE.  This\n"	   "    does not require much overhead to perform the initial FFT,\n"	   "    but the FFT will not be optimal.\n"	   "  Can potentially get faster FFTs using the flag PTFSF_MEASURE,\n"	   "    but with more initial overhead incurred.\n"	   "  The FFTw code will search for the best FFT if you use the flag\n"	   "    PTFSF_PATIENT (but it takes a while).  Overhead associated\n"	   "    with this will likely exceed any gains realized by the\n"	   "    faster FFTs (except perhaps in some extreme circumstances).\n"	   );  if (flags & PTFSF_PATIENT) {    fft_flag = FFTW_PATIENT;    if (flags & PTFSF_INFO)      printf("ptfsf_init: "	     "Using flag PTFSF_PATIENT.  This may take a moment...\n");  } else if (flags & PTFSF_MEASURE) {    fft_flag = FFTW_MEASURE;    if (flags & PTFSF_INFO)      printf("ptfsf_init: Using flag PTFSF_MEASURE.\n");  } else {    fft_flag = FFTW_ESTIMATE;    if (flags & PTFSF_INFO)      printf("ptfsf_init: Using flag PTFSF_ESTIMATE.\n");  }  /* Create the FFT plans used by FFTW -- use threaded version. */  if (flags & PTFSF_PROGRESS)    printf("ptfsf_init: Generating the FFTW plans...\n");  fftw_init_threads();  /* Can change the number of threads by changing the argument of following    * function.  "2" is good for dual-processor machines.   */  fftw_plan_with_nthreads(2);  planf = fftw_plan_dft_r2c_1d(length, source_temporal, source_spectral,			       fft_flag);  planb = fftw_plan_dft_c2r_1d(length, source_xy_spectral, source_xy_temporal,			       fft_flag);  if (planf == NULL || planb == NULL ) {    fprintf(stderr,"ptfsf_init: "	    "FFTW plan allocation failed.  Terminating...\n");    exit(-1);  }  /* Create source time-series. */  /* If reference point does not corresponds to lower left corner,     delay the source pulse a sufficient amount to ensure we get     required spectrum at the desired point.  See "Exact TF/SF     boundar" notes, pages 15 for the calculation of this. */   if (x_ref != x_ll || y_ref != y_ll) {    double dist, multiplier, tmp;    multiplier = 9.0/8.0;    tmp = sin(asin(cdtds)/multiplier);    dist = sqrt((x_ref-x_ll)*(x_ref-x_ll)+(y_ref-y_ll)*(y_ref-y_ll))*      cos(atan2((y_ref-y_ll),(x_ref-x_ll))-phi);        delay = dist/cdtds*sqrt(1.0-tmp*tmp)/cos(asin(tmp/cdtds));    if (flags & PTFSF_INFO) {      printf("ptfsf_init: Since reference point not lower-left\n"	     "  corner, pulse is being delayed %d time steps.\n"	     "  This is based on a distance to the phase front of %g.\n",	     delay,dist);      printf("  Delay assumes group velocity %g times speed of light.\n"	     "  This is determined by velocity of fields discretized at\n"	     "  %g times the minumum discretization for propagating waves.\n"	     "  To change this value, change the variable 'multiplier' in\n"	     "  the code and recompile.\n",	     cos(asin(tmp/cdtds))/sqrt(1.0-tmp*tmp),multiplier);      }  } else    delay = 0;  for(idum=0; idum<delay; idum++)    source_temporal[idum] = 0.0;  for(idum=delay; idum<length; idum++)    source_temporal[idum] = time_func(idum-delay);  /* Find transform of source function. */  fftw_execute(planf);  /* Now, for each point, create the necessary time series. */  if (flags & PTFSF_PROGRESS)    printf("ptfsf_init: "	   "Generating Ez source terms along x boundaries...\n");  for (i=0; i<tf_width; i++) {    /* Along bottom boundary. */    /* Multiply source spectrum and transfer function. */    for(idum=0; idum<length/2+1; idum++) {      double ctmp, stmp, arg;      if (kx_del[idum] != 0.0) {	arg = -((i-x_off)*kx_del[idum] - y_off*ky_del[idum]);	ctmp = cos(arg);	stmp = sin(arg);	source_xy_spectral[idum][0] = 	  ctmp*source_spectral[idum][0] - stmp*source_spectral[idum][1];	source_xy_spectral[idum][1] = 	  stmp*source_spectral[idum][0] + ctmp*source_spectral[idum][1];      }	else {	source_xy_spectral[idum][0] = 0.0;	source_xy_spectral[idum][1] = 0.0;      }    }    /* Take inverse FFT of theoretical spectrum to get (unnormalized)       predicted time series.  Store result back in source_in. */    fftw_execute(planb);    /* Store time-series for later use. */    for (idum=0; idum<time_end; idum++)      Time_series_ez_x0(i,idum) = source_xy_temporal[idum]/length;    /* Along top boundary. */    /* Multiply source spectrum and transfer function. */    for(idum=0; idum<length/2+1; idum++) {      double ctmp, stmp, arg;      if (kx_del[idum] != 0.0) {	arg = -((i-x_off)*kx_del[idum] + (y_ur-y_ref)*ky_del[idum]);	ctmp = cos(arg);	stmp = sin(arg);	source_xy_spectral[idum][0] = 	  ctmp*source_spectral[idum][0] - stmp*source_spectral[idum][1];	source_xy_spectral[idum][1] = 	  stmp*source_spectral[idum][0] + ctmp*source_spectral[idum][1];      }	else {	source_xy_spectral[idum][0] = 0.0;	source_xy_spectral[idum][1] = 0.0;      }    }    /* Take inverse FFT of theoretical spectrum to get (unnormalized)       predicted time series.  Store result back in source_in. */    fftw_execute(planb);    /* Store time-series for later use. */    for (idum=0; idum<time_end; idum++)      Time_series_ez_x1(i,idum) = source_xy_temporal[idum]/length;  }  if (flags & PTFSF_PROGRESS)    printf("ptfsf_init: "	   "Generating Hx source terms along x boundaries...\n");  for(idum=0; idum<length/2+1; idum++)    impedance[idum] =       cdtds_over_eta*sin(ky_del[idum]/2.0)/sin(pi_m_over_nt[idum]);  for (i=0; i<tf_width; i++) {    /* Along bottom boundary. */    /* Multiply source spectrum and transfer function. */    for(idum=0; idum<length/2+1; idum++) {      double ctmp, stmp, arg;      if (kx_del[idum] != 0.0) {	arg = -(pi_m_over_nt[idum] +		(i-x_off)*kx_del[idum] - (y_off+0.5)*ky_del[idum]);	ctmp = cos(arg);	stmp = sin(arg);	source_xy_spectral[idum][0] = impedance[idum]*	  (ctmp*source_spectral[idum][0] - stmp*source_spectral[idum][1]);	source_xy_spectral[idum][1] = impedance[idum]*	  (stmp*source_spectral[idum][0] + ctmp*source_spectral[idum][1]);      }	else {	source_xy_spectral[idum][0] = 0.0;	source_xy_spectral[idum][1] = 0.0;      }    }    /* Take inverse FFT of theoretical spectrum to get (unnormalized)       predicted time series.  Store result back in source_in. */    fftw_execute(planb);    /* Store time-series for later use. */    for (idum=0; idum<time_end; idum++)      Time_series_hx_x0(i,idum) = source_xy_temporal[idum]/length;    /* Along top boundary. */    /* Multiply source spectrum and transfer function. */    for(idum=0; idum<length/2+1; idum++) {      double ctmp, stmp, arg;      if (kx_del[idum] != 0.0) {	arg = -(pi_m_over_nt[idum] +		(i-x_off)*kx_del[idum] + (y_ur-y_ref+0.5)*ky_del[idum]);	ctmp = cos(arg);	stmp = sin(arg);	source_xy_spectral[idum][0] = impedance[idum]*	  (ctmp*source_spectral[idum][0] - stmp*source_spectral[idum][1]);	source_xy_spectral[idum][1] = impedance[idum]*	  (stmp*source_spectral[idum][0] + ctmp*source_spectral[idum][1]);      }	else {	source_xy_spectral[idum][0] = 0.0;	source_xy_spectral[idum][1] = 0.0;      }    }    /* Take inverse FFT of theoretical spectrum to get (unnormalized)       predicted time series.  Store result back in source_in. */    fftw_execute(planb);    /* Store time-series for later use. */    for (idum=0; idum<time_end; idum++)      Time_series_hx_x1(i,idum) = source_xy_temporal[idum]/length;  }  if (flags & PTFSF_PROGRESS)    printf("ptfsf_init: "	   "Generating Ez source terms along y boundaries...\n");  for (j=0; j<tf_height; j++) {    /* Along left boundary. */    /* Multiply source spectrum and transfer function. */    for(idum=0; idum<length/2+1; idum++) {      double ctmp, stmp, arg;      if (ky_del[idum] != 0.0) {	arg = -(-x_off*kx_del[idum] + (j-y_off)*ky_del[idum]);	ctmp = cos(arg);	stmp = sin(arg);	source_xy_spectral[idum][0] = 	  ctmp*source_spectral[idum][0] - stmp*source_spectral[idum][1];	source_xy_spectral[idum][1] = 	  stmp*source_spectral[idum][0] + ctmp*source_spectral[idum][1];      } else {	source_xy_spectral[idum][0] = 0.0;	source_xy_spectral[idum][1] = 0.0;      }    }    /* Take inverse FFT of theoretical spectrum to get (unnormalized)       predicted time series.  Store result back in source_in. */    fftw_execute(planb);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美体内she精视频| 亚洲成av人在线观看| 不卡在线观看av| 国产一区二区不卡| 国产一二三精品| 亚洲一区二区在线免费观看视频 | 国产精品对白交换视频| 欧美国产一区在线| 最新久久zyz资源站| 欧美大白屁股肥臀xxxxxx| 欧美放荡的少妇| 精品久久久久一区| 午夜精品123| 国内欧美视频一区二区| kk眼镜猥琐国模调教系列一区二区| 成人午夜大片免费观看| 日本高清成人免费播放| 91精品国产91热久久久做人人| 久久久综合激的五月天| 亚洲天堂2014| 波多野结衣中文字幕一区二区三区| 3atv在线一区二区三区| 欧美国产欧美综合| 捆绑调教美女网站视频一区| 欧洲一区二区三区免费视频| 中文字幕av免费专区久久| 免费av成人在线| 国产成人免费视频| 欧美日韩一区成人| 欧美电视剧免费观看| 日韩黄色免费电影| 成人激情免费电影网址| 久久免费的精品国产v∧| 精品一区二区国语对白| 色www精品视频在线观看| 《视频一区视频二区| jizz一区二区| 亚洲精品视频观看| 国产精品自在欧美一区| 欧美日韩成人高清| 中文字幕永久在线不卡| 99久久伊人精品| 日韩免费电影一区| 激情综合色播五月| 久久久久久久久久久久久女国产乱 | 国产一区二区三区免费在线观看| 欧美日韩国产天堂| 日本网站在线观看一区二区三区| 国产一区二区调教| 国产日产欧美一区二区三区| 午夜视频一区二区三区| 7777精品伊人久久久大香线蕉的| 五月天一区二区| 日韩女优毛片在线| 国产精品一区在线| 亚洲蜜桃精久久久久久久| 国产精品91一区二区| 国产精品日日摸夜夜摸av| 卡一卡二国产精品| 国产日产精品1区| 色94色欧美sute亚洲线路一久| 亚洲综合区在线| 欧美电视剧免费全集观看| 国产精品高清亚洲| 亚洲国产日韩在线一区模特| 国产在线观看一区二区| 欧美激情综合在线| 欧美亚洲一区二区在线| 久久国产夜色精品鲁鲁99| 国产精品人成在线观看免费| 欧美午夜一区二区三区免费大片| 麻豆精品久久久| 欧美大片在线观看| www.爱久久.com| 日韩电影免费一区| 国产精品国产三级国产三级人妇| 91福利国产成人精品照片| 九色porny丨国产精品| 亚洲另类一区二区| 久久久综合网站| 911精品产国品一二三产区 | 一区二区三区.www| 91久久奴性调教| 久久91精品国产91久久小草| 亚洲丝袜另类动漫二区| 欧美欧美欧美欧美| 成人精品免费视频| 久久99久国产精品黄毛片色诱| 综合av第一页| 国产午夜精品一区二区三区四区 | 丰满少妇在线播放bd日韩电影| 久久久久国产精品免费免费搜索| 欧美午夜电影一区| jizzjizzjizz欧美| 国产成人av电影在线| 美国欧美日韩国产在线播放| 一区2区3区在线看| 亚洲图片另类小说| 欧美国产综合色视频| 欧美精品一区二区三区四区| 国产成人久久精品77777最新版本| 亚洲成人资源在线| 一区二区三区欧美视频| 中文一区二区完整视频在线观看| 日韩视频一区二区在线观看| 国产.欧美.日韩| 国产一区二区三区四| 蜜桃av噜噜一区二区三区小说| 亚洲一区免费在线观看| 亚洲日本护士毛茸茸| 国产精品大尺度| 欧美国产一区二区在线观看| 国产色一区二区| 国产欧美日韩三级| 亚洲国产精品成人综合 | 欧美精品高清视频| 欧美三级电影在线看| 91久久精品一区二区| 在线精品观看国产| 欧美日韩一卡二卡| 欧美伦理影视网| 日韩欧美视频在线| 精品国产乱码久久| 国产日韩欧美一区二区三区综合| 国产亚洲婷婷免费| 中文字幕第一页久久| 最新国产成人在线观看| 亚洲人成伊人成综合网小说| 国产精一品亚洲二区在线视频| 亚洲一二三级电影| 一区二区三区在线看| 亚洲欧洲中文日韩久久av乱码| 亚洲欧美色一区| 亚洲妇熟xx妇色黄| 久久99精品久久久久| 国产真实乱子伦精品视频| 福利电影一区二区三区| 色综合天天综合色综合av| 亚洲第一二三四区| 免费观看久久久4p| 国产69精品久久久久777| 99国产一区二区三精品乱码| 色婷婷一区二区| 99久久婷婷国产综合精品电影 | 午夜激情一区二区| 久久精品国产免费| zzijzzij亚洲日本少妇熟睡| 在线视频一区二区三区| 色吧成人激情小说| 天堂精品中文字幕在线| 奇米在线7777在线精品| 国产高清无密码一区二区三区| 波多野结衣中文字幕一区| 欧美久久久一区| 国产目拍亚洲精品99久久精品| 一区二区在线观看免费| 国内精品写真在线观看| 色婷婷久久99综合精品jk白丝| 日韩一级欧美一级| 亚洲天堂免费在线观看视频| 性久久久久久久久| 北条麻妃国产九九精品视频| 日韩欧美一卡二卡| 亚洲人成网站在线| 国产精品一区免费在线观看| 欧美天堂亚洲电影院在线播放| 久久综合久久综合亚洲| 欧美一级片在线| 亚洲色图丝袜美腿| 国产精品综合一区二区三区| 欧美日韩精品欧美日韩精品 | 欧美日韩免费一区二区三区视频| 精品剧情在线观看| 日韩小视频在线观看专区| 国产99久久精品| 欧美日韩激情一区二区三区| 久久久美女艺术照精彩视频福利播放| 亚洲六月丁香色婷婷综合久久 | 91精品综合久久久久久| 亚洲女人的天堂| 国产成人精品免费网站| 欧美夫妻性生活| 亚洲大片精品永久免费| 97精品视频在线观看自产线路二| 久久影院电视剧免费观看| 日韩av中文字幕一区二区| 欧美午夜不卡在线观看免费| 中文字幕在线观看不卡视频| 国产一区二区三区| 精品久久久久久亚洲综合网| 视频一区二区中文字幕| 欧美色视频一区| 亚洲网友自拍偷拍| 在线视频国内自拍亚洲视频| 中文字幕字幕中文在线中不卡视频| 粉嫩高潮美女一区二区三区 | 国产亚洲综合性久久久影院| 午夜久久久影院| 91久久精品一区二区三| 亚洲天堂成人网|